1010using Akka . Actor ;
1111using Akka . Serialization ;
1212using Akka . Streams . Serialization . Proto . Msg ;
13- using Akka . Util ;
1413using Google . Protobuf ;
1514using Akka . Streams . Implementation . StreamRef ;
1615using CumulativeDemand = Akka . Streams . Implementation . StreamRef . CumulativeDemand ;
1918using RemoteStreamFailure = Akka . Streams . Implementation . StreamRef . RemoteStreamFailure ;
2019using SequencedOnNext = Akka . Streams . Implementation . StreamRef . SequencedOnNext ;
2120
21+ #nullable enable
2222namespace Akka . Streams . Serialization
2323{
2424 public sealed class StreamRefSerializer : SerializerWithStringManifest
2525 {
2626 private readonly ExtendedActorSystem _system ;
27- private readonly Akka . Serialization . Serialization _serialization ;
2827
2928 private const string SequencedOnNextManifest = "A" ;
3029 private const string CumulativeDemandManifest = "B" ;
@@ -37,52 +36,51 @@ public sealed class StreamRefSerializer : SerializerWithStringManifest
3736 public StreamRefSerializer ( ExtendedActorSystem system ) : base ( system )
3837 {
3938 _system = system ;
40- _serialization = system . Serialization ;
4139 }
4240
4341 public override string Manifest ( object o )
4442 {
45- switch ( o )
43+ return o switch
4644 {
47- case SequencedOnNext _ : return SequencedOnNextManifest ;
48- case CumulativeDemand _ : return CumulativeDemandManifest ;
49- case OnSubscribeHandshake _ : return OnSubscribeHandshakeManifest ;
50- case RemoteStreamFailure _ : return RemoteSinkFailureManifest ;
51- case RemoteStreamCompleted _ : return RemoteSinkCompletedManifest ;
52- case SourceRefImpl _ : return SourceRefManifest ;
53- case SinkRefImpl _ : return SinkRefManifest ;
54- default : throw new ArgumentException ( $ "Unsupported object of type { o . GetType ( ) } ", nameof ( o ) ) ;
55- }
45+ SequencedOnNext => SequencedOnNextManifest ,
46+ CumulativeDemand => CumulativeDemandManifest ,
47+ OnSubscribeHandshake => OnSubscribeHandshakeManifest ,
48+ RemoteStreamFailure => RemoteSinkFailureManifest ,
49+ RemoteStreamCompleted => RemoteSinkCompletedManifest ,
50+ SourceRefImpl => SourceRefManifest ,
51+ SinkRefImpl => SinkRefManifest ,
52+ _ => throw new ArgumentException ( $ "Unsupported object of type { o . GetType ( ) } ", nameof ( o ) )
53+ } ;
5654 }
5755
5856 public override byte [ ] ToBinary ( object o )
5957 {
60- switch ( o )
58+ return o switch
6159 {
62- case SequencedOnNext onNext : return SerializeSequencedOnNext ( onNext ) . ToByteArray ( ) ;
63- case CumulativeDemand demand : return SerializeCumulativeDemand ( demand ) . ToByteArray ( ) ;
64- case OnSubscribeHandshake handshake : return SerializeOnSubscribeHandshake ( handshake ) . ToByteArray ( ) ;
65- case RemoteStreamFailure failure : return SerializeRemoteStreamFailure ( failure ) . ToByteArray ( ) ;
66- case RemoteStreamCompleted completed : return SerializeRemoteStreamCompleted ( completed ) . ToByteArray ( ) ;
67- case SourceRefImpl sourceRef : return SerializeSourceRef ( sourceRef ) . ToByteArray ( ) ;
68- case SinkRefImpl sinkRef : return SerializeSinkRef ( sinkRef ) . ToByteArray ( ) ;
69- default : throw new ArgumentException ( $ "Unsupported object of type { o . GetType ( ) } ", nameof ( o ) ) ;
70- }
60+ SequencedOnNext onNext => SerializeSequencedOnNext ( onNext ) . ToByteArray ( ) ,
61+ CumulativeDemand demand => SerializeCumulativeDemand ( demand ) . ToByteArray ( ) ,
62+ OnSubscribeHandshake handshake => SerializeOnSubscribeHandshake ( handshake ) . ToByteArray ( ) ,
63+ RemoteStreamFailure failure => SerializeRemoteStreamFailure ( failure ) . ToByteArray ( ) ,
64+ RemoteStreamCompleted completed => SerializeRemoteStreamCompleted ( completed ) . ToByteArray ( ) ,
65+ SourceRefImpl sourceRef => SerializeSourceRef ( sourceRef ) . ToByteArray ( ) ,
66+ SinkRefImpl sinkRef => SerializeSinkRef ( sinkRef ) . ToByteArray ( ) ,
67+ _ => throw new ArgumentException ( $ "Unsupported object of type { o . GetType ( ) } ", nameof ( o ) )
68+ } ;
7169 }
7270
7371 public override object FromBinary ( byte [ ] bytes , string manifest )
7472 {
75- switch ( manifest )
73+ return manifest switch
7674 {
77- case SequencedOnNextManifest : return DeserializeSequenceOnNext ( bytes ) ;
78- case CumulativeDemandManifest : return DeserializeCumulativeDemand ( bytes ) ;
79- case OnSubscribeHandshakeManifest : return DeserializeOnSubscribeHandshake ( bytes ) ;
80- case RemoteSinkFailureManifest : return DeserializeRemoteSinkFailure ( bytes ) ;
81- case RemoteSinkCompletedManifest : return DeserializeRemoteSinkCompleted ( bytes ) ;
82- case SourceRefManifest : return DeserializeSourceRef ( bytes ) ;
83- case SinkRefManifest : return DeserializeSinkRef ( bytes ) ;
84- default : throw new ArgumentException ( $ "Unsupported manifest '{ manifest } '", nameof ( manifest ) ) ;
85- }
75+ SequencedOnNextManifest => DeserializeSequenceOnNext ( bytes ) ,
76+ CumulativeDemandManifest => DeserializeCumulativeDemand ( bytes ) ,
77+ OnSubscribeHandshakeManifest => DeserializeOnSubscribeHandshake ( bytes ) ,
78+ RemoteSinkFailureManifest => DeserializeRemoteSinkFailure ( bytes ) ,
79+ RemoteSinkCompletedManifest => DeserializeRemoteSinkCompleted ( bytes ) ,
80+ SourceRefManifest => DeserializeSourceRef ( bytes ) ,
81+ SinkRefManifest => DeserializeSinkRef ( bytes ) ,
82+ _ => throw new ArgumentException ( $ "Unsupported manifest '{ manifest } '", nameof ( manifest ) )
83+ } ;
8684 }
8785
8886 private SinkRefImpl DeserializeSinkRef ( byte [ ] bytes )
@@ -129,7 +127,7 @@ private SequencedOnNext DeserializeSequenceOnNext(byte[] bytes)
129127 {
130128 var onNext = Proto . Msg . SequencedOnNext . Parser . ParseFrom ( bytes ) ;
131129 var p = onNext . Payload ;
132- var payload = _serialization . Deserialize (
130+ var payload = system . Serialization . Deserialize (
133131 p . EnclosedMessage . ToByteArray ( ) ,
134132 p . SerializerId ,
135133 p . MessageManifest ? . ToStringUtf8 ( ) ) ;
@@ -169,7 +167,7 @@ private ByteString SerializeCumulativeDemand(CumulativeDemand demand) =>
169167 private ByteString SerializeSequencedOnNext ( SequencedOnNext onNext )
170168 {
171169 var payload = onNext . Payload ;
172- var serializer = _serialization . FindSerializerFor ( payload ) ;
170+ var serializer = system . Serialization . FindSerializerFor ( payload ) ;
173171 var manifest = Akka . Serialization . Serialization . ManifestFor ( serializer , payload ) ;
174172
175173 var p = new Payload
0 commit comments