[−][src]Trait core_extensions::ConstDefault
A const equivalent of the Default
trait.
Example
Implementing ConstDefault
for a struct
// use core_extensions::const_default; // in newer versions of Rust. #[macro_use(const_default)] extern crate core_extensions; use core_extensions::ConstDefault; #[derive(Debug,PartialEq)] struct Point<T>{ x:T, y:T, } // `+ Copy` here is required for Rust 1.20 and 1.21, // and can be removed from Rust 1.22 onwards. impl<T> ConstDefault for Point<T> where T: ConstDefault + Copy { const DEFAULT: Self= Point{ x: T::DEFAULT, y: T::DEFAULT }; } assert_eq!( const_default!(Point<u8>), Point{x:0, y:0} ); assert_eq!( const_default!(Point<f32>), Point{x:0.0, y:0.0} ); assert_eq!( const_default!(Point<Option<()>>), Point{x:None, y:None} );
Associated Constants
const DEFAULT: Self
The default value for Self
.
Implementations on Foreign Types
impl<T> ConstDefault for [T; 0]
[src]
impl<T> ConstDefault for [T; 1] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 2] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 3] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 4] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 5] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 6] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 7] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 8] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 9] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 10] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 11] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 12] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 13] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 14] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 15] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 16] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 17] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 18] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 19] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 20] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 21] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 22] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 23] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 24] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 25] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 26] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 27] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 28] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 29] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 30] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 31] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl<T> ConstDefault for [T; 32] where
T: ConstDefault + Sized,
[src]
T: ConstDefault + Sized,
impl ConstDefault for ()
[src]
impl<A> ConstDefault for (A,) where
A: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
impl<A, B> ConstDefault for (A, B) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
impl<A, B, C> ConstDefault for (A, B, C) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
impl<A, B, C, D> ConstDefault for (A, B, C, D) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
impl<A, B, C, D, E> ConstDefault for (A, B, C, D, E) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
impl<A, B, C, D, E, F> ConstDefault for (A, B, C, D, E, F) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
impl<A, B, C, D, E, F, G> ConstDefault for (A, B, C, D, E, F, G) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H> ConstDefault for (A, B, C, D, E, F, G, H) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I> ConstDefault for (A, B, C, D, E, F, G, H, I) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I, J> ConstDefault for (A, B, C, D, E, F, G, H, I, J) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I, J, K> ConstDefault for (A, B, C, D, E, F, G, H, I, J, K) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
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) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M> ConstDefault for (A, B, C, D, E, F, G, H, I, J, K, L, M) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> ConstDefault for (A, B, C, D, E, F, G, H, I, J, K, L, M, N) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
N: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
N: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> ConstDefault for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
N: ConstDefault + Sized,
O: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
N: ConstDefault + Sized,
O: ConstDefault + Sized,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> ConstDefault for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) where
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
N: ConstDefault + Sized,
O: ConstDefault + Sized,
P: ConstDefault + Sized,
[src]
A: ConstDefault + Sized,
B: ConstDefault + Sized,
C: ConstDefault + Sized,
D: ConstDefault + Sized,
E: ConstDefault + Sized,
F: ConstDefault + Sized,
G: ConstDefault + Sized,
H: ConstDefault + Sized,
I: ConstDefault + Sized,
J: ConstDefault + Sized,
K: ConstDefault + Sized,
L: ConstDefault + Sized,
M: ConstDefault + Sized,
N: ConstDefault + Sized,
O: ConstDefault + Sized,
P: ConstDefault + Sized,