#downcast #matching #match #macro

无 std match-downcast

一套类似于 Scala 的 match 或 Haskell 的 case 的向下转型匹配 Rust 宏

2 个版本

使用旧 Rust 2015

0.1.2 2017 年 9 月 11 日
0.1.1 2017 年 9 月 10 日

#23#downcast


2 个crate中使用

无许可证

8KB
160

类似于 Scala 的 match 或 Haskell 的 case 的向下转型匹配宏集。在actor模型等场景中非常有用。

let a = Box::new(5_i32) as Box<Any>;
let b = match_downcast!(a, {
    x: i32 => x
    y: f32 => x as i32,
    z: () => -1,
    _ => panic!()
});

assert_eq!(b, 5);

无运行时依赖