ruast 0.0.14

A printable & modifiable Rust AST
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fn main() -> Result<(), Box<dyn std::error::Error>> {
    use ruast::*;

    let mut krate = Crate::new();
    let def = EnumDef::empty("Foo")
        .with_variant(Variant::empty("Bar"))
        .with_variant(Variant::tuple("Baz", vec![FieldDef::anonymous("u32")]))
        .with_variant(Variant::struct_(
            "Qux",
            vec![FieldDef::inherited("x", "u32")],
        ));
    krate.add_item(def);
    let imp = Impl::empty("Foo").with_item(Fn::empty_method("test", Pat::ref_self()));
    krate.add_item(imp);
    println!("{krate}");
    Ok(())
}