Struct similar::algorithms::Replace
source · pub struct Replace<D: DiffHook> { /* private fields */ }
Expand description
A DiffHook
that combines deletions and insertions to give blocks
of maximal length, and replacements when appropriate.
It will replace DiffHook::insert
and DiffHook::delete
events when
possible with DiffHook::replace
events. Note that even though the
text processing in the crate does not use replace events and always resolves
then back to delete and insert, it’s useful to always use the replacer to
ensure a consistent order of inserts and deletes. This is why for instance
the text diffing automatically uses this hook internally.
Implementations§
Trait Implementations§
source§impl<D: DiffHook> DiffHook for Replace<D>
impl<D: DiffHook> DiffHook for Replace<D>
source§fn equal(
&mut self,
old_index: usize,
new_index: usize,
len: usize,
) -> Result<(), D::Error>
fn equal( &mut self, old_index: usize, new_index: usize, len: usize, ) -> Result<(), D::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
.source§fn delete(
&mut self,
old_index: usize,
old_len: usize,
new_index: usize,
) -> Result<(), D::Error>
fn delete( &mut self, old_index: usize, old_len: usize, new_index: usize, ) -> Result<(), D::Error>
Called when a section of length
old_len
, starting at old_index
,
needs to be deleted from the old version.source§fn insert(
&mut self,
old_index: usize,
new_index: usize,
new_len: usize,
) -> Result<(), D::Error>
fn insert( &mut self, old_index: usize, new_index: usize, new_len: usize, ) -> Result<(), D::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’.source§fn replace(
&mut self,
old_index: usize,
old_len: usize,
new_index: usize,
new_len: usize,
) -> Result<(), D::Error>
fn replace( &mut self, old_index: usize, old_len: usize, new_index: usize, new_len: usize, ) -> Result<(), D::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. Read moreAuto Trait Implementations§
impl<D> Freeze for Replace<D>where
D: Freeze,
impl<D> RefUnwindSafe for Replace<D>where
D: RefUnwindSafe,
impl<D> Send for Replace<D>where
D: Send,
impl<D> Sync for Replace<D>where
D: Sync,
impl<D> Unpin for Replace<D>where
D: Unpin,
impl<D> UnwindSafe for Replace<D>where
D: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more