pub trait Default { fn default() -> Self; }
A trait for giving a type a useful default value.
Sometimes, you want to fall back to some kind of default value, and don't particularly care what it is. This comes up often with struct
s that define a set of options:
How can we define some default values? You can use Default
:
#[derive(Default)] struct SomeOptions { foo: i32, bar: f32, } fn main() { let options: SomeOptions = Default::default(); }
Now, you get all of the default values. Rust implements Default
for various primitives types.
If you want to override a particular option, but still retain the other defaults:
This trait can be used with #[derive]
if all of the type's fields implement Default
. When derive
d, it will use the default value for each field's type.
Default
?Provides an implementation for the default()
method that returns the value of your type that should be the default:
fn default() -> Self
Returns the "default value" for a type.
Default values are often some kind of initial value, identity value, or anything else that may make sense as a default.
Using built-in default values:
let i: i8 = Default::default(); let (x, y): (Option<String>, f64) = Default::default(); let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();
Making your own:
impl<K, V, S> Default for HashMap<K, V, S> where
S: BuildHasher + Default,
fn default() -> HashMap<K, V, S>
Creates an empty HashMap<K, V, S>
, with the Default
value for the hasher.
impl<T, S> Default for HashSet<T, S> where
S: BuildHasher + Default,
T: Eq + Hash,
fn default() -> HashSet<T, S>
Creates an empty HashSet<T, S>
with the Default
value for the hasher.
impl Default for bool
[src]
impl Default for char
[src]
impl Default for f32
[src]
impl Default for f64
[src]
impl Default for i128
[src]
impl Default for i16
[src]
impl Default for i32
[src]
impl Default for i64
[src]
impl Default for i8
[src]
impl Default for isize
[src]
impl Default for u128
[src]
impl Default for u16
[src]
impl Default for u32
[src]
impl Default for u64
[src]
impl Default for u8
[src]
impl Default for ()
[src]
impl Default for usize
[src]
impl Default for Global
[src]
impl Default for System
[src]
impl Default for Box<str>
[src]
fn default() -> Box<str>
[src]
impl<I> Iterator for Box<I> where I: Iterator + ?Sized, type Item = <I as Iterator>::Item; impl<F> Future for Box<F> where F: Unpin + Future + ?Sized, type Output = <F as Future>::Output; impl<R: Read + ?Sized> Read for Box<R> impl<W: Write + ?Sized> Write for Box<W>
impl Default for Box<CStr>
[src]
fn default() -> Box<CStr>
[src]
impl<I> Iterator for Box<I> where I: Iterator + ?Sized, type Item = <I as Iterator>::Item; impl<F> Future for Box<F> where F: Unpin + Future + ?Sized, type Output = <F as Future>::Output; impl<R: Read + ?Sized> Read for Box<R> impl<W: Write + ?Sized> Write for Box<W>
impl Default for Box<OsStr>
[src]
fn default() -> Box<OsStr>
[src]
impl<I> Iterator for Box<I> where I: Iterator + ?Sized, type Item = <I as Iterator>::Item; impl<F> Future for Box<F> where F: Unpin + Future + ?Sized, type Output = <F as Future>::Output; impl<R: Read + ?Sized> Read for Box<R> impl<W: Write + ?Sized> Write for Box<W>
impl Default for DefaultHasher
[src]
fn default() -> DefaultHasher
[src]
Creates a new DefaultHasher
using new
. See its documentation for more.
impl Default for RandomState
[src]
fn default() -> RandomState
[src]
Constructs a new RandomState
.
impl Default for CString
[src]
impl Default for OsString
[src]
impl Default for Error
[src]
impl Default for SipHasher
[src]
impl Default for PathBuf
[src]
impl Default for String
[src]
impl Default for AtomicBool
[src]
fn default() -> AtomicBool
[src]
Creates an AtomicBool
initialized to false
.
impl Default for AtomicI16
[src]
impl Default for AtomicI32
[src]
impl Default for AtomicI64
[src]
impl Default for AtomicI8
[src]
impl Default for AtomicIsize
[src]
fn default() -> AtomicIsize
[src]
impl Default for AtomicU16
[src]
impl Default for AtomicU32
[src]
impl Default for AtomicU64
[src]
impl Default for AtomicU8
[src]
impl Default for AtomicUsize
[src]
fn default() -> AtomicUsize
[src]
impl Default for Condvar
[src]
impl Default for Duration
[src]
impl<'_> Default for &'_ str
[src]
impl<'_> Default for &'_ CStr
[src]
impl<'_> Default for &'_ OsStr
[src]
impl<'_> Default for &'_ mut str
[src]
impl<'_, B> Default for Cow<'_, B> where
B: ToOwned + ?Sized,
<B as ToOwned>::Owned: Default,
[src]
fn default() -> Cow<'_, B>
[src]
Creates an owned Cow<'a, B> with the default value for the contained owned value.
impl<'_, T> Default for &'_ [T]
[src]
impl<'_, T> Default for &'_ mut [T]
[src]
fn default() -> &'_ mut [T]
[src]
Creates a mutable empty slice.
impl<A> Default for (A,) where
A: Default,
[src]
impl<A, B> Default for (A, B) where
A: Default,
B: Default,
[src]
impl<A, B, C> Default for (A, B, C) where
A: Default,
B: Default,
C: Default,
[src]
impl<A, B, C, D> Default for (A, B, C, D) where
A: Default,
B: Default,
C: Default,
D: Default,
[src]
impl<A, B, C, D, E> Default for (A, B, C, D, E) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
[src]
impl<A, B, C, D, E, F> Default for (A, B, C, D, E, F) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
[src]
impl<A, B, C, D, E, F, G> Default for (A, B, C, D, E, F, G) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
[src]
impl<A, B, C, D, E, F, G, H> Default for (A, B, C, D, E, F, G, H) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
[src]
impl<A, B, C, D, E, F, G, H, I> Default for (A, B, C, D, E, F, G, H, I) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
[src]
impl<A, B, C, D, E, F, G, H, I, J> Default for (A, B, C, D, E, F, G, H, I, J) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
J: Default,
[src]
impl<A, B, C, D, E, F, G, H, I, J, K> Default for (A, B, C, D, E, F, G, H, I, J, K) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
J: Default,
K: Default,
[src]
impl<A, B, C, D, E, F, G, H, I, J, K, L> Default for (A, B, C, D, E, F, G, H, I, J, K, L) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
J: Default,
K: Default,
L: Default,
[src]
impl<H> Default for BuildHasherDefault<H>
[src]
fn default() -> BuildHasherDefault<H>
[src]
impl<K, V> Default for BTreeMap<K, V> where
K: Ord,
[src]
impl<K, V, S> Default for std::collections::HashMap<K, V, S> where
K: Eq + Hash,
S: BuildHasher + Default,
[src]
fn default() -> HashMap<K, V, S>
[src]
Creates an empty HashMap<K, V, S>
, with the Default
value for the hasher.
impl<T> Default for Option<T>
[src]
impl<T> Default for [T; 0]
[src]
impl<T> Default for [T; 1] where
T: Default,
[src]
impl<T> Default for [T; 2] where
T: Default,
[src]
impl<T> Default for [T; 3] where
T: Default,
[src]
impl<T> Default for [T; 4] where
T: Default,
[src]
impl<T> Default for [T; 5] where
T: Default,
[src]
impl<T> Default for [T; 6] where
T: Default,
[src]
impl<T> Default for [T; 7] where
T: Default,
[src]
impl<T> Default for [T; 8] where
T: Default,
[src]
impl<T> Default for [T; 9] where
T: Default,
[src]
impl<T> Default for [T; 10] where
T: Default,
[src]
impl<T> Default for [T; 11] where
T: Default,
[src]
impl<T> Default for [T; 12] where
T: Default,
[src]
impl<T> Default for [T; 13] where
T: Default,
[src]
impl<T> Default for [T; 14] where
T: Default,
[src]
impl<T> Default for [T; 15] where
T: Default,
[src]
impl<T> Default for [T; 16] where
T: Default,
[src]
impl<T> Default for [T; 17] where
T: Default,
[src]
impl<T> Default for [T; 18] where
T: Default,
[src]
impl<T> Default for [T; 19] where
T: Default,
[src]
impl<T> Default for [T; 20] where
T: Default,
[src]
impl<T> Default for [T; 21] where
T: Default,
[src]
impl<T> Default for [T; 22] where
T: Default,
[src]
impl<T> Default for [T; 23] where
T: Default,
[src]
impl<T> Default for [T; 24] where
T: Default,
[src]
impl<T> Default for [T; 25] where
T: Default,
[src]
impl<T> Default for [T; 26] where
T: Default,
[src]
impl<T> Default for [T; 27] where
T: Default,
[src]
impl<T> Default for [T; 28] where
T: Default,
[src]
impl<T> Default for [T; 29] where
T: Default,
[src]
impl<T> Default for [T; 30] where
T: Default,
[src]
impl<T> Default for [T; 31] where
T: Default,
[src]
impl<T> Default for [T; 32] where
T: Default,
[src]
impl<T> Default for Box<[T]>
[src]
fn default() -> Box<[T]>
[src]
impl<I> Iterator for Box<I> where I: Iterator + ?Sized, type Item = <I as Iterator>::Item; impl<F> Future for Box<F> where F: Unpin + Future + ?Sized, type Output = <F as Future>::Output; impl<R: Read + ?Sized> Read for Box<R> impl<W: Write + ?Sized> Write for Box<W>
impl<T> Default for Box<T> where
T: Default,
[src]
fn default() -> Box<T>
[src]
impl<I> Iterator for Box<I> where I: Iterator + ?Sized, type Item = <I as Iterator>::Item; impl<F> Future for Box<F> where F: Unpin + Future + ?Sized, type Output = <F as Future>::Output; impl<R: Read + ?Sized> Read for Box<R> impl<W: Write + ?Sized> Write for Box<W>
Creates a Box<T>
, with the Default
value for T.
impl<T> Default for Cell<T> where
T: Default,
[src]
impl<T> Default for RefCell<T> where
T: Default,
[src]
impl<T> Default for UnsafeCell<T> where
T: Default,
[src]
fn default() -> UnsafeCell<T>
[src]
Creates an UnsafeCell
, with the Default
value for T.
impl<T> Default for Reverse<T> where
T: Default,
[src]
impl<T> Default for BinaryHeap<T> where
T: Ord,
[src]
fn default() -> BinaryHeap<T>
[src]
Creates an empty BinaryHeap<T>
.
impl<T> Default for BTreeSet<T> where
T: Ord,
[src]
impl<T> Default for LinkedList<T>
[src]
fn default() -> LinkedList<T>
[src]
Creates an empty LinkedList<T>
.
impl<T> Default for VecDeque<T>
[src]
impl<T> Default for Empty<T>
[src]
fn default() -> Empty<T>
[src]
impl<T> Iterator for Empty<T> type Item = T;
impl<T> Default for PhantomData<T> where
T: ?Sized,
[src]
fn default() -> PhantomData<T>
[src]
impl<T> Default for ManuallyDrop<T> where
T: Default + ?Sized,
[src]
fn default() -> ManuallyDrop<T>
[src]
impl<T> Default for Wrapping<T> where
T: Default,
[src]
impl<T> Default for Rc<T> where
T: Default,
[src]
impl<T> Default for std::rc::Weak<T>
[src]
impl<T> Default for AtomicPtr<T>
[src]
impl<T> Default for Arc<T> where
T: Default,
[src]
impl<T> Default for std::sync::Weak<T>
[src]
impl<T> Default for Vec<T>
[src]
impl<T, S> Default for std::collections::HashSet<T, S> where
T: Eq + Hash,
S: BuildHasher + Default,
[src]
fn default() -> HashSet<T, S>
[src]
Creates an empty HashSet<T, S>
with the Default
value for the hasher.
impl<T: Default> Default for Cursor<T>
[src]
fn default() -> Cursor<T>
[src]
impl<T> Read for Cursor<T> where T: AsRef<[u8]>, impl<'_> Write for Cursor<&'_ mut [u8]> impl<'_> Write for Cursor<&'_ mut Vec<u8>> impl Write for Cursor<Vec<u8>> impl Write for Cursor<Box<[u8]>>
impl<T: Default> Default for RwLock<T>
[src]
impl<T: ?Sized + Default> Default for Mutex<T>
[src]
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/default/trait.Default.html