Trait std::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>;
}
question_mark_carrier
)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
question_mark_carrier
)The type of the value when computation succeeds.
type Error
question_mark_carrier
)The type of the value when computation errors out.
Required Methods
fn from_success(Self::Success) -> Self
question_mark_carrier
)Create a Carrier
from a success value.
fn from_error(Self::Error) -> Self
question_mark_carrier
)Create a Carrier
from an error value.
fn translate<T>(self) -> T where T: Carrier<Success=Self::Success, Error=Self::Error>
question_mark_carrier
)Translate this Carrier
to another implementation of Carrier
with the
same associated types.
Implementors
impl<U, V> Carrier for Result<U, V>