asyncMapFailure method

Future<Result<S>> asyncMapFailure(
  1. FutureOr<Failure> transform(
    1. Failure failure
    )
)

Intercepts an asynchronous operational failure and applies a transformation mapping function.

This optimizes clean pipeline flows by avoiding extra local variable allocations or multi-line awaits.

Example:

Future<Result<User>> managedUser = repository.fetchRemoteUser()
    .asyncMapFailure((networkFail) => Failure(message: 'Server unreachable.'));

Implementation

Future<Result<S>> asyncMapFailure(
  FutureOr<Failure> Function(Failure failure) transform,
) async {
  final result = await this;

  return switch (result) {
    SuccessResult<S>() => result,
    FailureResult<S>(failure: final failure) =>
      Result.failure(await transform(failure)),
  };
}