1 unstable release

0.1.0 Feb 17, 2019

#23 in #visitor

MIT/Apache

18KB
377 lines

visit

Automatically generate code for the Visitor pattern.

Usage

visit! {
    // Automatically generates `Visitor` and `AcceptVisitor` traits
    // The `Visitor` trait will contain `visit_<child>` functions for all items inside of the macro call.
    // The `AcceptVisitor` trait will be implemented automatically for all items.
    #![visitor(name = "Visitor")]

    struct Bar {
        a: Child,
        b: Child,
    }

    struct Child {}
}

struct MyVisitor;

impl Visitor for MyVisitor {
    fn visit_child(&mut self, _child: &Child) {
        // Do something cool
    }
}

License

visit is licensed under either of the following licenses, at your option:

Dependencies

~2MB
~45K SLoC