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 derived, it will use the default value for each field's type. ## enumsWhen 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