Skip to main content

Visitor

Trait Visitor 

Source
pub trait Visitor {
Show 16 methods // Provided methods fn walk(&mut self, node: &QueryNode) { ... } fn visit_text(&mut self, s: &str) { ... } fn visit_exact(&mut self, s: &str) { ... } fn visit_phrase(&mut self, s: &str) { ... } fn visit_field(&mut self, field: QueryField, value: &str) { ... } fn visit_filter(&mut self, kind: &FilterKind) { ... } fn visit_label(&mut self, name: &str) { ... } fn visit_date(&mut self, bound: DateBound, date: &DateValue) { ... } fn visit_size(&mut self, op: SizeOp, bytes: u64) { ... } fn visit_near(&mut self, left: &str, right: &str, distance: u32) { ... } fn visit_and_pre(&mut self, left: &QueryNode, right: &QueryNode) { ... } fn visit_and_post(&mut self, left: &QueryNode, right: &QueryNode) { ... } fn visit_or_pre(&mut self, left: &QueryNode, right: &QueryNode) { ... } fn visit_or_post(&mut self, left: &QueryNode, right: &QueryNode) { ... } fn visit_not_pre(&mut self, inner: &QueryNode) { ... } fn visit_not_post(&mut self, inner: &QueryNode) { ... }
}
Expand description

AST visitor.

Implementors override the per-variant hooks they care about. Call Visitor::walk on a root QueryNode to start traversal — walk recurses into compound nodes (And/Or/Not) and dispatches to leaf hooks.

Provided Methods§

Source

fn walk(&mut self, node: &QueryNode)

Recursive walk. Visits leaves via the typed hooks below; recurses into And/Or/Not children. Override only if you need to short-circuit traversal.

Source

fn visit_text(&mut self, s: &str)

Source

fn visit_exact(&mut self, s: &str)

Source

fn visit_phrase(&mut self, s: &str)

Source

fn visit_field(&mut self, field: QueryField, value: &str)

Source

fn visit_filter(&mut self, kind: &FilterKind)

Source

fn visit_label(&mut self, name: &str)

Source

fn visit_date(&mut self, bound: DateBound, date: &DateValue)

Source

fn visit_size(&mut self, op: SizeOp, bytes: u64)

Source

fn visit_near(&mut self, left: &str, right: &str, distance: u32)

Source

fn visit_and_pre(&mut self, left: &QueryNode, right: &QueryNode)

Source

fn visit_and_post(&mut self, left: &QueryNode, right: &QueryNode)

Source

fn visit_or_pre(&mut self, left: &QueryNode, right: &QueryNode)

Source

fn visit_or_post(&mut self, left: &QueryNode, right: &QueryNode)

Source

fn visit_not_pre(&mut self, inner: &QueryNode)

Source

fn visit_not_post(&mut self, inner: &QueryNode)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§