genco 0.5.0

Genco, the even simpler code generator for Rust.
Documentation
use genco::fmt;
use genco::prelude::*;

fn main() -> anyhow::Result<()> {
    let sqrt = dart::imported("dart:math", "sqrt");

    let tokens = quote! {
        class Position {
            int x;
            int y;

            double distanceTo(Position other) {
                var dx = other.x - x;
                var dy = other.y - y;
                return #sqrt(dx * dx + dy * dy);
            }
        }

        main() {
            var origin = new Position()
                ..x = 0
                ..y = 0;

            var p = new Position()
                ..x = -5
                ..y = 6;

            print(origin.distanceTo(p));
        }
    };

    let stdout = std::io::stdout();
    let mut w = fmt::IoWriter::new(stdout.lock());

    let fmt = fmt::Config::from_lang::<Dart>();
    let config = dart::Config::default();

    tokens.format_file(&mut w.as_formatter(fmt), &config)?;
    Ok(())
}