Struct IgnoreRules

Source
pub struct IgnoreRules {
    pub root: PathBuf,
    pub ignore_filename: Option<String>,
    pub ignore_patterns: Arc<RwLock<Vec<Pattern>>>,
    pub whitelist_patterns: Arc<RwLock<Vec<Pattern>>>,
}
Expand description

Complete set of ignore rules for a directory and its child directories.

Fields§

§root: PathBuf

The root of the ignore rules. Typically this is the root directory of Git or Xvc repository.

§ignore_filename: Option<String>

The name of the ignore file (e.g. .xvcignore, .gitignore) to be loaded for ignore rules.

§ignore_patterns: Arc<RwLock<Vec<Pattern>>>

All ignore patterns collected from ignore files or specified in code.

§whitelist_patterns: Arc<RwLock<Vec<Pattern>>>

All whitelist patterns collected from ignore files or specified in code

Implementations§

Source§

impl IgnoreRules

Source

pub fn empty(dir: &Path, ignore_filename: Option<&str>) -> IgnoreRules

An empty set of ignore rules that neither ignores nor whitelists any path.

Source

pub fn from_global_patterns( ignore_root: &Path, ignore_filename: Option<&str>, given: &str, ) -> IgnoreRules

Constructs a new IgnoreRules instance from a given set of global ignore patterns.

Source

pub fn from_patterns( ignore_root: &Path, ignore_filename: Option<&str>, patterns: Vec<Pattern>, ) -> IgnoreRules

Constructs a new IgnoreRules instance from a vector of patterns and a root path.

This function separates the patterns into ignore patterns and whitelist patterns based on their PatternEffect. It then stores these patterns and the root path in a new IgnoreRules instance.

§Arguments
  • patterns - A vector of Pattern instances to be used for creating the IgnoreRules.
  • ignore_root - A reference to the root path for the ignore rules.
§Returns

A new IgnoreRules instance containing the given patterns and root path.

Source

pub fn check(&self, path: &Path) -> MatchResult

Checks if a given path matches any of the whitelist or ignore patterns.

The function first checks if the path matches any of the whitelist patterns. If a match is found, it returns MatchResult::Whitelist.

If the path does not match any of the whitelist patterns, the function then checks if the path matches any of the ignore patterns. If a match is found, it returns MatchResult::Ignore.

If the path does not match any of the whitelist or ignore patterns, the function returns MatchResult::NoMatch.

§Arguments
  • path - A reference to the path to check.
§Returns
  • MatchResult::Whitelist if the path matches a whitelist pattern.
  • MatchResult::Ignore if the path matches an ignore pattern.
  • MatchResult::NoMatch if the path does not match any pattern.
Source

pub fn merge_with(&self, other: &IgnoreRules) -> Result<(), Error>

Merges the ignore and whitelist patterns of another IgnoreRules instance into this one.

This function locks the ignore and whitelist patterns of both IgnoreRules instances, drains the patterns from the other instance, and pushes them into this instance. The other instance is left empty after this operation.

§Arguments
  • other - A reference to the other IgnoreRules instance to merge with.
§Returns
  • Ok(()) if the merge operation was successful.
  • Err if the merge operation failed.
§Panics

This function will panic if the roots of the two IgnoreRules instances are not equal.

Source

pub fn add_patterns(&self, patterns: Vec<Pattern>) -> Result<(), Error>

Adds a list of patterns to the current ignore rules.

§Arguments
  • patterns - A vector of patterns to be added to the ignore rules.

Trait Implementations§

Source§

impl Clone for IgnoreRules

Source§

fn clone(&self) -> IgnoreRules

Returns a duplicate 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 IgnoreRules

Source§

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

Formats the value using the given formatter. Read more

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§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T