Default
A trait for giving a type a useful default value.Cairo implements Default
for various primitives types. # DerivableThis trait can be used with #[derive]
if all of the type's fields implement Default
. When derive
d, it will use the default value for each field's type. ## enum
sWhen 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 can even use the #[default]
attribute even on non-unit variants, provided that the associated type implements Default
. # How can I implement Default
?Provide an implementation for the default()
method that returns the value of your type that should be the default:
[derive(Copy, Drop)]
enum Kind {
A,
B,
C,
}
impl DefaultKind of Default<Kind> {
fn default() -> Kind { Kind::A }
}
Examples#[derive(Drop, Default, PartialEq)](derive(Drop, Default, PartialEq)) struct SomeOptions {foo: i32,bar: u32,}assert!(Default::default() == SomeOptions { foo: 0, bar: 0 });
Fully qualified path: core::traits::Default
pub trait Default<T>
Trait functions
default
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
let i: i8 = Default::default();
let (x, y): (Option<ByteArray>, u64) = Default::default();
let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();
Fully qualified path: core::traits::Default::default
fn default() -> T