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§
Sourcefn walk(&mut self, node: &QueryNode)
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.
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)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".