Result<T, E extends Object> class
sealed
A type-safe alternative to throwing exceptions, inspired by Rust's
Result<T, E>.
Result represents one of two states:
Because Result is a sealed class, exhaustive pattern matching with
switch is available (Dart 3.0+):
final result = fetchUser(id);
switch (result) {
case Ok(value: final user): print('Got $user');
case Err(error: final e): print('Failed: $e');
}
T is the success value type; E must extend Object (including
Exception, String, or custom error classes).
Constructors
- Result.err(E error)
-
Creates a failed Result wrapping
error.constfactory - Result.ok(T value)
-
Creates a successful Result wrapping
value.constfactory
Properties
- errOrNull → E?
-
Returns the error value if this is Err, otherwise
null.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
- isErr → bool
-
Whether this is an Err result.
no setter
- isOk → bool
-
Whether this is an Ok result.
no setter
- okOrNull → T?
-
Returns the success value if this is Ok, otherwise
null.no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
fold<
R> (R onOk(T value), R onErr(E error)) → R -
Collapses the result with
onOkoronErr, producing a single value of typeR. -
map<
R> (R f(T value)) → Result< R, E> -
Transforms the success value with
fif this is Ok. -
mapErr<
F extends Object> (F f(E error)) → Result< T, F> -
Transforms the error value with
fif this is Err. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
orElse<
F extends Object> (Result< T, F> f(E error)) → Result<T, F> -
Returns the success value if this is Ok, otherwise the result of
calling
fon the error. -
toString(
) → String -
A string representation of this object.
override
-
unwrap(
) → T - Returns the success value, or throws a ResultException if this is Err.
-
unwrapOr(
T defaultValue) → T -
Returns the success value if this is Ok, otherwise returns
defaultValue. -
unwrapOrElse(
T onErr(E error)) → T -
Returns the success value if this is Ok, otherwise computes a fallback
using
onErr.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited