Skip to content

Builder trait extensions for creating `syn` structures and enums for generating Rust code

License

Notifications You must be signed in to change notification settings

andrewlowndes/syn_builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  1. Add to your Cargo.toml file
[dependencies]
syn_builder = "0.2.0"
  1. 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

About

Builder trait extensions for creating `syn` structures and enums for generating Rust code

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages