ezno-parser-visitable-derive 0.0.9

Derives 'Visitable' trait for Ezno AST
Documentation
![visiting-proc-macro lines of code](https://projects.kaleidawave.workers.dev/project/ezno-parser-visitable-derive/badge)

A package which generates mutable and immutable *visiting* implementations for AST nodes.

A visitor is a implementor a trait of which the a function is called of a each node.

This module is specific for the *parser* module and contains the ability to extend with data.
## Usage

```rust
use visitable_derive::Visitable;

#[derive(Visitable)]
struct MyAstNode {
	...
}
```

## Attributes
### `visit_self`
Will visit all fields **first then** self

```rust
#[derive(Visitable)]
#[visit_self]
struct MyAstNode {
	...
}
```

Options:
- `also_visit_first_if`
Will visit self additionally before if predicate is true

```rust
#[derive(Visitable)]
#[visit_self(also_visit_first_if="self.predicate()"]
struct MyAstNode {
	...
}

impl MyAstNode {
	fn predicate(&self) -> bool {
		...
	}
}
```

### `visit_skip_field`
Skips visiting the field. Used if type does not implement `Visitable`

```rust
#[derive(Visitable)]
struct MyAstNode {
	#[visit_skip_field]
	a: String
}
```