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>
Translate this Carrier to another implementation of Carrier with the
same associated types.
Implementors
impl<U, V> Carrier for Result<U, V>