[][src]Type Definition type_freak::kvlist::KVCons

type KVCons<Key, Value, Tail> = LCons<(Key, Value), Tail>;

A node of KVList.

Trait Implementations

impl<Key, Value, Tail> NonEmptyKVList for KVCons<Key, Value, Tail> where
    Tail: KVList
[src]

impl<Key, Value, Tail> KVList for KVCons<Key, Value, Tail> where
    Tail: KVList
[src]

impl<Key, Value, Target, TargetValue, Tail> KVInsertAtOp<Key, Value, Target, Current> for KVCons<Target, TargetValue, Tail> where
    Tail: KVList
[src]

type Output = KVCons<Key, Value, KVCons<Target, TargetValue, Tail>>

impl<Key, Value, Target, Index, NonTarget, NonTargetValue, Tail> KVInsertAtOp<Key, Value, Target, Next<Index>> for KVCons<NonTarget, NonTargetValue, Tail> where
    Tail: KVList + KVInsertAtOp<Key, Value, Target, Index>,
    Index: Counter
[src]

type Output = KVCons<NonTarget, NonTargetValue, KVInsertAtOpOutput<Tail, Key, Value, Target, Index>>

impl<Target, Value, Tail> KVRemoveAtOp<Target, Current> for KVCons<Target, Value, Tail> where
    Tail: KVList
[src]

type Output = Tail

impl<Target, Index, NonTarget, Value, Tail> KVRemoveAtOp<Target, Next<Index>> for KVCons<NonTarget, Value, Tail> where
    Index: Counter,
    Tail: KVList + KVRemoveAtOp<Target, Index>, 
[src]

type Output = KVCons<NonTarget, Value, KVRemoveAtOpOutput<Tail, Target, Index>>

impl<Index, IRemain, Target, TRemain, Key, Value, Tail> KVRemoveManyOp<LCons<Target, TRemain>, LCons<Index, IRemain>> for KVCons<Key, Value, Tail> where
    Index: Counter,
    IRemain: TList,
    TRemain: TList,
    Tail: KVList,
    Self: KVRemoveAtOp<Target, Index>,
    KVRemoveAtOpOutput<Self, Target, Index>: KVRemoveManyOp<TRemain, IRemain>, 
[src]

type Output = KVRemoveManyOpOutput<KVRemoveAtOpOutput<Self, Target, Index>, TRemain, IRemain>