Trait scrypto::prelude::Default

1.0.0 · source ·
pub trait Default: Sized {
    // Required method
    fn default() -> Self;
}
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.

§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

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§

source§

impl Default for &str

1.10.0 · source§

impl Default for &CStr

1.9.0 · source§

impl Default for &OsStr

1.28.0 · source§

impl Default for &mut str

source§

impl Default for BlueprintType

source§

impl Default for FunctionAuth

source§

impl Default for MethodAuthTemplate

source§

impl Default for OwnerRole

source§

impl Default for WithdrawStrategy

source§

impl Default for Level

source§

impl Default for OuterObjectInfo

source§

impl Default for PackageRoyaltyConfig

source§

impl Default for bool

source§

impl Default for char

source§

impl Default for f32

source§

impl Default for f64

source§

impl Default for i8

source§

impl Default for i16

source§

impl Default for i32

source§

impl Default for i64

source§

impl Default for i128

source§

impl Default for isize

source§

impl Default for u8

source§

impl Default for u16

source§

impl Default for u32

source§

impl Default for u64

source§

impl Default for u128

source§

impl Default for ()

source§

impl Default for usize

source§

impl Default for GenericArgs

source§

impl Default for EpochChangeCondition

source§

impl Default for AuthConfig

source§

impl Default for BlueprintDefinitionInit

source§

impl Default for BlueprintVersion

source§

impl Default for PackageDefinition

source§

impl Default for StaticRoleDefinition

source§

impl Default for BurnRoles<Option<AccessRule>>

source§

impl Default for DepositRoles<Option<AccessRule>>

source§

impl Default for FreezeRoles<Option<AccessRule>>

source§

impl Default for FungibleResourceRoles

source§

impl Default for MintRoles<Option<AccessRule>>

source§

impl Default for NonFungibleDataUpdateRoles<Option<AccessRule>>

source§

impl Default for NonFungibleResourceRoles

source§

impl Default for RecallRoles<Option<AccessRule>>

source§

impl Default for RoleAssignmentInit

source§

impl Default for RoleList

source§

impl Default for VaultFrozenFlag

source§

impl Default for WithdrawRoles<Option<AccessRule>>

source§

impl Default for Decimal

source§

impl Default for I192

source§

impl Default for I256

source§

impl Default for I320

source§

impl Default for I384

source§

impl Default for I448

source§

impl Default for I512

source§

impl Default for I768

source§

impl Default for PreciseDecimal

source§

impl Default for U192

source§

impl Default for U256

source§

impl Default for U320

source§

impl Default for U384

source§

impl Default for U448

source§

impl Default for U512

source§

impl Default for U768

source§

impl Default for Metadata

source§

impl Default for Royalty

source§

impl Default for FungibleResourceType

§

impl Default for BlueprintEventSchemaInit

§

impl Default for BlueprintFunctionsSchemaInit

§

impl Default for BlueprintHooksInit

§

impl Default for BlueprintSchemaInit

§

impl Default for BlueprintStateSchemaInit

§

impl Default for BlueprintTypeSchemaInit

source§

impl Default for ComponentRoyaltyConfig

1.10.0 · source§

impl Default for CString

1.3.0 · source§

impl Default for Duration

1.9.0 · source§

impl Default for OsString

1.75.0 · source§

impl Default for FileTimes

source§

impl Default for std::io::util::Empty

source§

impl Default for Sink

1.17.0 · source§

impl Default for PathBuf

1.75.0 · source§

impl Default for ExitCode

The default value is ExitCode::SUCCESS

1.73.0 · source§

impl Default for ExitStatus

The default value is one which indicates successful completion.

source§

impl Default for CompressedEdwardsY

source§

impl Default for EdwardsPoint

source§

impl Default for MontgomeryPoint

source§

impl Default for CompressedRistretto

source§

impl Default for RistrettoPoint

source§

impl Default for Scalar

source§

impl Default for BigInt

source§

impl Default for BigUint

source§

impl Default for IgnoredAny

source§

impl Default for B0

source§

impl Default for B1

source§

impl Default for Z0

source§

impl Default for Equal

source§

impl Default for Greater

source§

impl Default for Less

source§

impl Default for UTerm

source§

impl Default for EntropyRng

source§

impl Default for ThreadRng

source§

impl Default for OsRng

source§

impl Default for scrypto::prelude::radix_engine_common::prelude::fmt::Error

source§

impl Default for Global

1.28.0 · source§

impl Default for System

1.13.0 · source§

impl Default for DefaultHasher

1.7.0 · source§

impl Default for RandomState

source§

impl Default for SipHasher

1.33.0 · source§

