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>;
}
Unstable (question_mark_carrier #31436)

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

Unstable (question_mark_carrier #31436)

The type of the value when computation succeeds.

Unstable (question_mark_carrier #31436)

The type of the value when computation errors out.

Required Methods

Unstable (question_mark_carrier #31436)

Create a Carrier from a success value.

Unstable (question_mark_carrier #31436)

Create a Carrier from an error value.

Unstable (question_mark_carrier #31436)

Translate this Carrier to another implementation of Carrier with the same associated types.

Implementors