2 个版本
0.1.1 | 2024 年 1 月 3 日 |
---|---|
0.1.0 | 2023 年 12 月 17 日 |
在 解析器实现 中排名第 2358
18KB
343 行
or_gen
Proc 宏文档
一个将返回多个类型的 if
或 match
表达式转换为 Or 类型的 proc 宏。
用法示例
对于 if
表达式
#![feature(proc_macro_hygiene)]
use or_rs_macros::or_gen;
use or_rs::enums::Or3;
#[or_gen]
// Add a type annotation explicitly
let s: Or3<i32, String, f32> = if true {
3
} else if false {
"hello".to_string()
} else {
3.0
};
对于 match
表达式
#![feature(proc_macro_hygiene)]
use or_rs_macros::or_gen;
use or_rs::enums::Or3;
#[or_gen]
// Add a type annotation explicitly
let s: Or3<i32, f32, String> = match 42 {
1 => 22,
10 => 3.2,
_ => "hello".to_string(),
};
函数定义
#[proc_macro_attribute]
pub fn or_gen(_attr: TokenStream, item: TokenStream) -> TokenStream {
parser::MacroParser::parse(item)
}
lib.rs
:
与 Or 类型一起使用的宏。
依赖
~0.3–11MB
~71K SLoC