Struct Diff

Source
pub struct Diff { /* private fields */ }
Expand description

Represents a series of operations that were performed on a file to transform it into a new version.

The operations are stored in file order, which means that every operation that affects an earlier part of the file must be stored before an operation that affects a later part. The diff also assumes that insert operations are performed prior to delete operations.

Implementations§

Source§

impl Diff

Source

pub fn new() -> Diff

Creates a new Diff

Source

pub fn inserts(&self) -> Iter<'_, Insert>

Gets an iterator over all insert operations

Source

pub fn deletes(&self) -> Iter<'_, Delete>

Gets an iterator over all delete operations

Source

pub fn is_empty(&self) -> bool

Checks if this set of diffs has any actual content

Source

pub fn apply_to_string(&self, string: &str) -> Result<String, FromUtf8Error>

Applies all of the operations in the diff to the given string. Gives an error if the resulting string can’t be represented by utf8.

§Panics

When the operations refer to positions that are not represented by the string.

Source

pub fn apply(&self, file: &mut File) -> Result<()>

Apply the operations in this sequence to a file. This should not be called until after the sequence has been integrated via Engine::integrate_remote The file must have been opened on both read and write mode (see OpenOptions).

Source

pub fn compress_to<W: Write>(&self, writer: &mut W) -> Result<()>

Compress this diff and write to writer. The output can then be expanded back into an equivilent Diff using expand_from()

Source

pub fn expand_from<R: Read>(reader: &mut R) -> Result<Diff>

Expand this diff from previously compressed data in reader. The data in reader should have been written using compress_to()

Trait Implementations§

Source§

impl Debug for Diff

Source§

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

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

impl PartialEq for Diff

Source§

fn eq(&self, other: &Diff) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Diff

Auto Trait Implementations§

§

impl Freeze for Diff

§

impl RefUnwindSafe for Diff

§

impl Send for Diff

§

impl Sync for Diff

§

impl Unpin for Diff

§

impl UnwindSafe for Diff

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>,

Source§

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>,

Source§

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.