Crates.io | rstgen |
lib.rs | rstgen |
version | 0.1.4 |
source | src |
created_at | 2022-03-08 12:10:32.541834 |
updated_at | 2022-05-04 10:45:51.335026 |
description | Even simpler code generation for Rust. |
homepage | https://github.com/sidneywang/rstbind |
repository | https://github.com/sidneywang/rstbind |
max_upload_size | |
id | 546250 |
size | 217,707 |
Because origin repo is completely changed, I rename it. It's origin name is GenCo
RsGen is an even simpler code generator for Rust, specifically written for use in reproto.
It does not deal with language-specific syntax, instead it can do some of the basic necessities through specialization.
This is an example building some JavaScript:
#[macro_use]
extern crate rsgen;
use rsgen::Quoted;
fn main() {
let mut file: Tokens<JavaScript> = Tokens::new();
file.push("function foo(v) {");
file.nested(toks!("return v + ", ", World".quoted(), ";"));
file.push("}");
file.push(toks!("foo(", "Hello".quoted(), ");"));
println!("{}", file.to_string().unwrap());
}
Running this example would print:
function foo(v) {
return v + ", World";
}
foo("Hello");
This section contains example code for some of the supported languages.
For more information, see docs.rs/genco.
Simple support for importing names.
#[macro_use]
extern crate rsgen;
fn main() {
use rsgen::dart::imported;
let m = imported("dart:math").alias("m");
let sqrt = m.name("sqrt");
let mut t = toks!();
t.push("void main() {");
t.nested({
let mut body = toks!();
body.push(toks!("print(", "The Square Root Is:".quoted(), " + ", sqrt, "(42));"));
body
});
t.push("}");
}