Line data Source code
1 : // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 : // for details. All rights reserved. Use of this source code is governed by a 3 : // BSD-style license that can be found in the LICENSE file. 4 : 5 : import 'dart:async'; 6 : 7 : import 'result.dart'; 8 : import 'capture_sink.dart'; 9 : 10 : /// A stream transformer that captures a stream of events into [Result]s. 11 : /// 12 : /// The result of the transformation is a stream of [Result] values and no 13 : /// error events. Exposed by [Result.captureStream]. 14 : class CaptureStreamTransformer<T> extends StreamTransformerBase<T, Result<T>> { 15 11 : const CaptureStreamTransformer(); 16 : 17 0 : @override 18 : Stream<Result<T>> bind(Stream<T> source) => 19 0 : Stream<Result<T>>.eventTransformed( 20 0 : source, (sink) => CaptureSink<T>(sink)); 21 : }