[][src]Struct agnes::cons::Cons

pub struct Cons<H, T> {
    pub head: H,
    pub tail: T,
}

Buildling block of a heterogeneous type list.

Fields

head: H

Value of this element of the type list.

tail: T

Remaining elements of the type list.

Trait Implementations

impl<NewH, H, T> PushFront<NewH> for Cons<H, T>[src]

type Output = Cons<NewH, Self>

The resulting cons-list type after pushing the specified H element to the front of the existing list. Read more

impl<U, H, T> PushBack<U> for Cons<H, T> where
    T: PushBack<U>, 
[src]

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

The resulting cons-list type after pushing the specified H element to the front of the existing list. Read more

impl<List, H, T> Append<List> for Cons<H, T> where
    T: Append<List>, 
[src]

type Appended = Cons<H, T::Appended>

The resulting cons-list type after adding the element of the target list to the end of the existing list. Read more

impl<Head, Tail> Len for Cons<Head, Tail> where
    Tail: Len,
    <Tail as Len>::Len: Add<B1>,
    <<Tail as Len>::Len as Add<B1>>::Output: Unsigned
[src]

type Len = Add1<<Tail as Len>::Len>

typenum-based list length.

fn is_empty(&self) -> bool[src]

Returns true if length is 0, and false otherwise.

fn len(&self) -> usize[src]

Returns the length of this list.

impl<NeedleLbl, NeedleTail, Haystack> HasLabels<Cons<Labeled<NeedleLbl, ()>, NeedleTail>> for Haystack where
    Haystack: Member<NeedleLbl, IsMember = True>,
    Haystack: HasLabels<NeedleTail>, 
[src]

impl<H, T> LookupElemByNat<UTerm> for Cons<H, T>[src]

type Elem = H

Type of looked-up element.

impl<H, T> LookupElemByNat<UInt<UTerm, B1>> for Cons<H, T> where
    T: LookupElemByNat<UTerm>, 
[src]

type Elem = <T as LookupElemByNat<UTerm>>::Elem

Type of looked-up element.

impl<H, T, N> LookupElemByNat<UInt<N, B0>> for Cons<H, T> where
    N: Sub<B1>,
    T: LookupElemByNat<UInt<Sub1<N>, B1>>, 
[src]

type Elem = <T as LookupElemByNat<UInt<Sub1<N>, B1>>>::Elem

Type of looked-up element.

impl<H, T, N, B> LookupElemByNat<UInt<UInt<N, B>, B1>> for Cons<H, T> where
    T: LookupElemByNat<UInt<UInt<N, B>, B0>>, 
[src]

type Elem = <T as LookupElemByNat<UInt<UInt<N, B>, B0>>>::Elem

Type of looked-up element.

impl<LabelList, H, T> LabelSubsetPred<LabelList, B1> for Cons<H, T> where
    T: LabelSubset<LabelList>, 
[src]

type Output = Cons<H, <T as LabelSubset<LabelList>>::Output>

Subset of Self that are labeled with labels in LabelList.

impl<LabelList, H, T> LabelSubsetPred<LabelList, B0> for Cons<H, T> where
    T: LabelSubset<LabelList>, 
[src]

type Output = <T as LabelSubset<LabelList>>::Output

Subset of Self that are labeled with labels in LabelList.

impl<Label, FrameIndex, FrameLabel, Tail, Frames, Store> JoinIntoStore<Cons<Labeled<Label, PhantomData<FrameDetailMarkers<FrameIndex, FrameLabel>>>, Tail>, Store> for Frames where
    Frames: LookupValuedElemByLabel<FrameIndex>,
    FrameByFrameIndexOf<Frames, FrameIndex>: SelectFieldByLabel<FrameLabel>,
    Store: PushBackClonedFromValueIter<Label, FieldTypeFromFrameDetailsOf<Frames, FrameIndex, FrameLabel>>,
    Frames: JoinIntoStore<Tail, DataStore<<Store as PushBackClonedFromValueIter<Label, FieldTypeFromFrameDetailsOf<Frames, FrameIndex, FrameLabel>>>::OutputFields>>, 
