and<U> abstract method

Result<U, E> and<U>(
  1. Result<U, E> res
)

Return res if the result is Ok, otherwise returns the Err value of this.

Examples

Basic usage:

Result<int, String> x = Ok(2);
Result<String, String> y = Err('late error');
expect(x.and(y), ErrString, String>('late error'));

Result<int, String> x = Err('early error');
Result<String, String> y = Ok('foo');
expect(x.and(y), ErrString, String>('early error'));

Result<int, String> x = Err('not a 2');
Result<String, String> y = Err('late error');
expect(x.and(y), ErrString, String>('not a too'));

Result<int, String> x = Ok(2);
Result<String, String> y = Ok('different result type');
expect(x.and(y), Ok<String, String>('different result type'));

Implementation

Result<U, E> and<U>(Result<U, E> res);