pub struct Regexp { /* private fields */ }Expand description
A parsed pattern, plus the group count needed to size the capture vector.
Implementations§
Source§impl Regexp
impl Regexp
Sourcepub fn parse(pattern: &str) -> Regexp
pub fn parse(pattern: &str) -> Regexp
Parse a Str-dialect pattern. Never fails: malformed input degrades to
the most literal reading, because a raised error here would take down a
whole document over a single bad highlighting rule.
Sourcepub fn match_at(
&self,
input: &[char],
start: usize,
) -> Result<Option<usize>, GaveUp>
pub fn match_at( &self, input: &[char], start: usize, ) -> Result<Option<usize>, GaveUp>
Anchored match at start, returning the end offset (in chars) of the
match — Str.string_match plus Str.match_end.
A pattern that exhausts its step budget reports Err(GaveUp) rather
than “no match”: see [Budget]. Silently answering None would turn a
hang into wrong output, which is worse.
Trait Implementations§
impl Eq for Regexp
impl StructuralPartialEq for Regexp
Auto Trait Implementations§
impl Freeze for Regexp
impl RefUnwindSafe for Regexp
impl Send for Regexp
impl Sync for Regexp
impl Unpin for Regexp
impl UnsafeUnpin for Regexp
impl UnwindSafe for Regexp
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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