pub struct CompiledPattern { /* private fields */ }Expand description
A compiled regex paired with its replacement template. Construct with
CompiledPattern::compile; use CompiledPattern::is_convergent
to check the idempotency invariant before scanning.
Implementations§
Source§impl CompiledPattern
impl CompiledPattern
Sourcepub fn compile(
pattern: &str,
replacement: &str,
opts: &PatternOptions,
) -> Result<Self>
pub fn compile( pattern: &str, replacement: &str, opts: &PatternOptions, ) -> Result<Self>
Compile pattern into a regex and store replacement for later
substitution. Returns crate::Error::InvalidRegex on syntax errors.
pub fn regex(&self) -> &Regex
pub fn replacement(&self) -> &str
Sourcepub fn is_convergent(&self) -> bool
pub fn is_convergent(&self) -> bool
True when the pattern is convergent given its replacement: re-applying
the rewrite to its own output produces no further match. Catches
non-idempotent rewrites such as a → aa.
Trait Implementations§
Source§impl Clone for CompiledPattern
impl Clone for CompiledPattern
Source§fn clone(&self) -> CompiledPattern
fn clone(&self) -> CompiledPattern
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CompiledPattern
impl RefUnwindSafe for CompiledPattern
impl Send for CompiledPattern
impl Sync for CompiledPattern
impl Unpin for CompiledPattern
impl UnsafeUnpin for CompiledPattern
impl UnwindSafe for CompiledPattern
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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