guardAsync<T> static method

Future<Result<T>> guardAsync<T>(
  1. Future<T> operation()
)

Wraps an asynchronous code execution operation tracking a standard Dart Future pipeline.

Catches unhandled asynchronous exceptions, converting them into structured failures.

Implementation

static Future<Result<T>> guardAsync<T>(
  Future<T> Function() operation,
) async {
  try {
    final value = await operation();
    return Result.success(value);
  } catch (e, stackTrace) {
    return Result.failure(
      Failure(
        message: e.toString(),
        error: e,
        stackTrace: stackTrace,
      ),
    );
  }
}