Stream scan()

in lib/src/scan.dart [16:27]


  Stream<S> scan<S>(
      S initialValue, FutureOr<S> Function(S soFar, T element) combine) {
    var accumulated = initialValue;
    return asyncMap((value) {
      var result = combine(accumulated, value);
      if (result is Future<S>) {
        return result.then((r) => accumulated = r);
      } else {
        return accumulated = result;
      }
    });
  }