Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/timsueberkrueb/visit

Automatically generate Rust code for the Visitor pattern
https://github.com/timsueberkrueb/visit

proc-macro rust visitor-pattern

Last synced: about 1 month ago
JSON representation

Automatically generate Rust code for the Visitor pattern

Awesome Lists containing this project

README

        

# visit

Automatically generate code for the [Visitor pattern](https://en.wikipedia.org/wiki/Visitor_pattern).

## Usage

```rust
visit! {
// Automatically generates `Visitor` and `AcceptVisitor` traits
// The `Visitor` trait will contain `visit_` 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:

* [Apache License Version 2.0](LICENSE-APACHE)
* [MIT License](LICENSE-MIT)