transf<R extends Object> method

  1. @override
Async<R> transf<R extends Object>([
  1. @noFuturesAllowed R noFuturesAllowed(
    1. T e
    )?
])
override

Transforms the Monad's generic type from T to R.

Uses the transformer function noFuturesAllowed if provided, otherwise attempts a direct cast.

Implementation

@override
Async<R> transf<R extends Object>([
  @noFuturesAllowed R Function(T e)? noFuturesAllowed,
]) {
  return Async(() async {
    final okOrErr = (await value).transf<R>(noFuturesAllowed);
    switch (okOrErr) {
      case Ok(value: final v):
        return v;
      case Err():
        throw okOrErr;
    }
  });
}