impl Default for PhantomPinned

source§

impl Default for RangeFull

source§

impl Default for Alignment

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

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

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

source§

impl Default for AtomicUsize

1.10.0 · source§

impl Default for Condvar

1.17.0 · source§

impl Default for Box<str>

1.17.0 · source§

impl Default for Box<CStr>

1.17.0 · source§

impl Default for Box<OsStr>

source§

impl Default for LengthValidation

source§

impl Default for String

§

impl Default for AlignedType

§

impl Default for BigEndian

§

impl Default for Builder

§

impl Default for Builder

§

impl Default for ByteClasses

§

impl Default for ClassBytesRange

§

impl Default for ClassUnicodeRange

§

impl Default for Config

§

impl Default for Config

§

impl Default for Config

§

impl Default for Config

§

impl Default for Eager

§

impl Default for Error

§

impl Default for ExtractKind

§

impl Default for Extractor

§

impl Default for GroupInfo

§

impl Default for InvalidBufferSize

§

impl Default for InvalidOutputSize

§

impl Default for InvalidOutputSize

§

impl Default for Keccak224Core

§

impl Default for Keccak256Core

§

impl Default for Keccak256FullCore

§

impl Default for Keccak384Core

§

impl Default for Keccak512Core

§

impl Default for Lazy

§

impl Default for LittleEndian

§

impl Default for LookMatcher

§

impl Default for LookSet

§

impl Default for LookSet

§

impl Default for MacError

§

impl Default for MatchKind

§

impl Default for ParserBuilder

§

impl Default for ParserBuilder

§

impl Default for PatternID

§

impl Default for PublicKey

§

impl Default for PublicKey

§

impl Default for PublicKey

§

impl Default for RecoverableSignature

§

impl Default for RegexSet

§

impl Default for RegexSet

§

impl Default for Secp256k1<All>

§

impl Default for SecretKey

§

impl Default for SecretKey

§

impl Default for Sha3_224Core

§

impl Default for Sha3_256Core

§

impl Default for Sha3_384Core

§

impl Default for Sha3_512Core

§

impl Default for Sha224

§

impl Default for Sha256

§

impl Default for Sha384

§

impl Default for Sha512

§

impl Default for Sha512Trunc224

§

impl Default for Sha512Trunc256

§

impl Default for Shake128Core

§

impl Default for Shake256Core

§

impl Default for SmallIndex

§

impl Default for StateID

§

impl Default for ThreadPool

Create a thread pool with one thread per CPU. On machines with hyperthreading, this will create one thread per hyperthread.

§

impl Default for TranslatorBuilder

§

impl Default for WhichCaptures

§

impl Default for blst_fp

§

impl Default for blst_fp2

§

impl Default for blst_fp6

§

impl Default for blst_fp12

§

impl Default for blst_fr

§

impl Default for blst_p1

§

impl Default for blst_p1_affine

§

impl Default for blst_p2

§

impl Default for blst_p2_affine

§

impl Default for blst_pairing

§

impl Default for blst_scalar

§

impl Default for blst_uniq

§

impl Default for u5

§

impl Default for vec128_storage

§

impl Default for vec256_storage

§

impl Default for vec512_storage

source§

impl<'a> Default for ManifestValueDisplayContext<'a>

source§

impl<'a> Default for ScryptoValueDisplayContext<'a>

1.70.0 · source§

impl<'a, K, V> Default for scrypto::prelude::radix_engine_common::prelude::btree_map::Iter<'a, K, V>
where K: 'a, V: 'a,

1.70.0 · source§

impl<'a, K, V> Default for scrypto::prelude::radix_engine_common::prelude::btree_map::IterMut<'a, K, V>
where K: 'a, V: 'a,

source§

impl<'m> Default for ArrayData<'m>

source§

impl<'m> Default for MapData<'m>

source§

impl<'s> Default for EnumVariantData<'s>

source§

impl<'s> Default for TupleData<'s>

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,

§

impl<BlockSize> Default for BlockBuffer<BlockSize>
where BlockSize: Default + ArrayLength<u8>,

§

impl<BlockSize, Kind> Default for BlockBuffer<BlockSize, Kind>
where BlockSize: ArrayLength<u8> + IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>, <BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero, Kind: BufferKind,

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,

source§

impl<Idx> Default for scrypto::prelude::radix_engine_common::prelude::rust::ops::Range<Idx>
where Idx: Default,

source§

impl<K, V> Default for &scrypto::prelude::radix_engine_common::prelude::indexmap::map::Slice<K, V>

source§

impl<K, V> Default for &mut scrypto::prelude::radix_engine_common::prelude::indexmap::map::Slice<K, V>

