gix_diff::blob::platform::prepare_diff

Enum Operation

source
pub enum Operation<'a> {
    InternalDiff {
        algorithm: Algorithm,
    },
    ExternalCommand {
        command: &'a BStr,
    },
    SourceOrDestinationIsBinary,
}
Available on crate feature blob only.
Expand description

The kind of operation that should be performed based on the configuration of the resources involved in the diff.

Variants§

§

InternalDiff

The internal diff algorithm should be called with the provided arguments. This only happens if none of the resources are binary, and if there is no external diff program configured via git-attributes or Options::skip_internal_diff_if_external_is_configured is false.

Use Outcome::interned_input() to easily obtain an interner for use with imara_diff::diff(), or maintain one yourself for greater reuse.

Fields

§algorithm: Algorithm

The algorithm we determined should be used, which is one of (in order, first set one wins):

  • the driver’s override
  • the platforms own configuration (typically from git-config)
  • the default algorithm
§

ExternalCommand

Run the external diff program according as configured in the source-resources driver. This only happens if Options::skip_internal_diff_if_external_is_configured was true, preventing the usage of the internal diff implementation.

Fields

§command: &'a BStr

The command as extracted from Driver::command. Use it in Platform::prepare_diff_command to easily prepare a compatible invocation.

§

SourceOrDestinationIsBinary

One of the involved resources, old or new, were binary and thus no diff cannot be performed.

Trait Implementations§

source§

impl<'a> Clone for Operation<'a>

source§

fn clone(&self) -> Operation<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for Operation<'a>

source§

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

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

impl<'a> PartialEq for Operation<'a>

source§

fn eq(&self, other: &Operation<'a>) -> 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<'a> Copy for Operation<'a>

source§

impl<'a> Eq for Operation<'a>

source§

impl<'a> StructuralPartialEq for Operation<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Operation<'a>

§

impl<'a> RefUnwindSafe for Operation<'a>

§

impl<'a> Send for Operation<'a>

§

impl<'a> Sync for Operation<'a>

§

impl<'a> Unpin for Operation<'a>

§

impl<'a> UnwindSafe for Operation<'a>

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.