wasmtime_environ::__core::prelude::rust_2024

Trait Default

source
pub trait Default: Sized {
    // Required method
    fn default() -> Self;
}
๐Ÿ”ฌThis is a nightly-only experimental API. (prelude_2024)
Expand description

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.

ยงenums

When using #[derive(Default)] on an enum, you need to choose which unit variant will be default. You do this by placing the #[default] attribute on the variant.

#[derive(Default)]
enum Kind {
    #[default]
    A,
    B,
    C,
}

You cannot use the #[default] attribute on non-unit or non-exhaustive variants.

The #[default] attribute was stabilized in Rust 1.62.0.

ยงHow can I implement Default?

Provide 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ยง

source

fn default() -> Self

๐Ÿ”ฌThis is a nightly-only experimental API. (prelude_2024)

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 }
}

Object Safetyยง

This trait is not object safe.

Implementorsยง

1.0.0 ยท sourceยง

impl Default for &str

1.10.0 ยท sourceยง

impl Default for &CStr

1.28.0 ยท sourceยง

impl Default for &mut str

sourceยง

impl Default for MemoryInitialization

1.0.0 ยท sourceยง

impl Default for AsciiChar

sourceยง

impl Default for Prefilter

sourceยง

impl Default for Endianness

1.0.0 ยท sourceยง

impl Default for bool

1.0.0 ยท sourceยง

impl Default for char

1.0.0 ยท sourceยง

impl Default for f16

1.0.0 ยท sourceยง

impl Default for f32

1.0.0 ยท sourceยง

impl Default for f64

1.0.0 ยท sourceยง

impl Default for f128

1.0.0 ยท sourceยง

impl Default for i8

1.0.0 ยท sourceยง

impl Default for i16

1.0.0 ยท sourceยง

impl Default for i32

1.0.0 ยท sourceยง

impl Default for i64

1.0.0 ยท sourceยง

impl Default for i128

1.0.0 ยท sourceยง

impl Default for isize

1.0.0 ยท sourceยง

impl Default for u8

1.0.0 ยท sourceยง

impl Default for u16

1.0.0 ยท sourceยง

impl Default for u32

1.0.0 ยท sourceยง

impl Default for u64

1.0.0 ยท sourceยง

impl Default for u128

1.0.0 ยท sourceยง

impl Default for ()

1.0.0 ยท sourceยง

impl Default for usize

1.17.0 ยท sourceยง

impl Default for Box<str>

1.17.0 ยท sourceยง

impl Default for Box<CStr>

1.0.0 ยท sourceยง

impl Default for String

sourceยง

impl Default for FilePos

sourceยง

impl Default for Module

sourceยง

impl Default for ModuleTypes

sourceยง

impl Default for TableInitialization

sourceยง

impl Default for VMSharedTypeIndex

sourceยง

impl Default for WasmFunctionInfo

sourceยง

impl Default for RandomState

sourceยง

impl Default for FuncValidatorAllocations

sourceยง

impl Default for Parser

sourceยง

impl Default for SegmentFlags

sourceยง

impl Default for SymbolFlags

sourceยง

impl Default for Validator

sourceยง

impl Default for ValidatorId

sourceยง

impl Default for WasmFeatures

sourceยง

impl Default for Remapping

1.0.0 ยท sourceยง

impl Default for Error

1.0.0 ยท sourceยง

impl Default for SipHasher

1.33.0 ยท sourceยง

impl Default for PhantomPinned

sourceยง

impl Default for Alignment

Returns Alignment::MIN, which is valid for any type.

1.0.0 ยท sourceยง

impl Default for RangeFull

1.0.0 ยท sourceยง

impl Default for AtomicBool

1.34.0 ยท sourceยง

impl Default for AtomicI8

1.34.0 ยท sourceยง

impl Default for AtomicI16

1.34.0 ยท sourceยง

impl Default for AtomicI32

1.34.0 ยท sourceยง

impl Default for AtomicI64

1.0.0 ยท sourceยง

impl Default for AtomicIsize

1.34.0 ยท sourceยง

impl Default for AtomicU8

1.34.0 ยท sourceยง

impl Default for AtomicU16

1.34.0 ยท sourceยง

impl Default for AtomicU32

1.34.0 ยท sourceยง

impl Default for AtomicU64

1.0.0 ยท sourceยง

impl Default for AtomicUsize

1.3.0 ยท sourceยง

impl Default for Duration

sourceยง

impl Default for Global

1.10.0 ยท sourceยง

impl Default for CString

1.80.0 ยท sourceยง

impl Default for Rc<str>

1.80.0 ยท sourceยง

impl Default for Rc<CStr>

1.80.0 ยท sourceยง

impl Default for Arc<str>

