[][src]Struct typsy::hlist::Cons

pub struct Cons<T, R> {
    pub value: T,
    pub rest: R,
}

Fields

value: Trest: R

Trait Implementations

impl<T, R: HList> Access<T, Zero> for Cons<T, R>[src]

type Remainder = R

impl<T, U, R: Access<U, N>, N> Access<U, Succ<N>> for Cons<T, R>[src]

type Remainder = Cons<T, R::Remainder>

impl<T, R: AnonType, Name> AnonType for Cons<Named<T, Name>, R>[src]

impl<T, R: AnonType> AnonType for Cons<Unnamed<T>, R>[src]

impl<'a, F, T: 'a> Any<'a, F, ()> for Cons<T, Nil> where
    F: CallOnce<(&'a T,), Output = bool>, 
[src]

impl<'a, F, T: 'a, R: NonEmpty> Any<'a, F, ()> for Cons<T, R> where
    F: CallMut<(&'a T,), Output = bool>,
    R: Any<'a, F>, 
[src]

impl<'a, F, T: 'a, N> Any<'a, F, (N, ())> for Cons<T, Nil> where
    F: CallOnce<(&'a T,), N, Output = bool>, 
[src]

impl<'a, F, T: 'a, R: NonEmpty, N, M> Any<'a, F, (N, M)> for Cons<T, R> where
    F: CallMut<(&'a T,), N, Output = bool>,
    R: Any<'a, F, M>, 
[src]

impl<'a, T: 'a, R: AsRef<'a>> AsRef<'a> for Cons<T, R>[src]

type Ref = Cons<&'a T, R::Ref>

type RefMut = Cons<&'a mut T, R::RefMut>

impl<Args, N, F, R: Call<Args, N>> Call<Args, Succ<N>> for Cons<F, R>[src]

impl<Args, F: Fn(Args) -> O, O, R> Call<Args, Zero> for Cons<F, R>[src]

impl<Args, N, F, R: CallMut<Args, N>> CallMut<Args, Succ<N>> for Cons<F, R>[src]

impl<Args, F: FnMut(Args) -> O, O, R> CallMut<Args, Zero> for Cons<F, R>[src]

impl<Args, N, F, R: CallOnce<Args, N>> CallOnce<Args, Succ<N>> for Cons<F, R>[src]

type Output = R::Output

impl<Args, F: FnOnce(Args) -> O, O, R> CallOnce<Args, Zero> for Cons<F, R>[src]

type Output = O

impl<T: Clone, R: Clone> Clone for Cons<T, R>[src]

impl<T, R: Concat<L>, L: HList> Concat<L> for Cons<T, R>[src]

type Output = Cons<T, R::Output>

impl<T, R: HList> Convert for Cons<T, R>[src]

type HList = Self

impl<T: Copy, R: Copy> Copy for Cons<T, R>[src]

impl<T: Debug, R: Debug> Debug for Cons<T, R>[src]

impl<T, R> DeepTransformFrom<Cons<T, R>, ()> for Nil[src]

impl<T, Rt, L: DeepTransform<Rt, Ri>, I, Ri> DeepTransformFrom<Cons<Unnamed<T>, L>, (I, Ri)> for Cons<Unnamed<T>, Rt>[src]

impl<T, Rt, L, I, Ti, Ri, Name> DeepTransformFrom<L, (I, Ti, Ri)> for Cons<Named<T, Name>, Rt> where
    L: RemoveField<Name, I>,
    L::Value: DeepTransform<T, Ti>,
    L::Remainder: DeepTransform<Rt, Ri>, 
[src]

impl<T: Eq, R: Eq> Eq for Cons<T, R>[src]

impl<T, R: HList> HList for Cons<T, R>[src]

impl<T: Hash, R: Hash> Hash for Cons<T, R>[src]

impl<T, R: CoProd, C, N, M> IntoSubset<CoCons<T, R>, Cons<PhantomData<N>, M>> for C where
    C: Access<T, N>,
    C::Remainder: IntoSubset<R, M>, 
[src]

type Remainder = <C::Remainder as IntoSubset<R, M>>::Remainder

impl<T, R, C, N, M> IntoSuperset<C, Cons<PhantomData<N>, M>> for CoCons<T, R> where
    C: Access<T, N>,
    R: IntoSuperset<C, M>, 
[src]

impl<F: CallOnce<(T,)>, T> Map<F, ()> for Cons<T, Nil>[src]

type Output = Cons<F::Output, Nil>

impl<F: CallMut<(T,)>, T, R: NonEmpty + Map<F>> Map<F, ()> for Cons<T, R>[src]

type Output = Cons<F::Output, R::Output>

impl<F: CallOnce<(T,), N>, T, N> Map<F, (N, ())> for Cons<T, Nil>[src]

type Output = Cons<F::Output, Nil>

impl<F: CallMut<(T,), N>, T, R: NonEmpty + Map<F, M>, N, M> Map<F, (N, M)> for Cons<T, R>[src]

type Output = Cons<F::Output, R::Output>

impl<T, R: HList> NonEmpty for Cons<T, R>[src]

impl<T: Ord, R: Ord> Ord for Cons<T, R>[src]

impl<T: PartialEq, R: PartialEq> PartialEq<Cons<T, R>> for Cons<T, R>[src]

impl<T: PartialOrd, R: PartialOrd> PartialOrd<Cons<T, R>> for Cons<T, R>[src]

impl<T, Name, R: RemoveField<Name, N>, N> RemoveField<Name, Succ<N>> for Cons<T, R>[src]

type Value = R::Value

type Remainder = Cons<T, R::Remainder>

impl<T, Name, R> RemoveField<Name, Zero> for Cons<Named<T, Name>, R>[src]

type Value = T

type Remainder = R

impl<T, U, R: HList, S: HList, N, M> Split<Cons<U, S>, Cons<PhantomData<N>, M>> for Cons<T, R> where
    Self: Access<U, N>,
    Self::Remainder: Split<S, M>, 
[src]

type Remainder = <Self::Remainder as Split<S, M>>::Remainder

impl<T, R> StructuralEq for Cons<T, R>[src]

impl<T, R> StructuralPartialEq for Cons<T, R>[src]

impl<T, R> Transform for Cons<T, R> where
    Self: AnonType
[src]

type Canon = Self

impl<A, F, T, O, E> TryFold<A, F, ()> for Cons<T, Nil> where
    F: CallOnce<(A, T), Output = Result<O, E>>, 
[src]

type Output = O

type Error = CoCons<E, CoNil>

impl<A, F, T, R: HList, O, E> TryFold<A, F, ()> for Cons<T, R> where
    F: CallMut<(A, T), Output = Result<O, E>>,
    R: NonEmpty + TryFold<O, F>, 
[src]

type Output = R::Output

type Error = CoCons<E, R::Error>

impl<A, F, T, O, E, N> TryFold<A, F, (N, ())> for Cons<T, Nil> where
    F: CallOnce<(A, T), N, Output = Result<O, E>>, 
[src]

type Output = O

type Error = CoCons<E, CoNil>

impl<A, F, T, R: HList, O, E, N, M> TryFold<A, F, (N, M)> for Cons<T, R> where
    F: CallMut<(A, T), N, Output = Result<O, E>>,
    R: NonEmpty + TryFold<O, F, M>, 
[src]

type Output = R::Output

type Error = CoCons<E, R::Error>

impl<T, U, R: UnZip> UnZip for Cons<(T, U), R>[src]

type Left = Cons<T, R::Left>

type Right = Cons<U, R::Right>

type Flipped = Cons<(U, T), R::Flipped>

impl<T, U, R: Zip<S>, S> Zip<Cons<U, S>> for Cons<T, R>[src]

type Output = Cons<(T, U), R::Output>

Auto Trait Implementations

impl<T, R> Send for Cons<T, R> where
    R: Send,
    T: Send
[src]

impl<T, R> Sync for Cons<T, R> where
    R: Sync,
    T: Sync
[src]

impl<T, R> Unpin for Cons<T, R> where
    R: Unpin,
    T: Unpin
[src]

Blanket Implementations

impl<T> Access for T[src]

impl<'a, F, T, TagList> All<'a, F, TagList> for T where
    T: Any<'a, Not<F>, TagList>, 
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoNamed for T where
    T: AnonType
[src]

impl<T, R, C, N, M> IntoSubset<CoCons<T, R>, Cons<PhantomData<N>, M>> for C where
    C: Access<T, N>,
    R: CoProd,
    <C as Access<T, N>>::Remainder: IntoSubset<R, M>, 
[src]

type Remainder = <<C as Access<T, N>>::Remainder as IntoSubset<R, M>>::Remainder

impl<T, U, N> Shuffle<U, N> for T where
    T: HList + Split<U, N, Remainder = Nil>,
    U: HList
[src]

impl<T> Split<Nil, Nil> for T where
    T: HList
[src]

type Remainder = T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.