2 unstable releases
0.2.0 | Sep 21, 2023 |
---|---|
0.1.0 | Jul 16, 2023 |
#1951 in Procedural macros
135KB
4.5K
SLoC
Syn builder
Builder functions for syn
structures and enums to ease the generation of Rust code.
Note: only syn structures are creating using the builder methods - there no intermediate structs to manage.
Usage
- Add to your Cargo.toml file
[dependencies]
syn_builder = "0.2.0"
- Import builder functions and create syn objects
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}");
}
Alternatives
- quote - generate syn structs by writing Rust code and using variable interpolation
Dependencies
~250–690KB
~17K SLoC