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());
);