bufferTime method
Returns a BufferedTimeBeacon that wraps this Beacon.
final count = Beacon.writable(10);
final bufferedBeacon = count.bufferTime(duration: k10ms);
await Future.delayed(k1ms);
count.set(20);
expect(count.value, equals(20));
expect(bufferedBeacon.value, equals([]));
expect(bufferedBeacon.currentBuffer.value, equals([10,20]));
await Future.delayed(k10ms);
expect(bufferedBeacon.value, equals([20]));
See: Beacon.bufferedTime for more details.
Implementation
ReadableBufferedBeacon<T> bufferTime(
Duration duration, {
String? name,
}) {
assert(
this is! BufferedBaseBeacon,
'''
Chaining of buffered beacons is not supported!
Buffered beacons has to be the last in the chain.
Good: someBeacon.filter().buffer(10);
Bad: someBeacon.buffer(10).filter();
If you absolutely need this functionality, it has to be done manually with .wrap.
eg:
final beacon = Beacon.bufferedCount<T>(count).wrap(someBufferedBeacon)
''',
);
final beacon = Beacon.bufferedTime<T>(
duration: duration,
name: name,
);
_wrapThis(beacon);
return beacon;
}