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§
Sourcefn new(settings: &Self::Settings) -> Self
fn new(settings: &Self::Settings) -> Self
Creates a new Parser from its Self::Settings.
Sourcefn update(&mut self, new_settings: &Self::Settings)
fn update(&mut self, new_settings: &Self::Settings)
Updates the Parser with some new Self::Settings.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.