Skip to main content

RegexMatcher

Struct RegexMatcher 

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

Matcher that finds AST nodes based on regex patterns applied to their text content.

RegexMatcher enables flexible text-based searching within AST nodes. It matches any node whose text content satisfies the provided regular expression.

§Examples

// Match numeric literals
let numbers = RegexMatcher::try_new(r"^\d+$")?;
let numeric_nodes: Vec<_> = root.find_all(&numbers).collect();

// Find TODO comments
let todos = RegexMatcher::try_new(r"(?i)todo|fixme")?;
let todo_comments: Vec<_> = root.find_all(&todos).collect();

// Match specific naming patterns
let private_vars = RegexMatcher::try_new(r"^_\w+")?;
let private_variables: Vec<_> = root.find_all(&private_vars).collect();

§Performance Note

Text matching requires extracting text from every tested node, which can be slower than structural matching. Consider combining with other matchers or using more specific patterns when possible.

Implementations§

Trait Implementations§

Source§

impl Clone for RegexMatcher

Source§

fn clone(&self) -> RegexMatcher

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 RegexMatcher

Source§

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

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

impl Matcher for RegexMatcher

Source§

fn match_node_with_env<'tree, D: Doc>( &self, node: Node<'tree, D>, _env: &mut Cow<'_, MetaVarEnv<'tree, D>>, ) -> Option<Node<'tree, D>>

Attempt to match a node, updating the meta-variable environment. Read more
Source§

fn potential_kinds(&self) -> Option<BitSet>

Provide a hint about which node types this matcher can match. Read more
Source§

fn get_match_len<D: Doc>(&self, _node: Node<'_, D>) -> Option<usize>

Determine how much of a matched node should be replaced. Read more

Auto Trait Implementations§

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> 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> MatcherExt for T
where T: Matcher,

Source§

fn match_node<'tree, D>( &self, node: Node<'tree, D>, ) -> Option<NodeMatch<'tree, D>>
where D: Doc,

Source§

fn find_node<'tree, D>( &self, node: Node<'tree, D>, ) -> Option<NodeMatch<'tree, D>>
where D: Doc,

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.