pub trait Highlighter: 'static {
type Settings: PartialEq + Clone;
type Highlight;
type Iterator<'a>: Iterator<Item = (Range<usize>, Self::Highlight)>
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 highlight_line(&mut self, line: &str) -> Self::Iterator<'_>;
fn current_line(&self) -> usize;
}
Expand description
A type capable of highlighting text.
A Highlighter
highlights lines in sequence. When a line changes,
it must be notified and the lines after the changed one must be fed
again to the Highlighter
.
Required Associated Types§
Sourcetype Settings: PartialEq + Clone
type Settings: PartialEq + Clone
The settings to configure the Highlighter
.
Sourcetype Highlight
type Highlight
The output of the Highlighter
.
Required Methods§
Sourcefn new(settings: &Self::Settings) -> Self
fn new(settings: &Self::Settings) -> Self
Creates a new Highlighter
from its Self::Settings
.
Sourcefn update(&mut self, new_settings: &Self::Settings)
fn update(&mut self, new_settings: &Self::Settings)
Updates the Highlighter
with some new Self::Settings
.
Sourcefn change_line(&mut self, line: usize)
fn change_line(&mut self, line: usize)
Notifies the Highlighter
that the line at the given index has changed.
Sourcefn highlight_line(&mut self, line: &str) -> Self::Iterator<'_>
fn highlight_line(&mut self, line: &str) -> Self::Iterator<'_>
Highlights 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 Highlighter
.
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.