Skip to content

RethrowOps<A>

extension RethrowOps<A> on Rill<Either<Object, A>>

Properties

rethrowError extension no setter

Rill<A> get rethrowError

Available on Rill<O>, provided by the RethrowOps<A> extension

Implementation
dart
Rill<A> get rethrowError {
  return chunks().flatMap((c) {
    Option<Object> errOpt = none();
    final size = c.size;
    var i = 0;

    final bldr = <A>[];

    while (i < size && errOpt.isEmpty) {
      c[i].fold(
        (ex) => errOpt = Some(ex),
        (o) {
          bldr.add(o);
          i++;
        },
      );
    }

    final chunk = Chunk.fromList(bldr);

    return Rill.chunk(chunk).append(
      () => errOpt.fold(
        () => Rill.empty(),
        (err) => Rill.raiseError(err),
      ),
    );
  });
}