1.0.0[][src]Trait uefi_std::default::Default

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 structs that define a set of options:

struct SomeOptions {
    foo: i32,
    bar: f32,
}

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:

fn main() {
    let options = SomeOptions { foo: 42, ..Default::default() };
}

Derivable

This trait can be used with #[derive] if all of the type's fields implement Default. When derived, it will use the default value for each field's type.

How can I implement Default?

Provides an implementation for the default() method that returns the value of your type that should be the default:

enum Kind {
    A,
    B,
    C,
}

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

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() -> Self { Kind::A }
}
Loading content...

Implementations on Foreign Types

impl<T> Default for Wrapping<T> where
    T: Default
[src]

impl Default for AtomicU32[src]

impl Default for AtomicU16[src]

impl<T> Default for AtomicPtr<T>[src]

fn default() -> AtomicPtr<T>[src]

Creates a null AtomicPtr<T>.

impl Default for AtomicUsize[src]

impl Default for AtomicU64[src]

impl Default for AtomicBool[src]

fn default() -> AtomicBool[src]

Creates an AtomicBool initialized to false.

impl Default for AtomicU8[src]

impl Default for AtomicI128[src]

impl Default for AtomicIsize[src]

impl Default for AtomicU128[src]

impl Default for AtomicI64[src]

impl Default for AtomicI32[src]

impl Default for AtomicI8[src]

impl Default for AtomicI16[src]

impl Default for Duration[src]

impl Default for Global[src]

impl<T> Default for Arc<T> where
    T: Default
[src]

fn default() -> Arc<T>[src]

Creates a new Arc<T>, with the Default value for T.

Examples

use std::sync::Arc;

let x: Arc<i32> = Default::default();
assert_eq!(*x, 0);

impl<T> Default for Weak<T>[src]

fn default() -> Weak<T>[src]

Constructs a new Weak<T>, without allocating memory. Calling upgrade on the return value always gives None.

Examples

use std::sync::Weak;

let empty: Weak<i64> = Default::default();
assert!(empty.upgrade().is_none());

impl Default for MemoryDescriptor

impl Default for Time

impl Default for VirtualAddress

impl Default for TimeCapabilities

impl Default for PhysicalAddress

impl Default for TextInputKey

impl Default for SimplePointerState

impl Default for FileInfo

Loading content...

Implementors

impl Default for ()[src]

fn default()[src]

Returns the default value of ()

impl Default for Box<str>[src]

impl Default for Error[src]

impl Default for SipHasher[src]

impl Default for String[src]

fn default() -> String[src]

Creates an empty String.

impl Default for bool[src]

fn default() -> bool[src]

Returns the default value of false

impl Default for char[src]

fn default() -> char[src]

Returns the default value of \x00

impl Default for f32[src]

fn default() -> f32[src]

Returns the default value of 0.0

impl Default for f64[src]

fn default() -> f64[src]

Returns the default value of 0.0

impl Default for i8[src]

fn default() -> i8[src]

Returns the default value of 0

impl Default for i16[src]

fn default() -> i16[src]

Returns the default value of 0

impl Default for i32[src]

fn default() -> i32[src]

Returns the default value of 0

impl Default for i64[src]

fn default() -> i64[src]

Returns the default value of 0

impl Default for i128[src]

fn default() -> i128[src]

Returns the default value of 0

impl Default for isize[src]

fn default() -> isize[src]

Returns the default value of 0

impl Default for u8[src]

fn default() -> u8[src]

Returns the default value of 0

impl Default for u16[src]

fn default() -> u16[src]

Returns the default value of 0

impl Default for u32[src]

fn default() -> u32[src]

Returns the default value of 0

impl Default for u64[src]

fn default() -> u64[src]

Returns the default value of 0

impl Default for u128[src]

fn default() -> u128[src]

Returns the default value of 0

impl Default for usize[src]

fn default() -> usize[src]

Returns the default value of 0

impl<'_> Default for &'_ mut str[src]

fn default() -> &'_ mut str[src]

Creates an empty mutable str

impl<'_> Default for &'_ str[src]

fn default() -> &'_ str[src]

Creates an empty str

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]

fn default() -> &'_ [T][src]

Creates an empty slice.

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]

impl<K, V> Default for BTreeMap<K, V> where
    K: Ord
[src]

fn default() -> BTreeMap<K, V>[src]

Creates an empty BTreeMap<K, V>.

impl<T> Default for Option<T>[src]

fn default() -> Option<T>[src]

Returns None.

impl<T> Default for Box<T> where
    T: Default
[src]

Important traits for Box<I>
fn default() -> Box<T>[src]

Creates a Box<T>, with the Default value for T.

impl<T> Default for Box<[T]>[src]

impl<T> Default for Cell<T> where
    T: Default
[src]

fn default() -> Cell<T>[src]

Creates a Cell<T>, with the Default value for T.

impl<T> Default for RefCell<T> where
    T: Default
[src]

fn default() -> RefCell<T>[src]

Creates a RefCell<T>, with the Default value for T.

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]

fn default() -> BTreeSet<T>[src]

Makes an empty BTreeSet<T> with a reasonable choice of B.

impl<T> Default for LinkedList<T>[src]

fn default() -> LinkedList<T>[src]

Creates an empty LinkedList<T>.

impl<T> Default for VecDeque<T>[src]

fn default() -> VecDeque<T>[src]

Creates an empty VecDeque<T>.

impl<T> Default for Empty<T>[src]

impl<T> Default for PhantomData<T> where
    T: ?Sized
[src]

impl<T> Default for ManuallyDrop<T> where
    T: Default + ?Sized
[src]

impl<T> Default for Rc<T> where
    T: Default
[src]

fn default() -> Rc<T>[src]

Creates a new Rc<T>, with the Default value for T.

Examples

use std::rc::Rc;

let x: Rc<i32> = Default::default();
assert_eq!(*x, 0);

impl<T> Default for uefi_std::rc::Weak<T>[src]

fn default() -> Weak<T>[src]

Constructs a new Weak<T>, allocating memory for T without initializing it. Calling upgrade on the return value always gives None.

Examples

use std::rc::Weak;

let empty: Weak<i64> = Default::default();
assert!(empty.upgrade().is_none());

impl<T> Default for Vec<T>[src]

fn default() -> Vec<T>[src]

Creates an empty Vec<T>.

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]

Loading content...