Skip to main content

ConstDefault

Trait ConstDefault 

Source
pub trait ConstDefault: Sized {
    const DEFAULT: Self;
}
Expand description

Implements a compilation time default value for the implemented type.

§Note

Unlike the Default trait implementation the DEFAULT of implementations of this trait can be used in constant evaluation contexts.

§Example

const VEC: Vec<u8> = <Vec<u8> as ConstDefault>::DEFAULT;

The above code works while the below code does not:

const VEC: Vec<u8> = <Vec<u8> as Default>::default();

Required Associated Constants§

Source

const DEFAULT: Self

The constant default value.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ConstDefault for &&str

Source§

impl ConstDefault for &bool

Source§

impl ConstDefault for &char

Source§

impl ConstDefault for &f32

Source§

impl ConstDefault for &f64

Source§

impl ConstDefault for &i8

Source§

impl ConstDefault for &i16

Source§

impl ConstDefault for &i32

Source§

impl ConstDefault for &i64

Source§

impl ConstDefault for &i128

Source§

impl ConstDefault for &isize

Source§

impl ConstDefault for &str

Source§

const DEFAULT: &str = ""

Source§

impl ConstDefault for &u8

Source§

impl ConstDefault for &u16

Source§

impl ConstDefault for &u32

Source§

impl ConstDefault for &u64

Source§

impl ConstDefault for &u128

Source§

impl ConstDefault for &()

Source§

impl ConstDefault for &usize

Source§

impl ConstDefault for bool

Source§

const DEFAULT: bool = false

Source§

impl ConstDefault for char

Source§

const DEFAULT: char = '\x00'

Source§

impl ConstDefault for f32

Source§

const DEFAULT: f32 = 0.0

Source§

impl ConstDefault for f64

Source§

const DEFAULT: f64 = 0.0

Source§

impl ConstDefault for i8

Source§

const DEFAULT: i8 = 0

Source§

impl ConstDefault for i16

Source§

const DEFAULT: i16 = 0

Source§

impl ConstDefault for i32

Source§

const DEFAULT: i32 = 0

Source§

impl ConstDefault for i64

Source§

const DEFAULT: i64 = 0

Source§

impl ConstDefault for i128

Source§

impl ConstDefault for isize

Source§

impl ConstDefault for u8

Source§

const DEFAULT: u8 = 0

Source§

impl ConstDefault for u16

Source§

const DEFAULT: u16 = 0

Source§

impl ConstDefault for u32

Source§

const DEFAULT: u32 = 0

Source§

impl ConstDefault for u64

Source§

const DEFAULT: u64 = 0

Source§

impl ConstDefault for u128

Source§

impl ConstDefault for ()

Source§

const DEFAULT: () = ()

Source§

impl ConstDefault for usize

Source§

impl<'a, T> ConstDefault for &'a [T]
where T: 'a,

Source§

const DEFAULT: &'a [T]

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<E, F, G, H, I, J, K, L> ConstDefault for (E, F, G, H, I, J, K, L)

Source§

impl<F, G, H, I, J, K, L> ConstDefault for (F, G, H, I, J, K, L)

Source§

impl<G, H, I, J, K, L> ConstDefault for (G, H, I, J, K, L)

Source§

impl<H, I, J, K, L> ConstDefault for (H, I, J, K, L)

Source§

impl<I, J, K, L> ConstDefault for (I, J, K, L)

Source§

impl<J, K, L> ConstDefault for (J, K, L)

Source§

impl<K, L> ConstDefault for (K, L)

Source§

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

Source§

impl<T> ConstDefault for *const T

Source§

impl<T> ConstDefault for *mut T

Source§

impl<T, const N: usize> ConstDefault for [T; N]
where T: ConstDefault,

Implementors§

Source§

impl ConstDefault for PhantomPinned

Source§

impl ConstDefault for Atomic<bool>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<i8>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<i16>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<i32>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<i64>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<isize>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<u8>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<u16>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<u32>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<u64>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Atomic<usize>

Available on crate feature enable-atomics only.
Source§

impl ConstDefault for Duration

Source§

impl ConstDefault for FaceId

Source§

impl ConstDefault for PieceSpecialProperties

Source§

impl<T> ConstDefault for Option<T>

Source§

const DEFAULT: Option<T> = None

Source§

impl<T> ConstDefault for Cell<T>
where T: ConstDefault,

Source§

impl<T> ConstDefault for RefCell<T>
where T: ConstDefault,

Source§

impl<T> ConstDefault for UnsafeCell<T>
where T: ConstDefault,

Source§

impl<T> ConstDefault for Atomic<*mut T>

Available on crate feature enable-atomics only.
Source§

impl<T> ConstDefault for Empty<T>

Source§

impl<T> ConstDefault for ManuallyDrop<T>
where T: ConstDefault,

Source§

impl<T> ConstDefault for PhantomData<T>
where T: ?Sized,

Source§

const DEFAULT: PhantomData<T> = Self

Source§

impl<T> ConstDefault for Wrapping<T>
where T: ConstDefault,

Source§

impl<T> ConstDefault for MaybeUninit<T>
where T: ConstDefault,