Trait core::ops::Carrier
[−]
[src]
pub trait Carrier { type Success; type Error; fn from_success(_: Self::Success) -> Self; fn from_error(_: Self::Error) -> Self; fn translate<T>(self) -> T
where
T: Carrier<Success = Self::Success, Error = Self::Error>; }
A trait for types which have success and error states and are meant to work
with the question mark operator.
When the ?
operator is used with a value, whether the value is in the
success or error state is determined by calling translate
.
This trait is very experimental, it will probably be iterated on heavily
before it is stabilised. Implementors should expect change. Users of ?
should not rely on any implementations of Carrier
other than Result
,
i.e., you should not expect ?
to continue to work with Option
, etc.
Associated Types
type Success
The type of the value when computation succeeds.
type Error
The type of the value when computation errors out.
Required Methods
fn from_success(_: Self::Success) -> Self
Create a Carrier
from a success value.
fn from_error(_: Self::Error) -> Self
Create a Carrier
from an error value.
fn translate<T>(self) -> T where
T: Carrier<Success = Self::Success, Error = Self::Error>,
T: Carrier<Success = Self::Success, Error = Self::Error>,
Translate this Carrier
to another implementation of Carrier
with the
same associated types.
Implementors
impl<U, V> Carrier for Result<U, V>