Struct ast_grep_core::ops::Op

source ·
pub struct Op<L: Language, M: Matcher<L>> { /* private fields */ }

Implementations§

source§

impl<L: Language, M: Matcher<L>> Op<L, M>

source

pub fn not(pattern: M) -> Not<L, M>

source§

impl<L: Language, M: Matcher<L>> Op<L, M>

source

pub fn every(pattern: M) -> Op<L, And<L, M, MatchAll>>

source

pub fn either(pattern: M) -> Op<L, Or<L, M, MatchNone>>

source

pub fn all<MS: IntoIterator<Item = M>>(patterns: MS) -> All<L, M>

source

pub fn any<MS: IntoIterator<Item = M>>(patterns: MS) -> Any<L, M>

source

pub fn new(matcher: M) -> Op<L, M>

source§

impl<L: Language, M: Matcher<L>, N: Matcher<L>> Op<L, And<L, M, N>>

source

pub fn and<O: Matcher<L>>(self, other: O) -> Op<L, And<L, And<L, M, N>, O>>

source§

impl<L: Language, M: Matcher<L>, N: Matcher<L>> Op<L, Or<L, M, N>>

source

pub fn or<O: Matcher<L>>(self, other: O) -> Op<L, Or<L, Or<L, M, N>, O>>

Trait Implementations§

source§

impl<L: Clone + Language, M: Clone + Matcher<L>> Clone for Op<L, M>

source§

fn clone(&self) -> Op<L, M>

Returns a copy 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<L, M> Matcher<L> for Op<L, M>where L: Language, M: Matcher<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>>

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>

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>

get_match_len will skip trailing anonymous child node to exclude punctuation.
source§

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

source§

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

Auto Trait Implementations§

§

impl<L, M> RefUnwindSafe for Op<L, M>where L: RefUnwindSafe, M: RefUnwindSafe,

§

impl<L, M> Send for Op<L, M>where L: Send, M: Send,

§

impl<L, M> Sync for Op<L, M>where L: Sync, M: Sync,

§

impl<L, M> Unpin for Op<L, M>where L: Unpin, M: Unpin,

§

impl<L, M> UnwindSafe for Op<L, M>where L: UnwindSafe, M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. 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 Twhere 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> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.