2 个不稳定版本
0.2.0 | 2023年9月21日 |
---|---|
0.1.0 | 2023年7月16日 |
#1753 in 过程宏
135KB
4.5K SLoC
syn_builder
为 syn
结构体和枚举提供构建函数,以简化Rust代码的生成。
注意:仅使用构建方法创建 syn 结构体 - 没有中间结构体来管理。
使用方法
- 将以下内容添加到您的 Cargo.toml 文件中
[dependencies]
syn_builder = "0.2.0"
- 导入构建函数并创建 syn 对象
use proc_macro2::TokenStream;
use quote::ToTokens;
use syn_builder::*;
fn main() {
//generate code using the builder api
let code = item_enum("my_enum").variants([
variant("A").fields(
fields_unamed([field(type_path("A")), field(type_path("B"))]),
),
variant("B"),
variant("C").fields(
fields_named([
field(type_path("A")).ident("other"),
field(type_path("B")).ident("one"),
]),
),
]);
let mut token_stream = TokenStream::new();
code.to_tokens(&mut token_stream);
println!("{token_stream}");
}
替代方案
- quote - 通过编写Rust代码和使用变量插值生成 syn 结构体
依赖关系
~255–680KB
~16K SLoC