2个版本
0.1.1 | 2020年9月8日 |
---|---|
0.1.0 | 2020年9月8日 |
20 in #indentation
7KB
74 行
block_effects
Rust过程宏,用于链式块效果。
使用block_effects
,可以通过block!
宏来链式使用不同的块效果。
这个想法是由mcy提出的。
block!
宏用于标记具有链式块效果的块。
以下块效果可以链式使用:unsafe
、async
、if
、match
、loop
、while
和 for
。此外,if let
和 while let
也是可能的。
目标
该库的主要目的是最小化嵌套块的缩进。遗憾的是,过程宏也会增加缩进。因此,为了充分利用这一点,不应缩进block!
宏,甚至可以将宏花括号放在与块相同的行上。
示例
use block_effects::block;
block!{
if let Some(_) = Some(0) if let Some(_) = Some(0) {
assert!(true);
}
}
let _future = block!{ unsafe async for i in 0..3 match i {
0..=2 => assert!(true),
_ => assert!(false)
} };