Struct gix_dir::EntryRef

source ·
pub struct EntryRef<'a> {
    pub rela_path: Cow<'a, BStr>,
    pub status: Status,
    pub property: Option<Property>,
    pub disk_kind: Option<Kind>,
    pub index_kind: Option<Kind>,
    pub pathspec_match: Option<PathspecMatch>,
}
Expand description

A directory entry, typically obtained using walk().

Fields§

§rela_path: Cow<'a, BStr>

The repository-relative path at which the file or directory could be found, with unix-style component separators.

To obtain the respective file, join it with the worktree_root passed to walk(). The rationale here is that this is a compressed and normalized version compared to the paths we would otherwise get, which is preferable especially when converted to Entry due to lower memory requirements.

This also means that the original path to be presented to the user needs to be computed separately, as it’s also relative to their prefix, i.e. their current working directory within the repository.

Note that this value can be empty if information about the worktree_root is provided, which is fine as joining with an empty string is a no-op.

Note that depending on the way entries are emitted, even refs might already contain an owned rela_path, for use with into_owned()

§status: Status

The status of entry, most closely related to what we know from git status, but not the same.

Note that many entries with status Pruned will not show up as their kind hasn’t yet been determined when they were pruned very early on.

§property: Option<Property>

Additional properties of the entry.

§disk_kind: Option<Kind>

Further specify what the entry is on disk, similar to a file mode. This is None if we decided it’s not worth it to exit early and avoid trying to obtain this information.

§index_kind: Option<Kind>

The kind of entry according to the index, if tracked. Usually the same as disk_kind.

§pathspec_match: Option<PathspecMatch>

Determines how the pathspec matched. Note that it can also be Some(PathspecMatch::Excluded) if a negative pathspec matched.

Implementations§

source§

impl EntryRef<'_>

Conversion

source

pub fn to_owned(&self) -> Entry

Strip the lifetime to obtain a fully owned copy.

source

pub fn into_owned(self) -> Entry

Turn this instance into a fully owned copy.

Trait Implementations§

source§

impl<'a> Clone for EntryRef<'a>

source§

fn clone(&self) -> EntryRef<'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 EntryRef<'a>

source§

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

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

impl<'a> Hash for EntryRef<'a>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<'a> Ord for EntryRef<'a>

source§

fn cmp(&self, other: &EntryRef<'a>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<'a> PartialEq for EntryRef<'a>

source§

fn eq(&self, other: &EntryRef<'a>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a> PartialOrd for EntryRef<'a>

source§

fn partial_cmp(&self, other: &EntryRef<'a>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<'a> Eq for EntryRef<'a>

source§

impl<'a> StructuralPartialEq for EntryRef<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for EntryRef<'a>

§

impl<'a> RefUnwindSafe for EntryRef<'a>

§

impl<'a> Send for EntryRef<'a>

§

impl<'a> Sync for EntryRef<'a>

§

impl<'a> Unpin for EntryRef<'a>

§

impl<'a> UnwindSafe for EntryRef<'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§

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

§

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

§

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.