Trait similar::algorithms::DiffHook
source · 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.