genco 0.16.0

A whitespace-aware quasiquoter for beautiful code generation.
Documentation
use genco::fmt;
use genco::prelude::*;

fn main() -> anyhow::Result<()> {
    let car = &java::import("se.tedro", "Car");
    let list = &java::import("java.util", "List");
    let array_list = &java::import("java.util", "ArrayList");

    let tokens = quote! {
        public class HelloWorld {
            public static void main(String[] args) {
                #list<#car> cars = new #array_list<#car>();

                cars.add(new #car("Volvo"));
                cars.add(new #car("Audi"));

                for (#car car : cars) {
                    System.out.println(car);
                }
            }
        }
    };

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

    let fmt = fmt::Config::from_lang::<Java>().with_newline("\n\r");
    let config = java::Config::default().with_package("se.tedro");

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