source§

impl<K, V> Default for KeyValueStoreInit<K, V>
where K: Hash + Eq + PartialEq,

1.70.0 · source§

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

1.70.0 · source§

impl<K, V> Default for scrypto::prelude::radix_engine_common::prelude::btree_map::Range<'_, K, V>

1.70.0 · source§

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

source§

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

source§

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

§

impl<K, V> Default for NonIterMap<K, V>
where K: Hash + Eq,

1.70.0 · source§

impl<K, V, A> Default for scrypto::prelude::radix_engine_common::prelude::btree_map::IntoIter<K, V, A>
where A: Allocator + Default + Clone,

1.70.0 · source§

impl<K, V, A> Default for IntoKeys<K, V, A>
where A: Allocator + Default + Clone,

1.70.0 · source§

impl<K, V, A> Default for IntoValues<K, V, A>
where A: Allocator + Default + Clone,

source§

impl<K, V, S> Default for scrypto::prelude::radix_engine_common::prelude::hash_map::ext_HashMap<K, V, S>
where S: Default,

source§

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

§

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

source§

impl<S> Default for VersionedSchema<S>
where S: CustomSchema,

source§

impl<S> Default for SchemaV1<S>
where S: CustomSchema,

source§

impl<T> Default for &[T]

source§

impl<T> Default for &scrypto::prelude::radix_engine_common::prelude::indexmap::set::Slice<T>

1.5.0 · source§

impl<T> Default for &mut [T]

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,

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 Vec<T>

source§

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

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.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.62.0 · source§

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

source§

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

1.70.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::btree_set::Iter<'_, T>

1.70.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::btree_set::Range<'_, T>

1.19.0 · source§

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

1.2.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::rust::iter::Empty<T>

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,

source§

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

1.10.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::rust::rc::Weak<T>

1.70.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::rust::slice::Iter<'_, T>

1.70.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::rust::slice::IterMut<'_, T>

source§

impl<T> Default for AtomicPtr<T>

source§

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

source§

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

source§

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

1.10.0 · source§

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

1.70.0 · source§

impl<T> Default for OnceLock<T>

1.10.0 · source§

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

1.10.0 · source§

impl<T> Default for scrypto::prelude::radix_engine_common::prelude::rust::sync::Weak<T>

source§

impl<T> Default for BTreeSet<T>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<T> Default for LinkedList<T>

source§

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

1.70.0 · source§

impl<T> Default for OnceCell<T>

source§

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

source§

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

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,

source§

impl<T> Default for VecDeque<T>

§

impl<T> Default for CoreWrapper<T>
where T: Default + BufferKindUser, <T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>> + Default, <<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero, <T as BufferKindUser>::BufferKind: Default,

§

impl<T> Default for XofReaderCoreWrapper<T>
where T: Default + XofReaderCore, <T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>> + Default, <<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,

1.70.0 · source§

impl<T, A> Default for scrypto::api::node_modules::metadata::vec::IntoIter<T, A>
where A: Allocator + Default,

1.70.0 · source§

impl<T, A> Default for scrypto::prelude::radix_engine_common::prelude::btree_set::IntoIter<T, A>
where A: Allocator + Default + Clone,

§

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

§

impl<T, N> Default for GenericArray<T, N>
where T: Default, N: ArrayLength<T>,

§

impl<T, OutSize, O> Default for CtVariableCoreWrapper<T, OutSize, O>
where T: VariableOutputCore, OutSize: ArrayLength<u8> + IsLessOrEqual<<T as OutputSizeUser>::OutputSize>, <OutSize as IsLessOrEqual<<T as OutputSizeUser>::OutputSize>>::Output: NonZero, <T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>, <<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,

source§

impl<T, S> Default for scrypto::prelude::radix_engine_common::prelude::hash_set::ext_HashSet<T, S>
where S: Default,

source§

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

§

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

source§

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

source§

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

source§

impl<U> Default for NInt<U>
where U: Default + Unsigned + NonZero,

source§

impl<U> Default for PInt<U>
where U: Default + Unsigned + NonZero,

source§

impl<U, B> Default for UInt<U, B>
where U: Default, B: Default,

§

impl<const N: usize> Default for BInt<N>

§

impl<const N: usize> Default for BIntD8<N>

§

impl<const N: usize> Default for BIntD16<N>

§

impl<const N: usize> Default for BIntD32<N>

§

impl<const N: usize> Default for BUint<N>

§

impl<const N: usize> Default for BUintD8<N>

§

impl<const N: usize> Default for BUintD16<N>

§

impl<const N: usize> Default for BUintD32<N>