Consume

Trait Consume 

Source
pub trait Consume<Op: IOWord> {
    type Output: List;
}
Expand description

Emptying an IOPattern using an IOWord. This assumes that it is working with a list in head-normal form (i.e. the first element cannot be merged with the immediately following list). All lists that have been normalized are in head-normal form.

Required Associated Types§

Source

type Output: List

The output of the consumption

Implementors§

Source§

impl<N, T: List> Consume<Absorb<UTerm>> for Cons<Absorb<N>, T>
where N: Unsigned,

Source§

type Output = Cons<Absorb<N>, T>

Source§

impl<N, T: List> Consume<Squeeze<UTerm>> for Cons<Squeeze<N>, T>
where N: Unsigned,

Source§

impl<U, B, N, T> Consume<Absorb<UInt<U, B>>> for Cons<Absorb<N>, T>
where U: Unsigned, B: Bit, N: Unsigned + Sub<UInt<U, B>>, T: List, Cons<Absorb<Diff<N, UInt<U, B>>>, T>: Normalize,

Source§

type Output = <Cons<Absorb<<N as Sub<UInt<U, B>>>::Output>, T> as Normalize>::Output

Source§

impl<U, B, N, T> Consume<Squeeze<UInt<U, B>>> for Cons<Squeeze<N>, T>
where U: Unsigned, B: Bit, N: Unsigned + Sub<UInt<U, B>>, T: List, Cons<Squeeze<Diff<N, UInt<U, B>>>, T>: Normalize,

Source§

type Output = <Cons<Squeeze<<N as Sub<UInt<U, B>>>::Output>, T> as Normalize>::Output