#[derive(Default)]
{
// Attributes available to this derive:
#[default]
}
Expand description
Implements Default for a struct, using Default::default() for each field
unless a #[default(...)] attribute provides a custom expression.
ยงExample
#[derive(mkutils_macros::Default)]
struct MyStruct {
name: String,
#[default(42)]
count: i32,
#[default(std::vec![1, 2, 3])]
items: Vec<i32>,
}
// adds
// impl Default for MyStruct {
// fn default() -> Self {
// Self {
// name: ::core::default::Default::default(),
// count: 42,
// items: std::vec![1, 2, 3],
// }
// }
// }
// as can be seen in
let default = MyStruct::default();
std::assert_eq!(default.name, "");
std::assert_eq!(default.count, 42);
std::assert_eq!(default.items, std::vec![1, 2, 3]);