takeWhile method
Implementation
OffsetIterator<T> takeWhile(
bool Function(T item, Option<T> prev) predicate, {
String name = 'takeWhile',
SeedCallback<T>? seed,
int retention = 0,
bool? cancelOnError,
bool bubbleCancellation = true,
}) {
Option<T> prev = const None();
seed = generateSeed(override: seed);
return transform(
(item) {
final more = predicate(item, prev);
prev = Some(item);
return more ? [item] : null;
},
seed: () {
if (seed != null) prev = seed();
return prev;
},
name: name,
retention: retention,
bubbleCancellation: bubbleCancellation,
cancelOnError: cancelOnError,
);
}