macro_rules! with_params_readonly {
(
get $name:ident = $($key:ident).+ or $default:expr;
$($body:tt)*
) => { ... };
(
set $($key:ident).+ = $val:expr;
$($body:tt)*
) => { ... };
($($body:tt)*) => { ... };
}