Struct matchers::Pattern[][src]

pub struct Pattern<S = usize, A = DenseDFA<Vec<S>, S>> where
    S: StateID,
    A: DFA<ID = S>, 
{ /* fields omitted */ }

A compiled match pattern that can match multipe inputs, or return a Matcher that matches a single input.

Implementations

impl Pattern[src]

pub fn new(pattern: &str) -> Result<Self, Error>[src]

Returns a new Pattern for the given regex, or an error if the regex was invalid.

impl<S, A> Pattern<S, A> where
    S: StateID,
    A: DFA<ID = S>,
    Self: for<'a> ToMatcher<'a, S>, 
[src]

pub fn matches(&self, s: &impl AsRef<str>) -> bool[src]

Returns true if this pattern matches the given string.

pub fn debug_matches(&self, d: &impl Debug) -> bool[src]

Returns true if this pattern matches the formatted output of the given type implementing fmt::Debug.

For example:

use matchers::Pattern;

#[derive(Debug)]
pub struct Hello {
    to: &'static str,
}

let pattern = Pattern::new(r#"Hello \{ to: "W[^"]*" \}"#).unwrap();

let hello_world = Hello { to: "World" };
assert!(pattern.debug_matches(&hello_world));

let hello_sf = Hello { to: "San Francisco" };
assert_eq!(pattern.debug_matches(&hello_sf), false);

let hello_washington = Hello { to: "Washington" };
assert!(pattern.debug_matches(&hello_washington));

pub fn display_matches(&self, d: &impl Display) -> bool[src]

Returns true if this pattern matches the formatted output of the given type implementing fmt::Display.

For example:

use matchers::Pattern;

#[derive(Debug)]
pub struct Hello {
    to: &'static str,
}

impl fmt::Display for Hello {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "Hello {}", self.to)
    }
}

let pattern = Pattern::new("Hello [Ww].+").unwrap();

let hello_world = Hello { to: "world" };
assert!(pattern.display_matches(&hello_world));
assert_eq!(pattern.debug_matches(&hello_world), false);

let hello_sf = Hello { to: "San Francisco" };
assert_eq!(pattern.display_matches(&hello_sf), false);

let hello_washington = Hello { to: "Washington" };
assert!(pattern.display_matches(&hello_washington));

pub fn read_matches(&self, io: impl Read) -> Result<bool>[src]

Returns either a bool indicating whether or not this pattern matches the data read from the provided io::Read stream, or an io::Error if an error occurred reading from the stream.

Trait Implementations

impl<S: Clone, A: Clone> Clone for Pattern<S, A> where
    S: StateID,
    A: DFA<ID = S>, 
[src]

impl<S: Debug, A: Debug> Debug for Pattern<S, A> where
    S: StateID,
    A: DFA<ID = S>, 
[src]

impl FromStr for Pattern[src]

type Err = Error

The associated error which can be returned from parsing.

impl<'a, S> ToMatcher<'a, S> for Pattern<S, DenseDFA<Vec<S>, S>> where
    S: StateID + 'a, 
[src]

type Automaton = DenseDFA<&'a [S], S>

impl<'a, S> ToMatcher<'a, S> for Pattern<S, SparseDFA<Vec<u8>, S>> where
    S: StateID + 'a, 
[src]

type Automaton = SparseDFA<&'a [u8], S>

Auto Trait Implementations

impl<S, A> RefUnwindSafe for Pattern<S, A> where
    A: RefUnwindSafe

impl<S, A> Send for Pattern<S, A> where
    A: Send

impl<S, A> Sync for Pattern<S, A> where
    A: Sync

impl<S, A> Unpin for Pattern<S, A> where
    A: Unpin

impl<S, A> UnwindSafe for Pattern<S, A> where
    A: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.