Struct extra_safe::traits::Cons

source ·
pub struct Cons<Item, Next: List> { /* private fields */ }
Expand description

The concrete type constructor for our HList trait

Trait Implementations§

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,

§

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

The output of the consumption
source§

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

§

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

The output of the consumption
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,

§

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

The output of the consumption
source§

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

§

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

The output of the consumption
source§

impl<Item: Debug, Next: Debug + List> Debug for Cons<Item, Next>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Item: IOWord, Next: List> List for Cons<Item, Next>

source§

fn unit() -> Self

This is an inhabitant of the List type corresponding to the Self type
source§

fn is_empty() -> bool

THis returns whether the list is empty
source§

impl<L: Normalize> Normalize for Cons<Absorb<U0>, L>

§

type Output = <L as Normalize>::Output

The output of the normalization
source§

impl<U: Unsigned, B: Bit, M: Unsigned, T: List> Normalize for Cons<Absorb<UInt<U, B>>, Cons<Absorb<M>, T>>where UInt<U, B>: Add<M>, Cons<Absorb<Sum<UInt<U, B>, M>>, T>: Normalize,

§

type Output = <Cons<Absorb<<UInt<U, B> as Add<M>>::Output>, T> as Normalize>::Output

The output of the normalization
source§

impl<U: Unsigned, B: Bit, T: List> Normalize for Cons<Absorb<UInt<U, B>>, Cons<Squeeze<U0>, T>>where Cons<Absorb<UInt<U, B>>, T>: Normalize,

§

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

The output of the normalization
source§

impl<U: Unsigned, B: Bit, U2: Unsigned, B2: Bit, T: List> Normalize for Cons<Absorb<UInt<U, B>>, Cons<Squeeze<UInt<U2, B2>>, T>>where Cons<Squeeze<UInt<U2, B2>>, T>: Normalize,

§

type Output = Cons<Absorb<UInt<U, B>>, <Cons<Squeeze<UInt<U2, B2>>, T> as Normalize>::Output>

The output of the normalization
source§

impl<U: Unsigned, B: Bit> Normalize for Cons<Absorb<UInt<U, B>>, Nil>

§

type Output = Cons<Absorb<UInt<U, B>>, Nil>

The output of the normalization
source§

impl<L: Normalize> Normalize for Cons<Squeeze<U0>, L>

§

type Output = <L as Normalize>::Output

The output of the normalization
source§

impl<U: Unsigned, B: Bit, T: List> Normalize for Cons<Squeeze<UInt<U, B>>, Cons<Absorb<U0>, T>>where Cons<Squeeze<UInt<U, B>>, T>: Normalize,

§

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

The output of the normalization
source§

impl<U: Unsigned, B: Bit, U2: Unsigned, B2: Bit, T: List> Normalize for Cons<Squeeze<UInt<U, B>>, Cons<Absorb<UInt<U2, B2>>, T>>where Cons<Absorb<UInt<U2, B2>>, T>: Normalize,

§

type Output = Cons<Squeeze<UInt<U, B>>, <Cons<Absorb<UInt<U2, B2>>, T> as Normalize>::Output>

The output of the normalization
source§

impl<U: Unsigned, B: Bit, M: Unsigned, T: List> Normalize for Cons<Squeeze<UInt<U, B>>, Cons<Squeeze<M>, T>>where UInt<U, B>: Add<M>, Cons<Squeeze<Sum<UInt<U, B>, M>>, T>: Normalize,

§

type Output = <Cons<Squeeze<<UInt<U, B> as Add<M>>::Output>, T> as Normalize>::Output

The output of the normalization
source§

impl<U: Unsigned, B: Bit> Normalize for Cons<Squeeze<UInt<U, B>>, Nil>

§

type Output = Cons<Squeeze<UInt<U, B>>, Nil>

The output of the normalization
source§

impl<Item: ToSpongeOp, T: List + ToIOPattern> ToIOPattern for Cons<Item, T>

source§

fn to_iopattern() -> IOPattern

Converts the type-level pattern to its term-level representation

Auto Trait Implementations§

§

impl<Item, Next> RefUnwindSafe for Cons<Item, Next>where Item: RefUnwindSafe, Next: RefUnwindSafe,

§

impl<Item, Next> Send for Cons<Item, Next>where Item: Send, Next: Send,

§

impl<Item, Next> Sync for Cons<Item, Next>where Item: Sync, Next: Sync,

§

impl<Item, Next> Unpin for Cons<Item, Next>where Item: Unpin, Next: Unpin,

§

impl<Item, Next> UnwindSafe for Cons<Item, Next>where Item: UnwindSafe, Next: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.