Proffer

CircleCI crates.io License

Coverage Status

API Documentation

Code generation for Rust

Namely useful for generating source code from other data such as JSON

Example

See the documentation for more examples

```rust use proffer::*; let ipl = Impl::new("That") .addgeneric(Generic::new("T").addtraitbounds(vec!["ToString"]).toowned()) .addfunction( Function::new("foo") .setispub(true) .addparameter(Parameter::new("bar1", "T")) .addparameter(Parameter::new("bar2", "S")) .setreturnty("T") .addgeneric(Generic::new("S")) .setbody("bar") .toowned() ).to_owned();

let expected = r#" impl That where T: ToString, { pub fn foo(bar1: T, bar2: S) -> T where S: , { bar } } "#;

let srccode = ipl.generate(); println!("{}", &srccode);

asserteq!( normwhitespace(expected), normwhitespace(&srccode) ) ```