Trait std::default::Default  
            
                [−]
            
        [src]
pub trait Default {
    fn default() -> Self;
}A trait that types which have a useful default value should implement.
A struct can derive default implementations of Default for basic types using
#[derive(Default)].
Examples
fn main() { #[derive(Default)] struct SomeOptions { foo: i32, bar: f32, } }#[derive(Default)] struct SomeOptions { foo: i32, bar: f32, }
Required Methods
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.
Examples
Using built-in default values:
fn main() { let i: i8 = Default::default(); let (x, y): (Option<String>, f64) = Default::default(); let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default(); }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:
fn main() { enum Kind { A, B, C, } impl Default for Kind { fn default() -> Kind { Kind::A } } }enum Kind { A, B, C, } impl Default for Kind { fn default() -> Kind { Kind::A } }
Implementors
- impl Default for ()
- impl Default for bool
- impl Default for char
- impl Default for usize
- impl Default for u8
- impl Default for u16
- impl Default for u32
- impl Default for u64
- impl Default for isize
- impl Default for i8
- impl Default for i16
- impl Default for i32
- impl Default for i64
- impl Default for f32
- impl Default for f64
- impl<T> Default for [T; 32] where T: Default
- impl<T> Default for [T; 31] where T: Default
- impl<T> Default for [T; 30] where T: Default
- impl<T> Default for [T; 29] where T: Default
- impl<T> Default for [T; 28] where T: Default
- impl<T> Default for [T; 27] where T: Default
- impl<T> Default for [T; 26] where T: Default
- impl<T> Default for [T; 25] where T: Default
- impl<T> Default for [T; 24] where T: Default
- impl<T> Default for [T; 23] where T: Default
- impl<T> Default for [T; 22] where T: Default
- impl<T> Default for [T; 21] where T: Default
- impl<T> Default for [T; 20] where T: Default
- impl<T> Default for [T; 19] where T: Default
- impl<T> Default for [T; 18] where T: Default
- impl<T> Default for [T; 17] where T: Default
- impl<T> Default for [T; 16] where T: Default
- impl<T> Default for [T; 15] where T: Default
- impl<T> Default for [T; 14] where T: Default
- impl<T> Default for [T; 13] where T: Default
- impl<T> Default for [T; 12] where T: Default
- impl<T> Default for [T; 11] where T: Default
- impl<T> Default for [T; 10] where T: Default
- impl<T> Default for [T; 9] where T: Default
- impl<T> Default for [T; 8] where T: Default
- impl<T> Default for [T; 7] where T: Default
- impl<T> Default for [T; 6] where T: Default
- impl<T> Default for [T; 5] where T: Default
- impl<T> Default for [T; 4] where T: Default
- impl<T> Default for [T; 3] where T: Default
- impl<T> Default for [T; 2] where T: Default
- impl<T> Default for [T; 1] where T: Default
- impl<T> Default for [T; 0]
- impl Default for AtomicBool
- impl Default for AtomicIsize
- impl Default for AtomicUsize
- impl<T> Default for AtomicPtr<T>
- impl<T> Default for Cell<T> where T: Copy + Default
- impl<T> Default for RefCell<T> where T: Default
- impl<T> Default for Empty<T>
- impl<T> Default for Option<T>
- impl<'a, T> Default for &'a [T]
- impl<'a> Default for &'a str
- impl Default for SipHasher
- impl<A> Default for (A,) where A: Default
- impl<A, B> Default for (A, B) where A: Default, B: Default
- impl<A, B, C> Default for (A, B, C) where C: Default, A: Default, B: Default
- impl<A, B, C, D> Default for (A, B, C, D) where D: Default, A: Default, C: Default, B: Default
- impl<A, B, C, D, E> Default for (A, B, C, D, E) where A: Default, E: Default, D: Default, B: Default, C: Default
- impl<A, B, C, D, E, F> Default for (A, B, C, D, E, F) where E: Default, B: Default, D: Default, F: Default, A: Default, C: Default
- impl<A, B, C, D, E, F, G> Default for (A, B, C, D, E, F, G) where E: Default, G: Default, C: Default, B: Default, A: Default, F: Default, D: Default
- impl<A, B, C, D, E, F, G, H> Default for (A, B, C, D, E, F, G, H) where C: Default, A: Default, B: Default, D: Default, G: Default, H: Default, E: Default, F: Default
- impl<A, B, C, D, E, F, G, H, I> Default for (A, B, C, D, E, F, G, H, I) where I: Default, E: Default, B: Default, C: Default, G: Default, D: Default, F: Default, A: Default, H: Default
- impl<A, B, C, D, E, F, G, H, I, J> Default for (A, B, C, D, E, F, G, H, I, J) where I: Default, D: Default, H: Default, E: Default, C: Default, G: Default, A: Default, J: Default, B: Default, F: Default
- 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 C: Default, I: Default, E: Default, A: Default, D: Default, F: Default, H: Default, J: Default, B: Default, G: Default, K: Default
- 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 F: Default, G: Default, B: Default, C: Default, I: Default, A: Default, L: Default, K: Default, H: Default, D: Default, E: Default, J: Default
- impl<T> Default for Box<T> where T: Default
- impl<T> Default for Box<[T]>
- impl<T> Default for Arc<T> where T: Default
- impl<T> Default for Rc<T> where T: Default
- impl<T> Default for BinaryHeap<T> where T: Ord
- impl<K, V> Default for BTreeMap<K, V> where K: Ord
- impl<T> Default for BTreeSet<T> where T: Ord
- impl<T> Default for LinkedList<T>
- impl Default for String
- impl<T> Default for Vec<T>
- impl<T> Default for VecDeque<T>
- impl<K, V, S> Default for HashMap<K, V, S> where K: Eq + Hash, S: HashState + Default
- impl Default for RandomState
- impl<T, S> Default for HashSet<T, S> where T: Eq + Hash, S: HashState + Default
- impl<H> Default for DefaultState<H>
- impl Default for ReseedWithDefault
