Beispiel #1
0
 /// <summary>
 /// Creates new <see cref="PotentiallyAsyncWriterAndObservable{TValue}"/> which transforms the values given to <see cref="PotentiallyAsyncWriter{TValue}.TryWriteAsync"/> to values understood by underlying <see cref="PotentiallyAsyncWriterLogic{TValue, TSink}"/>.
 /// </summary>
 /// <param name="writer">The underlying <see cref="PotentiallyAsyncWriterLogic{TValue, TSink}"/> logic.</param>
 /// <param name="sink">The sink to write to.</param>
 /// <param name="transformer">The callback which should transform values of <typeparamref name="TValue"/> into values of type <typeparamref name="TTransformed"/>, understood by <paramref name="writer"/>.</param>
 /// <typeparam name="TValue">Type of values to serialize.</typeparam>
 /// <typeparam name="TSink">Type of sink to serialize to.</typeparam>
 /// <typeparam name="TTransformed">The type of values understood by <paramref name="writer"/>.</typeparam>
 public static PotentiallyAsyncWriterAndObservable <TValue> CreateTransformableWriter <TValue, TSink, TTransformed>(
     PotentiallyAsyncWriterLogic <TTransformed, TSink> writer,
     TSink sink,
     Func <TValue, TTransformed> transformer
     )
 {
     return(new TransformablePotentiallyAsyncWriter <TValue, TSink, TTransformed>(writer, sink, transformer));
 }
Beispiel #2
0
 internal TransformablePotentiallyAsyncWriter(
     PotentiallyAsyncWriterLogic <TTransformed, TSink> writer,
     TSink sink,
     Func <TValue, TTransformed> transformer
     )
 {
     this._writer      = ArgumentValidator.ValidateNotNull(nameof(writer), writer);
     this._sink        = sink;
     this._transformer = ArgumentValidator.ValidateNotNull(nameof(transformer), transformer);
 }
Beispiel #3
0
 /// <summary>
 /// Creates <see cref="PotentiallyAsyncWriterAndObservable{TValue}"/> which will write <see cref="JToken"/>s as character enumerables to given sink.
 /// </summary>
 /// <param name="logic">This <see cref="PotentiallyAsyncWriterLogic{TValue, TSink}"/>.</param>
 /// <param name="sink">The sink to which perform writing.</param>
 /// <returns>An instance of <see cref="PotentiallyAsyncWriterAndObservable{TValue}"/> to be used to serialize <see cref="JToken"/>s to <paramref name="sink"/>.</returns>
 public static PotentiallyAsyncWriterAndObservable <JToken> CreateJTokenWriter <TSink>(
     this PotentiallyAsyncWriterLogic <IEnumerable <Char>, TSink> logic,
     TSink sink
     )
 {
     return(WriterFactory.CreateTransformableWriter <JToken, TSink, IEnumerable <Char> >(
                ArgumentValidator.ValidateNotNullReference(logic),
                sink,
                TransformJToken
                ));
 }