2个版本
0.1.1 | 2020年4月21日 |
---|---|
0.1.0 | 2020年4月21日 |
#7 在 #unroll
7KB
141 代码行
proc_unroll
是一个用于在函数内部展开循环的进程宏。它支持以下形式的循环
forpatinint..int
forpatin &[elem,elem]
示例
使用范围的简单示例
#[proc_unroll::unroll]
fn unrolled() -> Vec<u32> {
let mut vec = Vec::new();
for x in 10..20 {
vec.push(x);
}
vec
}
assert_eq!(unrolled(), (10..20).collect::<Vec<_>>());
您也可以在 const fn
中使用它
#[proc_unroll::unroll]
const fn inner() -> i64 {
let mut total = 0;
for x in &[5, 15, 30] {
total += *x;
}
total
}
assert_eq!(inner(), 50);
依赖项
~1.5MB
~36K SLoC