Trait core::ops::Try [−][src]
pub trait Try { type Ok; type Error; fn into_result(self) -> Result<Self::Ok, Self::Error>; fn from_error(v: Self::Error) -> Self; fn from_ok(v: Self::Ok) -> Self; }
A trait for customizing the behavior of the ?
operator.
A type implementing Try
is one that has a canonical way to view it
in terms of a success/failure dichotomy. This trait allows both
extracting those success or failure values from an existing instance and
creating a new instance from a success or failure value.
Associated Types
type Ok
The type of this value when viewed as successful.
type Error
The type of this value when viewed as failed.
Required Methods
fn into_result(self) -> Result<Self::Ok, Self::Error>
Applies the "?" operator. A return of Ok(t)
means that the
execution should continue normally, and the result of ?
is the
value t
. A return of Err(e)
means that execution should branch
to the innermost enclosing catch
, or return from the function.
If an Err(e)
result is returned, the value e
will be "wrapped"
in the return type of the enclosing scope (which must itself implement
Try
). Specifically, the value X::from_error(From::from(e))
is returned, where X
is the return type of the enclosing function.
fn from_error(v: Self::Error) -> Self
Wrap an error value to construct the composite result. For example,
Result::Err(x)
and Result::from_error(x)
are equivalent.
fn from_ok(v: Self::Ok) -> Self
Wrap an OK value to construct the composite result. For example,
Result::Ok(x)
and Result::from_ok(x)
are equivalent.