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 'release_sink.dart'; 9 : 10 : /// A transformer that releases result events as data and error events. 11 : class ReleaseStreamTransformer<T> extends StreamTransformerBase<Result<T>, T> { 12 11 : const ReleaseStreamTransformer(); 13 : 14 0 : @override 15 : Stream<T> bind(Stream<Result<T>> source) { 16 0 : return Stream<T>.eventTransformed(source, _createSink); 17 : } 18 : 19 : // Since Stream.eventTransformed is not generic, this method can be static. 20 0 : static EventSink<Result> _createSink(EventSink sink) => ReleaseSink(sink); 21 : }