lifecycleStream method
Stream<Lifecycle<T> >
lifecycleStream({
- Map<
StreamNode, Stream> streams = const {}, - Stream<
Lifecycle< ? startStream,T> >
Implementation
Stream<Lifecycle<T>> lifecycleStream(
{Map<StreamNode, Stream> streams = const {},
Stream<Lifecycle<T>>? startStream}) {
final startStr = startStream ?? Stream<Lifecycle<T>>.empty();
final emissionFunctions =
this.whereType<Emission<Lifecycle<T>>>().map((e) => e.call);
final intervalFunctions = this
.whereType<Interval<T>>()
.map((e) => (StreamElement<Lifecycle<T>> t) => e.call(t, streams));
return startStr.asyncExpandMultipleRecursive(
emissionFunctions.followedBy(intervalFunctions));
}