Size

Trait Size 

Source
pub trait Size {
    type Size: Unsigned;

    const SIZE: usize = <Self::Size as Unsigned>::USIZE;
}

Provided Associated Constants§

Source

const SIZE: usize = <Self::Size as Unsigned>::USIZE

Required Associated Types§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Size for Infallible

Source§

const SIZE: usize = 0usize

Source§

type Size = UTerm

Source§

impl Size for bool

Source§

impl Size for u8

Source§

const SIZE: usize = 1usize

Source§

type Size = UInt<UTerm, B1>

Source§

impl Size for ()

Source§

const SIZE: usize = 0usize

Source§

type Size = UTerm

Source§

impl<A: Size, B: Size> Size for (A, B)
where TArr<A::Size, TArr<B::Size, ATerm>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, ATerm>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size> Size for (A, B, C)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, ATerm>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, ATerm>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size> Size for (A, B, C, D)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, ATerm>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, ATerm>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size> Size for (A, B, C, D, E)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, ATerm>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, ATerm>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size> Size for (A, B, C, D, E, F)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, ATerm>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, ATerm>>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size, G: Size> Size for (A, B, C, D, E, F, G)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, TArr<G::Size, ATerm>>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, TArr<<G as Size>::Size, ATerm>>>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size, G: Size, H: Size> Size for (A, B, C, D, E, F, G, H)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, TArr<G::Size, TArr<H::Size, ATerm>>>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, TArr<<G as Size>::Size, TArr<<H as Size>::Size, ATerm>>>>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size, G: Size, H: Size, I: Size> Size for (A, B, C, D, E, F, G, H, I)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, TArr<G::Size, TArr<H::Size, TArr<I::Size, ATerm>>>>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, TArr<<G as Size>::Size, TArr<<H as Size>::Size, TArr<<I as Size>::Size, ATerm>>>>>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size, G: Size, H: Size, I: Size, J: Size> Size for (A, B, C, D, E, F, G, H, I, J)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, TArr<G::Size, TArr<H::Size, TArr<I::Size, TArr<J::Size, ATerm>>>>>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, TArr<<G as Size>::Size, TArr<<H as Size>::Size, TArr<<I as Size>::Size, TArr<<J as Size>::Size, ATerm>>>>>>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size, G: Size, H: Size, I: Size, J: Size, K: Size> Size for (A, B, C, D, E, F, G, H, I, J, K)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, TArr<G::Size, TArr<H::Size, TArr<I::Size, TArr<J::Size, TArr<K::Size, ATerm>>>>>>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, TArr<<G as Size>::Size, TArr<<H as Size>::Size, TArr<<I as Size>::Size, TArr<<J as Size>::Size, TArr<<K as Size>::Size, ATerm>>>>>>>>>>> as FoldAdd>::Output

Source§

impl<A: Size, B: Size, C: Size, D: Size, E: Size, F: Size, G: Size, H: Size, I: Size, J: Size, K: Size, L: Size> Size for (A, B, C, D, E, F, G, H, I, J, K, L)
where TArr<A::Size, TArr<B::Size, TArr<C::Size, TArr<D::Size, TArr<E::Size, TArr<F::Size, TArr<G::Size, TArr<H::Size, TArr<I::Size, TArr<J::Size, TArr<K::Size, TArr<L::Size, ATerm>>>>>>>>>>>>: FoldAdd<Output: Unsigned>,

Source§

const SIZE: usize

Source§

type Size = <TArr<<A as Size>::Size, TArr<<B as Size>::Size, TArr<<C as Size>::Size, TArr<<D as Size>::Size, TArr<<E as Size>::Size, TArr<<F as Size>::Size, TArr<<G as Size>::Size, TArr<<H as Size>::Size, TArr<<I as Size>::Size, TArr<<J as Size>::Size, TArr<<K as Size>::Size, TArr<<L as Size>::Size, ATerm>>>>>>>>>>>> as FoldAdd>::Output

Source§

impl<T: Size + MaybeHasNiche<MnArray: MnArray<MaybeNiche: Niche<NeedsTag = B, N: Add<B, Output = N>>>>, B: Bit, N: Unsigned> Size for Option<T>

Source§

type Size = N

Source§

impl<T: Size> Size for (T,)

Source§

const SIZE: usize = T::SIZE

Source§

type Size = <T as Size>::Size

Source§

impl<T: Size, const N: usize> Size for [T; N]
where Const<N>: ToUInt<Output: Unsigned + Mul<T::Size, Output: Unsigned>>,

Source§

const SIZE: usize

Source§

type Size = <<Const<N> as ToUInt>::Output as Mul<<T as Size>::Size>>::Output

Source§

impl<T: ?Sized + Size> Size for Box<T>

Source§

const SIZE: usize = T::SIZE

Source§

type Size = <T as Size>::Size

Source§

impl<T: ?Sized + Size> Size for Arc<T>

Source§

const SIZE: usize = T::SIZE

Source§

type Size = <T as Size>::Size

Source§

impl<T: ?Sized> Size for PhantomData<T>

Source§

const SIZE: usize = 0usize

Source§

type Size = UTerm

Implementors§

Source§

impl<T> Size for Point<T>

Source§

const SIZE: usize = 32usize

Source§

type Size = <Const<HASH_SIZE> as ToUInt>::Output

Source§

impl<T, const MAX: usize, __Output: Unsigned> Size for EnumTag<T, MAX>
where T: Size, TArr<<T as Size>::Size, ATerm>: FoldAdd<Output = __Output>,

Source§

const SIZE: usize = <T as ::object_rainbow::Size>::SIZE

Source§

type Size = <TArr<<T as Size>::Size, ATerm> as FoldAdd>::Output

Source§

impl<T: Size> Size for Lp<T>
where U8: Add<T::Size, Output: Unsigned>,

Source§

type Size = <UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0> as Add<<T as Size>::Size>>::Output

Source§

impl<T: ToOutput> Size for Hashed<T>

Source§

const SIZE: usize = 32usize

Source§

type Size = <Point<T> as Size>::Size

Source§

impl<__Output: Unsigned> Size for Hash
where TArr<<[u8; 32] as Size>::Size, ATerm>: FoldAdd<Output = __Output>,

Source§

const SIZE: usize = 32usize

Source§

type Size = <TArr<<[u8; 32] as Size>::Size, ATerm> as FoldAdd>::Output

Source§

impl<__Output: Unsigned> Size for OptionalHash
where TArr<<[u8; 32] as Size>::Size, ATerm>: FoldAdd<Output = __Output>,

Source§

const SIZE: usize = 32usize

Source§

type Size = <TArr<<[u8; 32] as Size>::Size, ATerm> as FoldAdd>::Output