and method

Result<T, E> and(
  1. Result<T, E> other
)

Chains operations: returns this result if it's an error, otherwise other.

This is useful for performing sequential operations where the second depends on the first succeeding. If this result is Err, it's returned unchanged (short-circuit). If this is Ok, the other result is returned. Both value types and error types must match—for transformations, use andThen instead.

Example:

Result<int, String> a = Ok(5);
Result<int, String> b = Ok(10);
final result = a.and(b); // Returns b (Ok(10))

Result<int, String> c = Err('failed', StackTrace.current);
final result2 = c.and(b); // Returns c (Err('failed')), b is skipped

Implementation

Result<T, E> and(Result<T, E> other) {
  if (this is Err<T, E>) return this;

  return other;
}