Struct ast_grep_core::matcher::Pattern
source · pub struct Pattern<L: Language> {
pub node: PatternNode,
pub strictness: MatchStrictness,
/* private fields */
}
Fields§
§node: PatternNode
§strictness: MatchStrictness
Implementations§
source§impl<L: Language> Pattern<L>
impl<L: Language> Pattern<L>
pub fn try_new(src: &str, lang: L) -> Result<Self, PatternError>
pub fn new(src: &str, lang: L) -> Self
pub fn with_strictness(self, strictness: MatchStrictness) -> Self
pub fn contextual( context: &str, selector: &str, lang: L, ) -> Result<Self, PatternError>
pub fn doc(doc: StrDoc<L>) -> Self
Trait Implementations§
source§impl<L: Language> Matcher<L> for Pattern<L>
impl<L: Language> Matcher<L> for Pattern<L>
source§fn match_node_with_env<'tree, D: Doc<Lang = L>>(
&self,
node: Node<'tree, D>,
env: &mut Cow<'_, MetaVarEnv<'tree, D>>,
) -> Option<Node<'tree, D>>
fn match_node_with_env<'tree, D: Doc<Lang = L>>( &self, node: Node<'tree, D>, env: &mut Cow<'_, MetaVarEnv<'tree, D>>, ) -> Option<Node<'tree, D>>
Returns the node why the input is matched or None if not matched.
The return value is usually input node itself, but it can be different node.
For example
Has
matcher can return the child or descendant node.source§fn potential_kinds(&self) -> Option<BitSet>
fn potential_kinds(&self) -> Option<BitSet>
Returns a bitset for all possible target node kind ids.
Returns None if the matcher needs to try against all node kind.
source§fn get_match_len<D: Doc<Lang = L>>(&self, node: Node<'_, D>) -> Option<usize>
fn get_match_len<D: Doc<Lang = L>>(&self, node: Node<'_, D>) -> Option<usize>
get_match_len will skip trailing anonymous child node to exclude punctuation.
fn match_node<'tree, D: Doc<Lang = L>>( &self, node: Node<'tree, D>, ) -> Option<NodeMatch<'tree, D>>
fn find_node<'tree, D: Doc<Lang = L>>( &self, node: Node<'tree, D>, ) -> Option<NodeMatch<'tree, D>>
Auto Trait Implementations§
impl<L> Freeze for Pattern<L>
impl<L> RefUnwindSafe for Pattern<L>where
L: RefUnwindSafe,
impl<L> Send for Pattern<L>where
L: Send,
impl<L> Sync for Pattern<L>where
L: Sync,
impl<L> Unpin for Pattern<L>where
L: Unpin,
impl<L> UnwindSafe for Pattern<L>where
L: UnwindSafe,
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)