[−][src]Crate proffer
Proffer is a code generation library to create code from other data structures such as JSON or any other reason where generating raw source code is required.
Example
use proffer::*; let ipl = Impl::new("That") .add_generic(Generic::new("T").add_trait_bounds(vec!["ToString"]).to_owned()) .add_function( Function::new("foo") .set_is_pub(true) .add_parameter(Parameter::new("bar1", "T")) .add_parameter(Parameter::new("bar2", "S")) .set_return_ty("T") .add_generic(Generic::new("S")) .set_body("bar1") .to_owned() ).to_owned(); let expected = r#" impl<T> That<T> where T: ToString, { pub fn foo<S>(bar1: T, bar2: S) -> T where S: , { bar1 } } "#; let src_code = ipl.generate(); println!("{}", &src_code); assert_eq!( norm_whitespace(expected), norm_whitespace(&src_code) )
Re-exports
pub use gen::*; |
pub use traits::*; |
Modules
gen | Re-exports from the |
traits | Trait(s) specific to code generation objects within this crate. |
Functions
norm_whitespace | Helper function throughout tests and documentation for comparing expected source code generated. |