RillOptionOps<A>
Properties
unNone extension no setter
Rill<A> get unNoneAvailable on Rill<O>, provided by the RillOptionOps<A> extension
Implementation
dart
Rill<A> get unNone => collect(identity);unNoneTerminate extension no setter
Rill<A> get unNoneTerminateAvailable on Rill<O>, provided by the RillOptionOps<A> extension
Implementation
dart
Rill<A> get unNoneTerminate {
Pull<A, Unit> loop(Pull<Option<A>, Unit> p) {
return p.uncons.flatMap((hdtl) {
return hdtl.foldN(
() => Pull.done,
(hd, tl) => hd
.indexWhere((opt) => opt.isEmpty)
.fold(
() => Pull.output(hd.map(_getopt)).append(() => loop(tl)),
(idx) => idx == 0 ? Pull.done : Pull.output(hd.take(idx).map(_getopt)),
),
);
});
}
return loop(underlying).rillNoScope;
}