macro_rules! quack {
(get_set $prop:ident ( $($code:tt)* ) for $Self:ty) => { ... };
(set $prop:ident ( self . $($code:tt)* ) for $Self:ty) => { ... };
(set $prop:ident ( self [ $($code:tt)* ] ) for $Self:ty) => { ... };
(get $prop:ident ( self . $($code:tt)* ) for $Self:ty) => { ... };
(get $prop:ident ( self [ $($code:tt)* ] ) for $Self:ty) => { ... };
(
for $Self:ty {
$($cmd:tt $get_set_prop:ident ( $($get_set:tt)* )),* $(,)?
}
) => { ... };
}
Helper macro for simple get/set properties.
This macro supports 4 different syntaxes:
- Get/set property e.g.
quack!{get_set X(self.x) for Foo}
- Get property e.g.
quack!{get X(self.x) for Foo}
- Set property e.g.
quack!{set X(self.x) for Foo}
- Multiple properties e.g.
quack!{for Foo {get X(self.x), get Y(self.y)}}