Skip to main content

Matcher

Struct Matcher 

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

Match paths against include/exclude patterns, without watching anything.

This uses the same pattern syntax as Watcher (see Watcher::add_include), exposed for callers that receive paths from somewhere else - a single watcher covering many independently-configured subtrees, say - and need to decide for themselves which set of rules a path belongs to.

A pattern naming a directory covers everything inside it. For excludes this mirrors the watcher exactly: it never descends into an excluded directory, so nothing in there is ever reported. For includes this is slightly more lenient than the watcher’s event filter, which reports the named directory itself but requires dir/** to report its contents.

use include_exclude_watcher::Matcher;

let matcher = Matcher::new(&["**/*"], &["node_modules", "*.log"]);
assert!(matcher.matches("src/main.rs"));
assert!(!matcher.matches("node_modules/left-pad/index.js"));
assert!(!matcher.matches("var/app.log"));

Implementations§

Source§

impl Matcher

Source

pub fn new<I: AsRef<str>, E: AsRef<str>>(includes: &[I], excludes: &[E]) -> Self

Create a matcher from include and exclude patterns.

See Watcher::add_include for the pattern syntax.

Source

pub fn matches(&self, path: impl AsRef<Path>) -> bool

Whether path matches at least one include pattern and no exclude pattern.

The path is interpreted like the watcher’s relative paths: /-separated, relative to whatever the patterns are anchored to.

Trait Implementations§

Source§

impl Clone for Matcher

Source§

fn clone(&self) -> Matcher

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Matcher

Source§

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

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