pub trait DiffHook: Sized {
type Error;
// Provided methods
fn equal(
&mut self,
old_index: usize,
new_index: usize,
len: usize,
) -> Result<(), Self::Error> { ... }
fn delete(
&mut self,
old_index: usize,
old_len: usize,
new_index: usize,
) -> Result<(), Self::Error> { ... }
fn insert(
&mut self,
old_index: usize,
new_index: usize,
new_len: usize,
) -> Result<(), Self::Error> { ... }
fn replace(
&mut self,
old_index: usize,
old_len: usize,
new_index: usize,
new_len: usize,
) -> Result<(), Self::Error> { ... }
fn finish(&mut self) -> Result<(), Self::Error> { ... }
}
Expand description
A trait for reacting to an edit script from the “old” version to the “new” version.
Required Associated Types§
Provided Methods§
Sourcefn equal(
&mut self,
old_index: usize,
new_index: usize,
len: usize,
) -> Result<(), Self::Error>
fn equal( &mut self, old_index: usize, new_index: usize, len: usize, ) -> Result<(), Self::Error>
Called when lines with indices old_index
(in the old version) and
new_index
(in the new version) start an section equal in both
versions, of length len
.
Sourcefn delete(
&mut self,
old_index: usize,
old_len: usize,
new_index: usize,
) -> Result<(), Self::Error>
fn delete( &mut self, old_index: usize, old_len: usize, new_index: usize, ) -> Result<(), Self::Error>
Called when a section of length old_len
, starting at old_index
,
needs to be deleted from the old version.
Sourcefn insert(
&mut self,
old_index: usize,
new_index: usize,
new_len: usize,
) -> Result<(), Self::Error>
fn insert( &mut self, old_index: usize, new_index: usize, new_len: usize, ) -> Result<(), Self::Error>
Called when a section of the new version, of length new_len
and starting at new_index
, needs to be inserted at position `old_index’.
Sourcefn replace(
&mut self,
old_index: usize,
old_len: usize,
new_index: usize,
new_len: usize,
) -> Result<(), Self::Error>
fn replace( &mut self, old_index: usize, old_len: usize, new_index: usize, new_len: usize, ) -> Result<(), Self::Error>
Called when a section of the old version, starting at index
old_index
and of length old_len
, needs to be replaced with a
section of length new_len
, starting at new_index
, of the new
version.
The default implementations invokes delete
and insert
.
You can use the Replace
hook to
automatically generate these.
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.