[src]

type Output = <Frames as JoinIntoStore<Tail, DataStore<<Store as PushBackClonedFromValueIter<Label, FieldTypeFromFrameDetailsOf<Frames, FrameIndex, FrameLabel>>>::OutputFields>>>::Output

The output type after augmenting Store.

impl<Label, FrameIndex, FrameLabel, LookupTail, Frames> AssocDataIndexCons<Cons<Labeled<Label, PhantomData<FrameDetailMarkers<FrameIndex, FrameLabel>>>, LookupTail>> for Frames where
    Self: SelectFieldFromLabels<FrameLookupCons<Label, FrameIndex, FrameLabel, LookupTail>, Label>,
    Self: AssocDataIndexCons<LookupTail>,
    Self::Output: Typed
[src]

type Output = DataIndexCons<Label, TypeOf<<Frames as SelectFieldFromLabels<FrameLookupCons<Label, FrameIndex, FrameLabel, LookupTail>, Label>>::Output>, <Frames as SelectFieldFromLabels<FrameLookupCons<Label, FrameIndex, FrameLabel, LookupTail>, Label>>::Output, <Frames as AssocDataIndexCons<LookupTail>>::Output>

Type of associated data index cons-list.

impl<Head, Tail> HashIndex for Cons<Head, Tail> where
    Head: HashIndex,
    Tail: HashIndex
[src]

impl<Head, Tail> PartialEqIndex for Cons<Head, Tail> where
    Head: PartialEqIndex,
    Tail: PartialEqIndex
[src]

impl<LabelList, H, T> SubsetClonePred<LabelList, B1> for Cons<H, T> where
    T: SubsetClone<LabelList>,
    H: Clone
[src]

type Output = Cons<H, <T as SubsetClone<LabelList>>::Output>

Output of applying $req_fn to values in this cons-list if IsMember is True.

impl<LabelList, H, T> SubsetClonePred<LabelList, B0> for Cons<H, T> where
    T: SubsetClone<LabelList>, 
[src]

type Output = <T as SubsetClone<LabelList>>::Output

Output of applying $req_fn to values in this cons-list if IsMember is True.

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

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

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

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

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

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

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

impl<H, T> Send for Cons<H, T> where
    H: Send,
    T: Send

impl<H, T> Sync for Cons<H, T> where
    H: Sync,
    T: Sync

Blanket Implementations

impl<T> IntoLabeled for T[src]

impl<T> HasLabels for T[src]

impl<NeedleLbl, NeedleTail, Haystack> HasLabels for Haystack where
    Haystack: Member<NeedleLbl, IsMember = B1> + HasLabels<NeedleTail>, 
[src]

impl<Needle, Haystack> HasLabels for Haystack where
    Haystack: Member<Needle, IsMember = B1>,
    Needle: Label
[src]

impl<L, T> LookupElemByLabel for T where
    T: LookupNatByLabel<L> + LookupElemByNat<<T as LookupNatByLabel<L>>::Nat>, 
[src]

type Elem = <T as LookupElemByNat<<T as LookupNatByLabel<L>>::Nat>>::Elem

Type of lookup-up element.

impl<T, L> LookupValuedElemByLabel for T where
    T: LookupElemByLabel<L>,
    <T as LookupElemByLabel<L>>::Elem: Valued
[src]

type Elem = <T as LookupElemByLabel<L>>::Elem

Type of looked-up element.

impl<T, L> LookupMarkedElemByLabel for T where
    T: LookupElemByLabel<L>,
    <T as LookupElemByLabel<L>>::Elem: Marked
[src]

type Elem = <T as LookupElemByLabel<L>>::Elem

Marker type of looked-up element.

impl<T, L> LookupTypedElemByLabel for T where
    T: LookupElemByLabel<L>,
    <T as LookupElemByLabel<L>>::Elem: Typed
[src]

type Elem = <T as LookupElemByLabel<L>>::Elem

Associated data type of looked-up element.

