1 个不稳定版本
0.1.1 | 2023年9月14日 |
---|---|
0.1.0 |
|
0.0.0 |
|
#700 在 过程宏
8KB
119 行
match_any_trait
提供了一种过程宏,即任何特质的匹配表达式
安装
cargo add match_any_trait
示例
use std::any::Any;
use match_any_trait::match_any_trait;
#[derive(Debug)]
struct MyStruct {
x: u32,
}
#[derive(Debug)]
struct MyNum {
y: u32,
}
#[derive(Debug)]
struct MyTuple;
#[derive(Debug)]
struct MyTemplate;
fn main() {
// let num = MyStruct{
// x: 1,
// };
// let num = MyNum{
// y: 1,
// };
// let num = MyTuple;
let num = MyTemplate;
let num = &num as &dyn Any;
match_any_trait! {
match num {
MyStruct(s) | MyNum(s) => println!("num is a {:?}", s),
MyTuple => println!("num is a MyTuple")
MyTemplate => println!("num is a MyTemplate"),
_ => println!("num is unknown"),
}
}
}
依赖
~280–730KB
~18K SLoC