pub trait Visitor {
Show 26 methods
// Required method
fn new() -> Self;
// Provided methods
fn visit_or(&mut self, _index: usize) { ... }
fn visit_concat(&mut self) { ... }
fn visit_optional(&mut self, _was_chosen: bool) { ... }
fn visit_repetition(&mut self, _reps: usize) { ... }
fn visit_reference(&mut self, _index: usize) { ... }
fn visit_literal(&mut self, _s: &str) { ... }
fn visit_bytes(&mut self, _val: &[u8]) { ... }
fn visit_regex(&mut self, _val: &[u8]) { ... }
fn visit_group(&mut self) { ... }
fn visit_str(&mut self, _s: &str) { ... }
fn visit_char(&mut self, _c: char) { ... }
fn visit_f32(&mut self, _f: f32) { ... }
fn visit_f64(&mut self, _f: f64) { ... }
fn visit_u8(&mut self, _num: u8) { ... }
fn visit_u16(&mut self, _num: u16) { ... }
fn visit_u32(&mut self, _num: u32) { ... }
fn visit_u64(&mut self, _num: u64) { ... }
fn visit_u128(&mut self, _num: u128) { ... }
fn visit_usize(&mut self, _num: usize) { ... }
fn visit_i8(&mut self, _num: i8) { ... }
fn visit_i16(&mut self, _num: i16) { ... }
fn visit_i32(&mut self, _num: i32) { ... }
fn visit_i64(&mut self, _num: i64) { ... }
fn visit_i128(&mut self, _num: i128) { ... }
fn visit_isize(&mut self, _num: isize) { ... }
}Expand description
Defines state that is built during Grammar::expression.
This is implemented for
Stringto produce string expressionsVec<u8>to produce byte sequencesu64to produce equivalence class IDs of the traversal path. Seecrate::Grammar::how_manyfor more info.
You can implement this yourself, for example if you want to implement equivalence classes that
- ignore order
- ignore certain rules
- are more accurate
- care about characterics of the arbitrary data, such as if a string is ascii or not.
Required Methods§
Provided Methods§
fn visit_or(&mut self, _index: usize)
fn visit_concat(&mut self)
fn visit_optional(&mut self, _was_chosen: bool)
fn visit_repetition(&mut self, _reps: usize)
fn visit_reference(&mut self, _index: usize)
fn visit_literal(&mut self, _s: &str)
fn visit_bytes(&mut self, _val: &[u8])
fn visit_regex(&mut self, _val: &[u8])
fn visit_group(&mut self)
fn visit_str(&mut self, _s: &str)
fn visit_char(&mut self, _c: char)
fn visit_f32(&mut self, _f: f32)
fn visit_f64(&mut self, _f: f64)
fn visit_u8(&mut self, _num: u8)
fn visit_u16(&mut self, _num: u16)
fn visit_u32(&mut self, _num: u32)
fn visit_u64(&mut self, _num: u64)
fn visit_u128(&mut self, _num: u128)
fn visit_usize(&mut self, _num: usize)
fn visit_i8(&mut self, _num: i8)
fn visit_i16(&mut self, _num: i16)
fn visit_i32(&mut self, _num: i32)
fn visit_i64(&mut self, _num: i64)
fn visit_i128(&mut self, _num: i128)
fn visit_isize(&mut self, _num: isize)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl Visitor for u64
Returns an identifier of the path taken during the traversal.
impl Visitor for u64
Returns an identifier of the path taken during the traversal.
fn new() -> Self
fn visit_or(&mut self, index: usize)
fn visit_concat(&mut self)
fn visit_optional(&mut self, was_chosen: bool)
fn visit_reference(&mut self, index: usize)
fn visit_repetition(&mut self, reps: usize)
fn visit_literal(&mut self, _: &str)
fn visit_bytes(&mut self, _: &[u8])
fn visit_regex(&mut self, _: &[u8])
fn visit_group(&mut self)
Source§impl Visitor for String
Returns an arbitrary expression String matching the grammar.
impl Visitor for String
Returns an arbitrary expression String matching the grammar.
§Panics
Panics if the regex or byte sequence evaluates to non-utf8. This can be avoided by avoiding such regexes or non-utf8 bytes in the grammar.
fn new() -> Self
fn visit_literal(&mut self, val: &str)
fn visit_bytes(&mut self, val: &[u8])
fn visit_regex(&mut self, regex_result: &[u8])
fn visit_u8(&mut self, num: u8)
fn visit_u16(&mut self, num: u16)
fn visit_u32(&mut self, num: u32)
fn visit_u64(&mut self, num: u64)
fn visit_u128(&mut self, num: u128)
fn visit_usize(&mut self, num: usize)
fn visit_i8(&mut self, num: i8)
fn visit_i16(&mut self, num: i16)
fn visit_i32(&mut self, num: i32)
fn visit_i64(&mut self, num: i64)
fn visit_i128(&mut self, num: i128)
fn visit_isize(&mut self, num: isize)
fn visit_f32(&mut self, num: f32)
fn visit_f64(&mut self, num: f64)
fn visit_str(&mut self, s: &str)
fn visit_char(&mut self, c: char)
Source§impl Visitor for Vec<u8>
Returns an arbitrary byte sequence matching the grammar.
impl Visitor for Vec<u8>
Returns an arbitrary byte sequence matching the grammar.