#rfc #chains #let #implemented #macro #go #2497

iff

一个宏,用于 if / if let 链,直到 [RFC 2497] 实现

1 个不稳定版本

0.1.0 2019 年 1 月 27 日

#15#chains

MIT/Apache

3KB

iff.rs

一个宏,用于 if / if let 链,直到 RFC 2497 实现。

用法

use iff::iff;

fn go(var: Option<Vec<i32>>) {
    print!("{:?}", var);
    iff! {
        let Some(x) = var,
        let [y, _] = &*x,
        *y == 0 => {
            print!(" => ok")
        }
    }
    println!("");
}

fn main() {
    go(None);
    go(Some(vec![]));
    go(Some(vec![0]));
    go(Some(vec![0, 1]));
    go(Some(vec![0, 1, 2]));
}

输出

None
Some([])
Some([0])
Some([0, 1]) => ok
Some([0, 1, 2])

无运行时依赖