#effect #block #unsafe #indentation #proc-macro

block_effects

一个用于链式块效果的宏

2个版本

0.1.1 2020年9月8日
0.1.0 2020年9月8日

20 in #indentation

MIT许可证

7KB
74

block_effects

Rust过程宏,用于链式块效果。

使用block_effects,可以通过block!宏来链式使用不同的块效果。

这个想法是由mcy提出的。

block!宏用于标记具有链式块效果的块。

以下块效果可以链式使用:unsafeasyncifmatchloopwhilefor。此外,if letwhile 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)
} };

无运行时依赖