1.80.0 ยท sourceยง

impl Default for Arc<CStr>

sourceยง

impl Default for AHasher

Provides a default Hasher with fixed keys. This is typically used in conjunction with BuildHasherDefault to create AHashers in order to hash the keys of the map.

Generally it is preferable to use RandomState instead, so that different hashmaps will have different keys. However if fixed keys are desirable this may be used instead.

ยงExample

use std::hash::BuildHasherDefault;
use ahash::{AHasher, RandomState};
use std::collections::HashMap;

let mut map: HashMap<i32, i32, BuildHasherDefault<AHasher>> = HashMap::default();
map.insert(12, 34);
sourceยง

impl Default for FinderBuilder

sourceยง

impl Default for BigEndian

sourceยง

impl Default for LittleEndian

sourceยง

impl Default for VersionIndex

sourceยง

impl Default for OnceBool

sourceยง

impl Default for OnceNonZeroUsize

sourceยง

impl Default for BuildMetadata

sourceยง

impl Default for Prerelease

sourceยง

impl Default for VersionReq

The default VersionReq is the same as VersionReq::STAR.

sourceยง

impl Default for IgnoredAny

sourceยง

impl Default for DefaultToHost

sourceยง

impl Default for DefaultToUnknown

1.70.0 ยท sourceยง

impl<'a, K, V> Default for alloc::collections::btree::map::Iter<'a, K, V>
where K: 'a, V: 'a,

1.70.0 ยท sourceยง

impl<'a, K, V> Default for alloc::collections::btree::map::IterMut<'a, K, V>
where K: 'a, V: 'a,

sourceยง

impl<'a, T> Default for OnceRef<'a, T>

sourceยง

impl<'data> Default for Version<'data>

sourceยง

impl<'data> Default for ObjectMap<'data>

sourceยง

impl<'data> Default for ObjectMapEntry<'data>

sourceยง

impl<'data> Default for Bytes<'data>

sourceยง

impl<'data, Elf> Default for VersionTable<'data, Elf>
where Elf: FileHeader,

sourceยง

impl<'data, Elf, R> Default for SectionTable<'data, Elf, R>
where Elf: Default + FileHeader, R: Default + ReadRef<'data>, <Elf as FileHeader>::SectionHeader: Default,

sourceยง

impl<'data, Elf, R> Default for SymbolTable<'data, Elf, R>
where Elf: FileHeader, R: ReadRef<'data>,

sourceยง

impl<'data, R> Default for StringTable<'data, R>
where R: ReadRef<'data>,

sourceยง

impl<A> Default for SmallVec<A>
where A: Array,

1.70.0 ยท sourceยง

impl<A, B> Default for Chain<A, B>
where A: Default, B: Default,

1.11.0 ยท sourceยง

impl<B> Default for Cow<'_, B>
where B: ToOwned + ?Sized, <B as ToOwned>::Owned: Default,

sourceยง

impl<E> Default for CompressionHeader32<E>
where E: Default + Endian,

sourceยง

impl<E> Default for CompressionHeader64<E>
where E: Default + Endian,

sourceยง

impl<E> Default for Sym32<E>
where E: Default + Endian,

sourceยง

impl<E> Default for Sym64<E>
where E: Default + Endian,

sourceยง

impl<E> Default for I16<E>
where E: Default + Endian,

sourceยง

impl<E> Default for I32<E>
where E: Default + Endian,

sourceยง

impl<E> Default for I64<E>
where E: Default + Endian,

sourceยง

impl<E> Default for U16<E>
where E: Default + Endian,

sourceยง

impl<E> Default for U32<E>
where E: Default + Endian,

sourceยง

impl<E> Default for U64<E>
where E: Default + Endian,

sourceยง

impl<E> Default for I16Bytes<E>
where E: Default + Endian,

sourceยง

impl<E> Default for I32Bytes<E>
where E: Default + Endian,

sourceยง

impl<E> Default for I64Bytes<E>
where E: Default + Endian,

sourceยง

impl<E> Default for U16Bytes<E>
where E: Default + Endian,

sourceยง

impl<E> Default for U32Bytes<E>
where E: Default + Endian,

sourceยง

impl<E> Default for U64Bytes<E>
where E: Default + Endian,

1.7.0 ยท sourceยง

impl<H> Default for BuildHasherDefault<H>

1.70.0 ยท sourceยง

impl<I> Default for Cloned<I>
where I: Default,

1.70.0 ยท sourceยง

impl<I> Default for Copied<I>
where I: Default,

1.70.0 ยท sourceยง

impl<I> Default for Enumerate<I>
where I: Default,

1.70.0 ยท sourceยง

