3个版本
0.1.3 | 2021年8月15日 |
---|---|
0.1.2 | 2021年8月14日 |
0.1.1 |
|
0.1.0 | 2021年8月14日 |
#1785 in 进程宏
10KB
196 行
for_ch
for_ch
命名为 "for_each", "for_chain"(甚至 "4ch"),该crate提供了一个宏来扁平化嵌套的for循环和if-let。
示例
for_ch! {
for x in 0..10; // forall x in 0..10,
// you can add a label before `for`
for y in x..10, for _ in 0..5; // forall y in x..x+5,
// zipping
if let Some(z) = foo(x, y).await?; // exists z. Some(z) = foo(x, y).await?
// if let guard
if x - y < z; // satisfies x - y < z
// guard
println!("x = {}, y = {}, z = {}", x, y, z);
}
将会展开为
for x in 0..10 {
for y in (x..10).zip(0..5) {
if let Some(z) = foo(x, y).await? {
if x - y < z {
println!("x = {}, y = {}, z = {}", x, y, z);
}
}
}
}
依赖
~1.5MB
~35K SLoC