Trait Const

Source
pub trait Const {
    type Type;

    const VALUE: Self::Type;
}
Expand description

Describes a type that holds an associated const value.

Required Associated Constants§

Source

const VALUE: Self::Type

The implementation of the value. Prefer value_of for accessing this during const evaluation.

Required Associated Types§

Source

type Type

The value type of the const

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 Const for ()

Source§

const VALUE: <() as Const>::Type = ()

Source§

type Type = ()

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> Const for (A, B, C, D, E, F, G, H, I, J, K, L)
where A: Const, B: Const, C: Const, D: Const, E: Const, F: Const, G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(A, B, C, D, E, F, G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<A as Const>::Type, <B as Const>::Type, <C as Const>::Type, <D as Const>::Type, <E as Const>::Type, <F as Const>::Type, <G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<B, C, D, E, F, G, H, I, J, K, L> Const for (B, C, D, E, F, G, H, I, J, K, L)
where B: Const, C: Const, D: Const, E: Const, F: Const, G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(B, C, D, E, F, G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<B as Const>::Type, <C as Const>::Type, <D as Const>::Type, <E as Const>::Type, <F as Const>::Type, <G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<C, D, E, F, G, H, I, J, K, L> Const for (C, D, E, F, G, H, I, J, K, L)
where C: Const, D: Const, E: Const, F: Const, G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(C, D, E, F, G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<C as Const>::Type, <D as Const>::Type, <E as Const>::Type, <F as Const>::Type, <G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<C, const N: usize> Const for [C; N]
where C: Const,

[Const; N] evaluates to [VALUE; N]

Source§

const VALUE: <[C; N] as Const>::Type

Source§

type Type = [<C as Const>::Type; N]

Source§

impl<D, E, F, G, H, I, J, K, L> Const for (D, E, F, G, H, I, J, K, L)
where D: Const, E: Const, F: Const, G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(D, E, F, G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<D as Const>::Type, <E as Const>::Type, <F as Const>::Type, <G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<E, F, G, H, I, J, K, L> Const for (E, F, G, H, I, J, K, L)
where E: Const, F: Const, G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(E, F, G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<E as Const>::Type, <F as Const>::Type, <G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<F, G, H, I, J, K, L> Const for (F, G, H, I, J, K, L)
where F: Const, G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(F, G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<F as Const>::Type, <G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<G, H, I, J, K, L> Const for (G, H, I, J, K, L)
where G: Const, H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(G, H, I, J, K, L) as Const>::Type

Source§

type Type = (<G as Const>::Type, <H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<H, I, J, K, L> Const for (H, I, J, K, L)
where H: Const, I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(H, I, J, K, L) as Const>::Type

Source§

type Type = (<H as Const>::Type, <I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<I, J, K, L> Const for (I, J, K, L)
where I: Const, J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(I, J, K, L) as Const>::Type

Source§

type Type = (<I as Const>::Type, <J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<J, K, L> Const for (J, K, L)
where J: Const, K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(J, K, L) as Const>::Type

Source§

type Type = (<J as Const>::Type, <K as Const>::Type, <L as Const>::Type)

Source§

impl<K, L> Const for (K, L)
where K: Const, L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(K, L) as Const>::Type

Source§

type Type = (<K as Const>::Type, <L as Const>::Type)

Source§

impl<L> Const for (L,)
where L: Const,

Tuples of Const evaluate to a tuple of the values

Source§

const VALUE: <(L,) as Const>::Type

Source§

type Type = (<L as Const>::Type,)

Implementors§

Source§

impl<C> Const for IntoInit<C>
where C: Const,

Source§

impl<C> Const for IntoSome<C>
where C: Const,

Source§

const VALUE: <IntoSome<C> as Const>::Type

Source§

type Type = Option<<C as Const>::Type>

Source§

impl<T> Const for UninitOf<T>

Source§

impl<T> Const for DefaultOf<T>
where T: DefaultConst,

Source§

const VALUE: <DefaultOf<T> as Const>::Type = T::DEFAULT

Source§

type Type = T