Struct gix_dir::walk::Options

source ·
pub struct Options {
    pub precompose_unicode: bool,
    pub ignore_case: bool,
    pub recurse_repositories: bool,
    pub emit_pruned: bool,
    pub emit_ignored: Option<EmissionMode>,
    pub for_deletion: Option<ForDeletionMode>,
    pub classify_untracked_bare_repositories: bool,
    pub emit_tracked: bool,
    pub emit_untracked: EmissionMode,
    pub emit_empty_directories: bool,
    pub emit_collapsed: Option<CollapsedEntriesEmissionMode>,
    pub symlinks_to_directories_are_ignored_like_directories: bool,
}
Expand description

Options for use in walk() function.

Fields§

§precompose_unicode: bool

If true, the filesystem will store paths as decomposed unicode, i.e. ä becomes "a\u{308}", which means that we have to turn these forms back from decomposed to precomposed unicode before storing it in the index or generally using it. This also applies to input received from the command-line, so callers may have to be aware of this and perform conversions accordingly. If false, no conversions will be performed.

§ignore_case: bool

If true, the filesystem ignores the case of input, which makes A the same file as a. This is also called case-folding. Note that pathspecs must also be using the same defaults, which makes them match case-insensitive automatically.

§recurse_repositories: bool

If true, we will stop figuring out if any directory that is a candidate for recursion is also a nested repository, which saves time but leads to recurse into it. If false, nested repositories will not be traversed.

§emit_pruned: bool

If true, entries that are pruned and whose Kind is known will be emitted.

§emit_ignored: Option<EmissionMode>

If Some(mode), entries that are ignored will be emitted according to the given mode. If None, ignored entries will not be emitted at all.

§for_deletion: Option<ForDeletionMode>

When the walk is for deletion, this must be Some(_) to assure we don’t collapse directories that have precious files in them, and otherwise assure that no entries are observable that shouldn’t be deleted. If None, precious files are treated like expendable files, which is usually what you want when displaying them for addition to the repository, and the collapse of folders can be more generous in relation to ignored files.

§classify_untracked_bare_repositories: bool

If true, we will not only find non-bare repositories in untracked directories, but also bare ones.

Note that this is very costly, but without it, bare repositories will appear like untracked directories when collapsed, and they will be recursed into.

§emit_tracked: bool

If true, we will also emit entries for tracked items. Otherwise these will remain ‘hidden’, even if a pathspec directly refers to it.

§emit_untracked: EmissionMode

Controls the way untracked files are emitted. By default, this is happening immediately and without any simplification.

§emit_empty_directories: bool

If true, emit empty directories as well. Note that a directory also counts as empty if it has any amount or depth of nested subdirectories, as long as none of them includes a file. Thus, this makes leaf-level empty directories visible, as those don’t have any content.

§emit_collapsed: Option<CollapsedEntriesEmissionMode>

If None, no entries inside of collapsed directories are emitted. Otherwise, act as specified by Some(mode).

§symlinks_to_directories_are_ignored_like_directories: bool

This is a libgit2 compatibility flag, and if enabled, symlinks that point to directories will be considered a directory when checking for exclusion.

This is relevant if src2 points to src, and is excluded with src2/. If false, src2 will not be excluded, if true it will be excluded as the symlink is considered a directory.

In other words, for Git compatibility this flag should be false, the default, for git2 compatibility it should be true.

Trait Implementations§

source§

impl Clone for Options

source§

fn clone(&self) -> Options

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 Debug for Options

source§

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

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

impl Default for Options

source§

fn default() -> Options

Returns the “default value” for a type. Read more
source§

impl Hash for Options

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 Ord for Options

source§

fn cmp(&self, other: &Options) -> 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 PartialEq for Options

source§

fn eq(&self, other: &Options) -> 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 PartialOrd for Options

source§

fn partial_cmp(&self, other: &Options) -> 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 Copy for Options

source§

impl Eq for Options

source§

impl StructuralPartialEq for Options

Auto Trait Implementations§

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

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,

§

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.