filterOrDie<C> method

Effect<E, L, R> filterOrDie<C>({
  1. required bool predicate(
    1. R r
    ),
  2. required C orDieWith(
    1. R r
    ),
})

{@category filtering}

Implementation

Effect<E, L, R> filterOrDie<C>({
  required bool Function(R r) predicate,
  required C Function(R r) orDieWith,
}) =>
    Effect.from(
      (context) => _unsafeRun(context).then(
        (exit) => switch (exit) {
          Left(value: final cause) => Left(cause),
          Right(value: final value) => predicate(value)
              ? Right(value)
              : Left(Die.current(orDieWith(value))),
        },
      ),
    );