accumulate method

Accumulates events, yielding the accumulator after each event.

The same mutable MessageStreamAccumulator instance is yielded each time. Use MessageStreamAccumulator.toMessage to obtain an immutable snapshot at any point.

Implementation

Stream<MessageStreamAccumulator> accumulate() async* {
  final accumulator = MessageStreamAccumulator();
  await for (final event in this) {
    accumulator.add(event);
    yield accumulator;
  }
}