impl<I> Default for Flatten<I>
where I: Default + Iterator, <I as Iterator>::Item: IntoIterator,

1.70.0 ยท sourceยง

impl<I> Default for Fuse<I>
where I: Default,

1.70.0 ยท sourceยง

impl<I> Default for Rev<I>
where I: Default,

1.0.0 ยท sourceยง

impl<Idx> Default for wasmtime_environ::__core::range::legacy::Range<Idx>
where Idx: Default,

sourceยง

impl<Idx> Default for wasmtime_environ::__core::range::Range<Idx>
where Idx: Default,

sourceยง

impl<K> Default for EntitySet<K>
where K: EntityRef,

sourceยง

impl<K, V> Default for &indexmap::map::slice::Slice<K, V>

sourceยง

impl<K, V> Default for &mut indexmap::map::slice::Slice<K, V>

sourceยง

impl<K, V> Default for Box<Slice<K, V>>

sourceยง

impl<K, V> Default for PrimaryMap<K, V>
where K: EntityRef,

sourceยง

impl<K, V> Default for SecondaryMap<K, V>
where K: EntityRef, V: Clone + Default,

1.0.0 ยท sourceยง

impl<K, V> Default for BTreeMap<K, V>

1.70.0 ยท sourceยง

impl<K, V> Default for alloc::collections::btree::map::Keys<'_, K, V>

1.70.0 ยท sourceยง

impl<K, V> Default for alloc::collections::btree::map::Range<'_, K, V>

1.82.0 ยท sourceยง

impl<K, V> Default for RangeMut<'_, K, V>

1.70.0 ยท sourceยง

impl<K, V> Default for alloc::collections::btree::map::Values<'_, K, V>

1.82.0 ยท sourceยง

impl<K, V> Default for alloc::collections::btree::map::ValuesMut<'_, K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::IntoIter<K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::IntoKeys<K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::IntoValues<K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::Iter<'_, K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::IterMut<'_, K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::Keys<'_, K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::Values<'_, K, V>

sourceยง

impl<K, V> Default for indexmap::map::iter::ValuesMut<'_, K, V>

1.70.0 ยท sourceยง

impl<K, V, A> Default for alloc::collections::btree::map::IntoIter<K, V, A>
where A: Allocator + Default + Clone,

1.70.0 ยท sourceยง

impl<K, V, A> Default for alloc::collections::btree::map::IntoKeys<K, V, A>
where A: Allocator + Default + Clone,

1.70.0 ยท sourceยง

impl<K, V, A> Default for alloc::collections::btree::map::IntoValues<K, V, A>
where A: Allocator + Default + Clone,

sourceยง

impl<K, V, S> Default for IndexMap<K, V, S>
where S: Default,

sourceยง

impl<K, V, S, A> Default for HashMap<K, V, S, A>
where S: Default, A: Default + Allocator,

1.0.0 ยท sourceยง

impl<T> Default for &[T]

sourceยง

impl<T> Default for &indexmap::set::slice::Slice<T>

1.5.0 ยท sourceยง

impl<T> Default for &mut [T]

1.0.0 ยท sourceยง

impl<T> Default for Option<T>

1.4.0 ยท sourceยง

impl<T> Default for [T; 0]

1.4.0 ยท sourceยง

impl<T> Default for [T; 1]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 2]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 3]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 4]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 5]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 6]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 7]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 8]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 9]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 10]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 11]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 12]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 13]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 14]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 15]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 16]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 17]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 18]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 19]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 20]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 21]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 22]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 23]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 24]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 25]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 26]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 27]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 28]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 29]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 30]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 31]
where T: Default,

1.4.0 ยท sourceยง

impl<T> Default for [T; 32]
where T: Default,

1.0.0 ยท sourceยง

impl<T> Default for (Tโ‚, Tโ‚‚, โ€ฆ, Tโ‚™)
where T: Default,

This trait is implemented for tuples up to twelve items long.

sourceยง

impl<T> Default for PackedOption<T>
where T: ReservedValue,

1.0.0 ยท sourceยง

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

sourceยง

impl<T> Default for Box<Slice<T>>

1.0.0 ยท sourceยง

impl<T> Default for Box<T>
where T: Default,

1.0.0 ยท sourceยง

impl<T> Default for Vec<T>

sourceยง

impl<T> Default for EntityList<T>

Create an empty list.

sourceยง

impl<T> Default for ListPool<T>

1.0.0 ยท sourceยง

impl<T> Default for Cell<T>
where T: Default,

1.80.0 ยท sourceยง

impl<T> Default for LazyCell<T>
where T: Default,

1.70.0 ยท sourceยง

impl<T> Default for wasmtime_environ::__core::cell::OnceCell<T>

1.0.0 ยท sourceยง

