Struct similar::algorithms::Compact

source ·
pub struct Compact<'old, 'new, Old: ?Sized, New: ?Sized, D> { /* private fields */ }
Expand description

Performs semantic cleanup operations on a diff.

This merges similar ops together but also tries to move hunks up and down the diff with the desire to connect as many hunks as possible. It still needs to be combined with Replace to get actual replace diff ops out.

Implementations§

source§

impl<'old, 'new, Old, New, D> Compact<'old, 'new, Old, New, D>
where D: DiffHook, Old: Index<usize> + ?Sized + 'old, New: Index<usize> + ?Sized + 'new, New::Output: PartialEq<Old::Output>,

source

pub fn new(d: D, old: &'old Old, new: &'new New) -> Self

Creates a new compact hook wrapping another hook.

source

pub fn into_inner(self) -> D

Extracts the inner hook.

Trait Implementations§

source§

impl<'old, 'new, Old: ?Sized, New: ?Sized, D: DiffHook> AsMut<D> for Compact<'old, 'new, Old, New, D>

source§

fn as_mut(&mut self) -> &mut D

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl<'old, 'new, Old: ?Sized, New: ?Sized, D: DiffHook> AsRef<D> for Compact<'old, 'new, Old, New, D>

source§

fn as_ref(&self) -> &D

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<'old, 'new, Old: Debug + ?Sized, New: Debug + ?Sized, D: Debug> Debug for Compact<'old, 'new, Old, New, D>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'old, 'new, Old, New, D> DiffHook for Compact<'old, 'new, Old, New, D>
where D: DiffHook, Old: Index<usize> + ?Sized + 'old, New: Index<usize> + ?Sized + 'new, New::Output: PartialEq<Old::Output>,

§

type Error = <D as DiffHook>::Error

The error produced from the hook methods.
source§

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.
source§

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.
source§

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’.
source§

fn finish(&mut self) -> Result<(), Self::Error>

Always called at the end of the algorithm.
source§

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. Read more

Auto Trait Implementations§

§

impl<'old, 'new, Old, New, D> Freeze for Compact<'old, 'new, Old, New, D>
where D: Freeze, Old: ?Sized, New: ?Sized,

§

impl<'old, 'new, Old, New, D> RefUnwindSafe for Compact<'old, 'new, Old, New, D>

§

impl<'old, 'new, Old, New, D> Send for Compact<'old, 'new, Old, New, D>
where D: Send, Old: Sync + ?Sized, New: Sync + ?Sized,

§

impl<'old, 'new, Old, New, D> Sync for Compact<'old, 'new, Old, New, D>
where D: Sync, Old: Sync + ?Sized, New: Sync + ?Sized,

§

impl<'old, 'new, Old, New, D> Unpin for Compact<'old, 'new, Old, New, D>
where D: Unpin, Old: ?Sized, New: ?Sized,

§

impl<'old, 'new, Old, New, D> UnwindSafe for Compact<'old, 'new, Old, New, D>
where D: UnwindSafe, Old: RefUnwindSafe + ?Sized, New: RefUnwindSafe + ?Sized,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.