Result<T, E> class sealed

A type that represents the result of something, either success (Ok) or failure (Err).

A Result type holds either a value of type T, or an error value of type E.

Pattern matching is recommended for interacting with Result types.

Result<int, String> foo = Ok(42);

print(switch (foo) {
  Ok(value: var bar) => 'Ok value: $bar',
  Err(value: var err) => 'Error value: $err'
});

See also: Rust: Result

Implementers
Available extensions

Constructors

Result.from(T? value, E err)
Creates a Result from the given nullable T value.
factory

Properties

hashCode int
The hash code for this object.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

and<U>(Result<U, E> other) Result<U, E>
Returns a Result value as Err<U, E> if this Result is Err<T, E>, otherwise returns other.
andThen<U>(Result<U, E> fn(T)) Result<U, E>
Returns a Result value as Err<U, E> if this Result is Err<T, E>, otherwise calls fn with the held Ok value and returns the returned Result.
call() → T
Shortcut to call Result.unwrap().
err() Option<E>
Converts this Result<T, E> into an Option<E>, discarding the held value if this is Ok.
expect(String message) → T
Returns the held value of this Result if it is Ok. Throws a ResultError with the given message and held Err value if this Result is Err.
expectErr(String message) → E
Returns the held value of this Result if it is Err. Throws a ResultError with the given message and held Ok value if this Result is Ok.
inspect(void fn(T)) Result<T, E>
Calls the provided function with the contained value if this Result is Ok.
inspectErr(void fn(E)) Result<T, E>
Calls the provided function with the contained error value if this Result is Err.
isErr() bool
Returns whether or not this Result is Err.
isErrAnd(bool predicate(E)) bool
Returns whether or not this Result is Err and that the held error value matches the given predicate.
isOk() bool
Returns whether or not this Result is Ok.
isOkAnd(bool predicate(T)) bool
Returns whether or not this Result is Ok and that the held value matches the given predicate.
iter() Iterable<T>
Returns an Iterable of the held value.
map<U>(U mapFn(T)) Result<U, E>
Maps a Result<T, E> to a Result<U, E> using the given function with the held value.
mapErr<F>(F mapFn(E)) Result<T, F>
Maps a Result<T, E> to a Result<T, F> using the given function with the held value.
mapOr<U>(U orValue, U mapFn(T)) Result<U, E>
Maps a Result<T, E> to a Result<U, E> using the given function with the held value if the Result<T, E> is Ok. Otherwise returns the provided orValue as Ok(orValue).
mapOrElse<U>(U orFn(), U mapFn(T)) Result<U, E>
Maps a Result<T, E> to a Result<U, E> using the given mapFn function with the held value if the Result is Ok. Otherwise returns the result of orFn as Ok(orFn()).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
ok() Option<T>
Converts this Result<T, E> into an Option<T>, discarding the held error value if this is Err.
or<F>(Result<T, F> other) Result<T, F>
Returns a Result value as Ok<T, F> if this Result is Ok<T, E>, otherwise returns other.
orElse<F>(Result<T, F> fn(E)) Result<T, F>
Returns a Result value as Ok<T, F> if this Result is Ok<T, E>, otherwise calls fn with the held Err value and returns the returned Result.
toString() String
A string representation of this object.
override
unwrap() → T
Returns the held value of this Result if it is Ok.
unwrapErr() → E
Returns the held value of this Result if it is Err.
unwrapOr(T orValue) → T
Returns the held value of this Result if it is Ok, or the given value if this Result is Err.
unwrapOrElse(T elseFn()) → T
Returns the held value of this Result if it is Ok, or returns the returned value from elseFn if this Result is Err.

Operators

operator ==(Object other) bool
Compare equality between two Result values.
override