1个不稳定版本
0.1.1 | 2024年2月18日 |
---|---|
0.1.0 |
|
#773 in 过程宏
每月55次下载
13KB
335 代码行
lower
将表达式降低到其“解构”形式。
例如
a * b + c
=> (a.mul(b)).add(c)
注意它非常广泛,因此
lower::math! { fn main() -> u8 {
const X: u8 = 31 * 2;
return 2 * X + 2;
} }
展开为
fn main() -> u8 {
const X: u8 = 31.mul(2);
return (2.mul(X)).add(2);
}
应该适用于大多数表达式。
为什么
好吧,你看,我创建了一个用于数组的crate。然后,我添加了add/mul/…,当我不得不手动调用它们时,我就感到厌烦。现在,你可以做一些很酷的事情,比如
lower::math! { 2 * ([5, 2] + 5) }
。
lib.rs
:
一个小型的宏crate。
提供了一个方便的宏,用于将a + b
转换为a.add(b)
,这在您无法轻松重载Add
特质时非常有用。
依赖项
~295–750KB
~18K SLoC