[ | $($args:ident),* | $($block:tt)*] => {
| $($args),* | $($block)*
};
}
и код к нему
fn main() {
let enc = &test! {
|a| {
println!("1");
}
} as &'static dyn FnMut(usize);
}
код работающий, но если сделать код || БЕЗ аргументов. то он ругается на отсутствующий rules.
Я это решал описывая другое подправило с дублирующим кодом без аргументов, но разве это не должно изначально работать ведь правило со звездой??
Play: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f3c1cd76d4aca9f2e661eb16a9a9715d (с кодом без входных аргументов)
А почему для блока не используешь :block?
|| распарсился как 1 токен (логическое или), а не два: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=df155c997fc2692b2c586b385b7982ba
Обсуждают сегодня