Pattern

Struct Pattern 

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

A pattern to match strings against.

Implementations§

Source§

impl Pattern

Source

pub fn compile(pat: &str, opts: MatchOptions) -> Pattern

Compiles a pattern from a string, using shell-like syntax. If you want to compile your own custom string format, see Pattern::from_iter.

Each of these can be toggled using MatchOptions.

  • All characters prefixed with a backslash (\) are interpreted literally.
  • (MatchOptions::WILDCARDS) Asterisks (*s) are interpreted as wildcards: e.g. a*b is interpreted as a, a wildcard then b.
  • (MatchOptions::UNKNOWN_CHARS) Question marks (?s) are interpreted as optional characters.
Source

pub fn compile_iter<T: IntoIterator<Item = char>>( pat: T, opts: MatchOptions, ) -> Pattern

The same as Pattern::compile, but with an iterator instead of a &str.

Source

pub fn matches(&self, string: &str) -> bool

Checks if string matches the pattern. The pattern is checked for a match “perfectly”, i.e. if it is possible to match by choosing all of the matches optimally, it will do so. This optimizes matching checks if not all features are used.

Trait Implementations§

Source§

impl Clone for Pattern

Source§

fn clone(&self) -> Pattern

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 Pattern

Source§

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

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

impl FromIterator<Chunk> for Pattern

Source§

fn from_iter<T: IntoIterator<Item = Chunk>>(iter: T) -> Self

Used to compile a Pattern from an iterator of Chunks. Note that this allocates memory to store all the Chunks.

Example usage:

use patmatch::{Pattern, Chunk};
let chunk_vec = vec![Chunk::str("IMG_"), Chunk::Wildcard, Chunk::str(".png")];
let pat: Pattern = chunk_vec.into_iter().collect();
assert!(pat.matches("IMG_20170301.png"));
assert!(!pat.matches("stuff.png")); assert!(!pat.matches("IMG_20170302.jpeg"));

Auto Trait Implementations§

§

impl Freeze for Pattern

§

impl !RefUnwindSafe for Pattern

§

impl !Send for Pattern

§

impl !Sync for Pattern

§

impl Unpin for Pattern

§

impl !UnwindSafe for Pattern

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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.