11using System ;
22using System . IO ;
3+ using System . Threading ;
34using System . Threading . Tasks ;
45
56namespace Open . Serialization
@@ -8,14 +9,14 @@ public class Serializer<T> : SerializerBase<T>
89 {
910 private readonly Func < string , T > _deserializer ;
1011 private readonly Func < T , string > _serializer ;
11- private readonly Func < Stream , ValueTask < T > > _deserializerAsync ;
12- private readonly Func < Stream , T , ValueTask > _serializerAsync ;
12+ private readonly Func < Stream , CancellationToken , ValueTask < T > > _deserializerAsync ;
13+ private readonly Func < Stream , T , CancellationToken , ValueTask > _serializerAsync ;
1314
1415 public Serializer (
1516 Func < string , T > deserializer ,
1617 Func < T , string > serializer = null ,
17- Func < Stream , ValueTask < T > > deserializerAsync = null ,
18- Func < Stream , T , ValueTask > serializerAsync = null )
18+ Func < Stream , CancellationToken , ValueTask < T > > deserializerAsync = null ,
19+ Func < Stream , T , CancellationToken , ValueTask > serializerAsync = null )
1920 {
2021 // It's supported to instantiate a deserializer without a serializer.
2122 _deserializer = deserializer ?? throw new ArgumentNullException ( nameof ( deserializer ) ) ;
@@ -25,10 +26,10 @@ public Serializer(
2526 }
2627
2728 public override T Deserialize ( string value ) => _deserializer ( value ) ;
28- public override ValueTask < T > DeserializeAsync ( Stream stream ) => _deserializerAsync ( stream ) ;
29+ public override ValueTask < T > DeserializeAsync ( Stream stream , CancellationToken cancellationToken = default ) => _deserializerAsync ( stream , cancellationToken ) ;
2930
3031 public override string Serialize ( T item ) => _serializer ( item ) ;
31- public override ValueTask SerializeAsync ( Stream stream , T item ) => _serializerAsync ( stream , item ) ;
32+ public override ValueTask SerializeAsync ( Stream stream , T item , CancellationToken cancellationToken = default ) => _serializerAsync ( stream , item , cancellationToken ) ;
3233
3334 }
3435}
0 commit comments