pub trait Matcher<L: Language> {
// Required method
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>>;
// Provided methods
fn potential_kinds(&self) -> Option<BitSet> { ... }
fn get_match_len<D: Doc<Lang = L>>(
&self,
_node: Node<'_, D>,
) -> Option<usize> { ... }
}
Expand description
Matcher
defines whether a tree-sitter node matches certain pattern,
and update the matched meta-variable values in MetaVarEnv
.
N.B. At least one positive term is required for matching
Required Methods§
Sourcefn 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.
Provided Methods§
Sourcefn 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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.