Macro aoko::struct_default [−][src]
macro_rules! struct_default {
($vis : vis struct $s_name : ident ;) => { ... };
($(#[$attr : meta]) * $vis : vis struct $name : ident
$(< $($generic : tt), * >) ?
{ $($field_vis : vis $field : ident : $type : ty = $val : expr), * $(,) ? }
$($tail : tt) *) => { ... };
() => { ... };
}
Expand description
Struct::default()
: assigning user-defined values to fields directly.
Principles
Text replacement, automatic function generation.
Examples
use aoko::{struct_default, assert_eqs};
struct_default!(
#[derive(Debug)]
pub struct A<'a> {
foo: u8 = 233,
pub bar: &'a str = "abc",
}
struct B {}
struct C;
);
assert_eqs!(
233, A::default().foo;
"abc", A::default().bar;
"A { foo: 233, bar: \"abc\" }", format!("{:?}", A::default());
);