#switch #macro #control-flow

easy_switch

用于传统 C 风格 switch 语句的宏

2 个不稳定版本

0.2.0 2023 年 3 月 27 日
0.1.0 2023 年 3 月 24 日

#1432 in Rust 模式


projectable 中使用

MIT 许可证

7KB
60

easy_switch

Build status Crates.io Docs Status

一个用于模拟 C 风格语言的 switch 语句的宏。摆脱那些冗长的 if/else if 语句!

语法

使用 switch! 宏开始!它看起来像一个 match 表达式,但当然并不实际进行模式匹配。

use easy_switch::switch;

#[derive(PartialEq, Eq)]
struct Example {
    field: i32,
    field2: i32,
}

impl Example {
    pub fn new(field2: i32) -> Self {
        Self {
            field: 10,
            field2,
        }
    }
}

let switchable = Example::new(10);
let result = switch! { switchable;
    Example::new(50), 50 == 50 => 50,
    Example::new(20), 50 == 50, 20 == 20 => 20,
    _ => 0,
};
assert_eq!(0, result);

有关此宏的更多信息,请查看 文档

许可证

此软件包采用 MIT 许可证。

无运行时依赖