2 个版本

0.1.1 2024 年 1 月 3 日
0.1.0 2023 年 12 月 17 日

解析器实现 中排名第 2358

MIT 许可协议

18KB
343

or_gen Proc 宏文档

一个将返回多个类型的 ifmatch 表达式转换为 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