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: -alsovisitfirst_if` Will visit self additionally before if predicate is true

```rust

[derive(Visitable)]

[visitself(alsovisitfirstif="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 { #[visitskipfield] a: String } ```