Trait Parser
pub trait Parser: 'static {
type Settings: PartialEq + Clone;
type Output;
type Iterator<'a>: Iterator<Item = (Range<usize>, Self::Output)>
where Self: 'a;
// Required methods
fn new(settings: &Self::Settings) -> Self;
fn update(&mut self, new_settings: &Self::Settings);
fn change_line(&mut self, line: usize);
fn parse_line(&mut self, line: &str) -> Self::Iterator<'_>;
fn current_line(&self) -> usize;
}Expand description
Required Associated Types§
Required Methods§
fn new(settings: &Self::Settings) -> Self
fn new(settings: &Self::Settings) -> Self
Creates a new Parser from its Self::Settings.
fn update(&mut self, new_settings: &Self::Settings)
fn update(&mut self, new_settings: &Self::Settings)
Updates the Parser with some new Self::Settings.
fn change_line(&mut self, line: usize)
fn change_line(&mut self, line: usize)
Notifies the Parser that the line at the given index has changed.
fn parse_line(&mut self, line: &str) -> Self::Iterator<'_>
fn parse_line(&mut self, line: &str) -> Self::Iterator<'_>
Parses the given line.
If a line changed prior to this, the first line provided here will be the line that changed.
fn current_line(&self) -> usize
fn current_line(&self) -> usize
Returns the current line of the Parser.
If change_line has been called, this will normally be the least index
that changed.
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.