Proffer

CircleCI crates.io

License

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"])) .addfunction( Function::new("foo") .setispub(true) .addparameter(Parameter::new("bar1", "T")) .addparameter(Parameter::new("bar2", "S")) .setreturnty("T") .addgeneric(Generic::new("S")) .setbody("bar"), );

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!( normalizewhitespace(expected), normalizewhitespace(&srccode) ) ```