impl<T> Default for RefCell<T>
where T: Default,

sourceยง

impl<T> Default for SyncUnsafeCell<T>
where T: Default,

1.10.0 ยท sourceยง

impl<T> Default for UnsafeCell<T>
where T: Default,

1.19.0 ยท sourceยง

impl<T> Default for Reverse<T>
where T: Default,

1.2.0 ยท sourceยง

impl<T> Default for Empty<T>

1.0.0 ยท sourceยง

impl<T> Default for PhantomData<T>
where T: ?Sized,

1.20.0 ยท sourceยง

impl<T> Default for ManuallyDrop<T>
where T: Default + ?Sized,

1.74.0 ยท sourceยง

impl<T> Default for Saturating<T>
where T: Default,

1.0.0 ยท sourceยง

impl<T> Default for Wrapping<T>
where T: Default,

1.62.0 ยท sourceยง

impl<T> Default for AssertUnwindSafe<T>
where T: Default,

1.70.0 ยท sourceยง

impl<T> Default for wasmtime_environ::__core::slice::Iter<'_, T>

1.70.0 ยท sourceยง

impl<T> Default for wasmtime_environ::__core::slice::IterMut<'_, T>

1.0.0 ยท sourceยง

impl<T> Default for AtomicPtr<T>

sourceยง

impl<T> Default for Exclusive<T>
where T: Default + ?Sized,

1.0.0 ยท sourceยง

impl<T> Default for BinaryHeap<T>
where T: Ord,

1.70.0 ยท sourceยง

impl<T> Default for alloc::collections::binary_heap::IntoIter<T>

1.82.0 ยท sourceยง

impl<T> Default for alloc::collections::binary_heap::Iter<'_, T>

1.0.0 ยท sourceยง

impl<T> Default for BTreeSet<T>

1.70.0 ยท sourceยง

impl<T> Default for alloc::collections::btree::set::Iter<'_, T>

1.70.0 ยท sourceยง

impl<T> Default for alloc::collections::btree::set::Range<'_, T>

1.70.0 ยท sourceยง

impl<T> Default for alloc::collections::linked_list::IntoIter<T>

1.70.0 ยท sourceยง

impl<T> Default for alloc::collections::linked_list::Iter<'_, T>

1.70.0 ยท sourceยง

impl<T> Default for alloc::collections::linked_list::IterMut<'_, T>

1.0.0 ยท sourceยง

impl<T> Default for LinkedList<T>

1.82.0 ยท sourceยง

impl<T> Default for alloc::collections::vec_deque::iter::Iter<'_, T>

1.82.0 ยท sourceยง

impl<T> Default for alloc::collections::vec_deque::iter_mut::IterMut<'_, T>

1.0.0 ยท sourceยง

impl<T> Default for VecDeque<T>

1.80.0 ยท sourceยง

impl<T> Default for Rc<[T]>

1.0.0 ยท sourceยง

impl<T> Default for Rc<T>
where T: Default,

1.10.0 ยท sourceยง

impl<T> Default for alloc::rc::Weak<T>

1.80.0 ยท sourceยง

impl<T> Default for Arc<[T]>

1.0.0 ยท sourceยง

impl<T> Default for Arc<T>
where T: Default,

1.10.0 ยท sourceยง

impl<T> Default for alloc::sync::Weak<T>

sourceยง

impl<T> Default for indexmap::set::iter::IntoIter<T>

sourceยง

impl<T> Default for indexmap::set::iter::Iter<'_, T>

sourceยง

impl<T> Default for SymbolMap<T>

sourceยง

impl<T> Default for OnceBox<T>

sourceยง

impl<T> Default for Lazy<T>
where T: Default,

sourceยง

impl<T> Default for once_cell::unsync::OnceCell<T>

sourceยง

impl<T> Default for Unalign<T>
where T: Default,

1.70.0 ยท sourceยง

impl<T, A> Default for wasmtime_environ::prelude::vec::IntoIter<T, A>
where A: Allocator + Default,

1.70.0 ยท sourceยง

impl<T, A> Default for alloc::collections::btree::set::IntoIter<T, A>
where A: Allocator + Default + Clone,

sourceยง

impl<T, A> Default for RawTable<T, A>
where A: Allocator + Default,

sourceยง

impl<T, A> Default for HashTable<T, A>
where A: Allocator + Default,

sourceยง

impl<T, S> Default for IndexSet<T, S>
where S: Default,

sourceยง

impl<T, S, A> Default for HashSet<T, S, A>
where S: Default, A: Default + Allocator,

sourceยง

impl<T, const N: usize> Default for Mask<T, N>

sourceยง

impl<T, const N: usize> Default for Simd<T, N>