impl<Frames, Store> JoinIntoStore for Frames[src]

type Output = Store

The output type after augmenting Store.

impl<Label, FrameIndex, FrameLabel, Tail, Frames, Store> JoinIntoStore for Frames where
    Frames: LookupValuedElemByLabel<FrameIndex> + JoinIntoStore<Tail, DataStore<<Store as PushBackClonedFromValueIter<Label, <<<<Frames as LookupValuedElemByLabel<FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<FrameLabel>>::Output as DataIndex>::DType>>::OutputFields>>,
    Store: PushBackClonedFromValueIter<Label, <<<<Frames as LookupValuedElemByLabel<FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<FrameLabel>>::Output as DataIndex>::DType>,
    <<Frames as LookupValuedElemByLabel<FrameIndex>>::Elem as Valued>::Value: SelectFieldByLabel<FrameLabel>, 
[src]

type Output = <Frames as JoinIntoStore<Tail, DataStore<<Store as PushBackClonedFromValueIter<Label, <<<<Frames as LookupValuedElemByLabel<FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<FrameLabel>>::Output as DataIndex>::DType>>::OutputFields>>>::Output

The output type after augmenting Store.

impl<Labels, Label> FindFrameDetails for Labels where
    Labels: LookupMarkedElemByLabel<Label>,
    <<Labels as LookupMarkedElemByLabel<Label>>::Elem as Marked>::Marker: FrameDetails
[src]

type FrameDetails = <<Labels as LookupMarkedElemByLabel<Label>>::Elem as Marked>::Marker

The associated frame details for this type.

impl<Frames, Labels, Label> FindFrame for Frames where
    Frames: LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>,
    Labels: FindFrameDetails<Label>, 
[src]

impl<Labels, Frames, Label> SelectFieldFromLabels for Frames where
    Frames: FindFrame<Labels, Label>,
    Labels: FindFrameDetails<Label>,
    <<Frames as LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>>::Elem as Valued>::Value: SelectFieldByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameLabel>,
    <<<Frames as LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameLabel>>::Output: Typed,
    <<<Frames as LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameLabel>>::Output: SelfValued,
    <<<Frames as LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameLabel>>::Output: Clone,
    <<<<Frames as LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameLabel>>::Output as Typed>::DType: Debug
[src]

type Output = <<<Frames as LookupValuedElemByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameIndex>>::Elem as Valued>::Value as SelectFieldByLabel<<<Labels as FindFrameDetails<Label>>::FrameDetails as FrameDetails>::FrameLabel>>::Output

Selected field type.

impl<Frames> AssocDataIndexCons for Frames[src]

type Output = Nil

Type of associated data index cons-list.

impl<Label, FrameIndex, FrameLabel, LookupTail, Frames> AssocDataIndexCons for Frames where
    Frames: SelectFieldFromLabels<Cons<Labeled<Label, PhantomData<FrameDetailMarkers<FrameIndex, FrameLabel>>>, LookupTail>, Label> + AssocDataIndexCons<LookupTail>,
    <Frames as SelectFieldFromLabels<Cons<Labeled<Label, PhantomData<FrameDetailMarkers<FrameIndex, FrameLabel>>>, LookupTail>, Label>>::Output: Typed
[src]

type Output = Cons<Labeled<Label, TypedValue<<<Frames as SelectFieldFromLabels<Cons<Labeled<Label, PhantomData<FrameDetailMarkers<FrameIndex, FrameLabel>>>, LookupTail>, Label>>::Output as Typed>::DType, <Frames as SelectFieldFromLabels<Cons<Labeled<Label, PhantomData<FrameDetailMarkers<FrameIndex, FrameLabel>>>, LookupTail>, Label>>::Output>>, <Frames as AssocDataIndexCons<LookupTail>>::Output>

Type of associated data index cons-list.

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

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

type Owned = T

impl<T> From for T[src]

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<Q, K> Equivalent for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Erased for T

impl<Q, K> Equivalent for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Same for T[src]

type Output = T

Should always be Self