1 unstable release

0.1.4 Jan 19, 2021

#2962 in Rust patterns

31 downloads per month
Used in 2 crates (via nwn-rs-codegen)

MIT license

57KB
1.5K SLoC

Codegen-rs

Provides an builder API to assist in generating Rust code.

Build Status

More information about this crate can be found in the crate documentation

Installation

To use codegen-rs, first add this to your Cargo.toml:

[dependencies]
codegen-rs = "0.1.4"

Next, add this to your crate:

extern crate codegen_rs;

Usage

  1. Create a Scope instance.
  2. Use the builder API to add elements to the scope.
  3. Call Scope::to_string() to get the generated code.

For example:

use codegen_rs::Scope;

let mut scope = Scope::new();

scope.new_struct("Foo")
    .derive("Debug")
    .field("one", "usize")
    .field("two", "String");

println!("{}", scope.to_string());

Non-goals

codegen-rs will not attempt to perform anything beyond basic formatting. For improved formatting, the generated code can be passed to rustfmt.

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in codegen-rs by you, shall be licensed as MIT, without any additional terms or conditions.

Dependencies

~1MB
~16K SLoC