next<Result> method
Stream<Result>
next<Result>(
- FutureOr<
DSHNextResult< next(IteratorState, Result> >- DSHState<
IteratorState, Result> it
- DSHState<
Implementation
Stream<Result> next<Result>(
FutureOr<DSHNextResult<IteratorState, Result>> Function(
DSHState<IteratorState, Result> it,
)
next,
) {
DSHState<IteratorState, Result> state = DSHState(initialState);
bool done = false;
return dataStreamWrapper(() async {
if (done) return null;
final rnext = await next(state);
if (rnext is DSHNextResultNext<IteratorState, Result>) {
state = DSHState(rnext.nextState);
return rnext.data;
}
if (rnext is DSHNextResultDone<IteratorState, Result> &&
rnext.data != null) {
done = true;
return rnext.data!;
}
return null;
});
}