[][src]Trait higher::Lift3

pub trait Lift3<A, B, C>: Lift<A, C> {
    type Target2;
    fn cast(from: <Self::Target2 as Lift<B, C>>::Target1) -> Self::Target1
    where
        Self::Target2: Lift<B, C>
, { ... } }

Lift3 extends Lift to let you construct two types T<B> and T<C> from a type T<A>.

T<B> can be found at <T<A> as Lift3<A, B, C>>::Target2, and T<C> at <T<A> as Lift<A, B>>::Target1.

The naming convention is that the Targets are numbered from right to left.

Associated Types

type Target2

Loading content...

Provided methods

fn cast(from: <Self::Target2 as Lift<B, C>>::Target1) -> Self::Target1 where
    Self::Target2: Lift<B, C>, 

Loading content...

Implementations on Foreign Types

impl<A, B, C> Lift3<A, B, C> for Option<A>[src]

type Target2 = Option<B>

impl<A, B, C, E> Lift3<A, B, C> for Result<A, E>[src]

type Target2 = Result<B, E>

impl<A, B, C> Lift3<A, B, C> for Vec<A>[src]

type Target2 = Vec<B>

impl<A, B, C, S> Lift3<A, B, C> for HashSet<A, S>[src]

type Target2 = HashSet<B, S>

impl<A, B, C> Lift3<A, B, C> for BTreeSet<A>[src]

type Target2 = BTreeSet<B>

impl<A, B, C> Lift3<A, B, C> for VecDeque<A>[src]

type Target2 = VecDeque<B>

impl<A, B, C> Lift3<A, B, C> for LinkedList<A>[src]

impl<A, B, C> Lift3<A, B, C> for BinaryHeap<A>[src]

Loading content...

Implementors

Loading content...