pub struct Pattern<S = usize, A = DenseDFA<Vec<S>, S>>where
S: StateID,
A: DFA<ID = S>,{ /* private fields */ }
Expand description
A compiled match pattern that can match multipe inputs, or return a
Matcher
that matches a single input.
Implementations§
source§impl<S, A> Pattern<S, A>where
S: StateID,
A: DFA<ID = S>,
Self: for<'a> ToMatcher<'a, S>,
impl<S, A> Pattern<S, A>where
S: StateID,
A: DFA<ID = S>,
Self: for<'a> ToMatcher<'a, S>,
sourcepub fn matches(&self, s: &impl AsRef<str>) -> bool
pub fn matches(&self, s: &impl AsRef<str>) -> bool
Returns true
if this pattern matches the given string.
sourcepub fn debug_matches(&self, d: &impl Debug) -> bool
pub fn debug_matches(&self, d: &impl Debug) -> bool
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));
sourcepub fn display_matches(&self, d: &impl Display) -> bool
pub fn display_matches(&self, d: &impl Display) -> bool
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));
sourcepub fn read_matches(&self, io: impl Read) -> Result<bool>
pub fn read_matches(&self, io: impl Read) -> Result<bool>
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.