error_or 0.0.1 copy "error_or: ^0.0.1" to clipboard
error_or: ^0.0.1 copied to clipboard

outdated

A simple class for returning a value or an error

ErrorOr #

A simple class ErrorOr for returning a result with either a value T or an error Object.

Features #

I found it useful for always returning a value from an async function, so i could await it, without having to try catch it - which i would rather do in the called function.

ErrorOr can also be used for sync functions.

There are other "result" type packages, but i wanted something simple, which would either be the expected value, or an Object which usually is some type of Exception from a try catch error.

It is similar named to the SerenityOS ErrorOr type.

Getting started #

Make a function return an ErrorOr or a Future<ErrorOr<T>>, which you'll await in the calling class.

Then check if the result hasError and handle that, (e.g. checking for expected exception types and showing a UI), before getting the value. The value is an optional so you need to force it with !.

Usage #

Example

Future<ErrorOr<LocationPermission>> checkPermission() async {
  try {
    return ErrorOr.value(await Geolocator.checkPermission());
  } catch (e) {
    return ErrorOr.error(e);
  }
}
ErrorOr<LocationPermission> errorOrPermission = await checkPermission();
if (errorOrPermission.hasError) {
	return errorOrPermission;
}
LocationPermission permission = errorOrPermission.value!;

Additional information #

I would like to keep this package minimal, but please get in touch on github if you have suggestions to improvements.

5
likes
0
pub points
42%
popularity

Publisher

verified publisherapptakk.com

A simple class for returning a value or an error

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on error_or