Module std::result

Expand description

Error handling with the Result type.

Result<T, E> Result is the type used for returning and propagating
errors. It is an enum with the variants, Ok(T), representing
success and containing a value, and Err(E), representing error
and containing an error value.

Functions return Result whenever errors are expected and recoverable. In
the std crate, Result is most prominently used for Identity
interactions and cryptographic operations.

A simple function returning Result might be defined and used like so:

enum Version {
    Version1,
    Version2,
}

enum VersionError {
    InvalidNumber,
}

fn parse_version(version_number: u8) -> Result<Version, VersionError> {
    match version_number {
        1 => Ok(Version::Version1),
        2 => Ok(Version::Version2),
        _ => Err(VersionError::InvalidNumber),
    }
}

Method overview

In addition to working with pattern matching, Result provides a variety
of methods.

Querying the variant

The is_ok and is_err methods return true if the Result is
Ok or Err, respectively.

is_ok : Result::is_ok
is_err: Result::is_err

Extracting the contained value

These methods extract the contained value in a Result<T,E> when it is
the Ok variant. If the Result is Err:

  • unwrap reverts.
  • unwrap_or returns the default provided value.

unwrap : Result::unwrap
unwrap_or: Result::unwrap_or

Enums

Result is a type that represents either success (Ok) or failure (Err).