# Trait bitflags::__core::default::Default [−] [src]

    pub trait Default {
        fn default() -> Self;
    }

A trait for giving a type a useful default value.

A struct can derive default implementations of `Default` for basic types using `#[derive(Default)]`.

# Examples

    #[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:

    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:

    enum Kind {
        A,
        B,
        C,
    }

    impl Default for Kind {
        fn default() -> Kind { Kind::A }
    }

## Implementors

- `impl<K, V, S> Default for HashMap<K, V, S> where K: Eq + Hash, S: BuildHasher + Default`
- `impl Default for RandomState`
- `impl<T, S> Default for HashSet<T, S> where S: BuildHasher + Default, T: Eq + Hash`
- `impl<T> Default for LinkedList<T>`
- `impl<T> Default for VecDeque<T>`
- `impl<T> Default for BinaryHeap<T> where T: Ord`
- `impl Default for OsString`
- `impl<'a> Default for &'a OsStr`
- `impl Default for Condvar`
- `impl<T> Default for Mutex<T> where T: Default + ?Sized`
- `impl<T> Default for RwLock<T> where T: Default`
- `impl Default for AtomicBool`
- `impl Default for AtomicIsize`
- `impl Default for AtomicUsize`
- `impl<T> Default for AtomicPtr<T>`
- `impl<T> Default for Vec<T>`
- `impl<T> Default for Empty<T>`
- `impl<T> Default for Box<T> where T: Default`
- `impl<T> Default for Box<[T]>`
- `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 PhantomData<T> where T: ?Sized`
- `impl Default for SipHasher`
- `impl<H> Default for BuildHasherDefault<H>`
- `impl<T> Default for Cell<T> where T: Copy + Default`
- `impl<T> Default for RefCell<T> where T: Default`
- `impl<T> Default for UnsafeCell<T> where T: Default`
- `impl<T> Default for Rc<T> where T: Default`
- `impl Default for String`
- `impl<T> Default for Option<T>`
- `impl<T> Default for Wrapping<T> where T: Default`
- `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<'a, T> Default for &'a [T]`
- `impl<'a, T> Default for &'a mut [T]`
- `impl<'a> Default for &'a str`
- `impl Default for Error`
- `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 B: Default, A: Default, C: 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, B: Default, C: Default, D: Default`
- `impl<A, B, C, D, E, F> Default for (A, B, C, D, E, F) where C: Default, A: Default, E: Default, F: Default, B: Default, D: Default`
- `impl<A, B, C, D, E, F, G> Default for (A, B, C, D, E, F, G) where C: Default, F: Default, B: Default, E: Default, D: Default, G: Default, A: Default`
- `impl<A, B, C, D, E, F, G, H> Default for (A, B, C, D, E, F, G, H) where A: Default, E: Default, F: Default, H: Default, B: Default, D: Default, C: Default, G: Default`
- `impl<A, B, C, D, E, F, G, H, I> Default for (A, B, C, D, E, F, G, H, I) where G: Default, F: Default, C: Default, H: Default, E: Default, A: Default, B: Default, D: Default, I: 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 A: Default, F: Default, H: Default, E: Default, D: Default, B: Default, I: Default, G: Default, J: Default, C: 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 E: Default, F: Default, I: Default, D: Default, C: Default, A: Default, B: Default, J: Default, K: Default, H: Default, G: 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 J: Default, I: Default, L: Default, D: Default, E: Default, C: Default, F: Default, G: Default, K: Default, B: Default, H: Default, A: Default`
- `impl<K, V> Default for BTreeMap<K, V> where K: Ord`
- `impl<T> Default for BTreeSet<T> where T: Ord`
- `impl<T> Default for Arc<T> where T: Default`
- `impl Default for ReseedWithDefault`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)