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);