matchCauseEffect<C, D> method

Effect<E, C, D> matchCauseEffect<C, D>({
  1. required Effect<E, C, D> onFailure(
    1. Cause<L> l
    ),
  2. required Effect<E, C, D> onSuccess(
    1. R r
    ),
})

{@category folding}

Implementation

Effect<E, C, D> matchCauseEffect<C, D>({
  required Effect<E, C, D> Function(Cause<L> l) onFailure,
  required Effect<E, C, D> Function(R r) onSuccess,
}) =>
    Effect.from(
      (context) => _unsafeRun(context).then(
        (exit) => switch (exit) {
          Left(value: final cause) => onFailure(cause)._unsafeRun(context),
          Right(value: final value) => onSuccess(value)._unsafeRun(context),
        },
      ),
    );