pub struct PredicateDefinition<Q: QueryContext> {
pub name: String,
pub scope: usize,
pub params: Vec<(String, Variable)>,
pub local_vars: Vec<usize>,
pub predicate: Predicate<Q>,
}
Fields§
§name: String
§scope: usize
§params: Vec<(String, Variable)>
§local_vars: Vec<usize>
§predicate: Predicate<Q>
Implementations§
Source§impl<Q: QueryContext> PredicateDefinition<Q>
impl<Q: QueryContext> PredicateDefinition<Q>
pub fn new( name: String, scope: usize, params: Vec<(String, Variable)>, local_vars: Vec<usize>, predicate: Predicate<Q>, ) -> Self
pub fn call<'a>( &'a self, state: &mut State<'a, Q>, context: &'a Q::ExecContext<'a>, args: &'a [Option<Pattern<Q>>], logs: &mut AnalysisLogs, ) -> GritResult<bool>
Trait Implementations§
Source§impl<Q: Clone + QueryContext> Clone for PredicateDefinition<Q>
impl<Q: Clone + QueryContext> Clone for PredicateDefinition<Q>
Source§fn clone(&self) -> PredicateDefinition<Q>
fn clone(&self) -> PredicateDefinition<Q>
Returns a duplicate of the value. Read more
1.0.0 · 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<Q> Freeze for PredicateDefinition<Q>
impl<Q> RefUnwindSafe for PredicateDefinition<Q>where
<Q as QueryContext>::LeafNodePattern: RefUnwindSafe,
<Q as QueryContext>::CodeSnippet: RefUnwindSafe,
<Q as QueryContext>::NodePattern: RefUnwindSafe,
impl<Q> Send for PredicateDefinition<Q>where
<Q as QueryContext>::LeafNodePattern: Send,
<Q as QueryContext>::CodeSnippet: Send,
<Q as QueryContext>::NodePattern: Send,
impl<Q> Sync for PredicateDefinition<Q>where
<Q as QueryContext>::LeafNodePattern: Sync,
<Q as QueryContext>::CodeSnippet: Sync,
<Q as QueryContext>::NodePattern: Sync,
impl<Q> Unpin for PredicateDefinition<Q>
impl<Q> UnwindSafe for PredicateDefinition<Q>where
<Q as QueryContext>::LeafNodePattern: UnwindSafe + RefUnwindSafe,
<Q as QueryContext>::CodeSnippet: UnwindSafe + RefUnwindSafe,
<Q as QueryContext>::NodePattern: UnwindSafe + RefUnwindSafe,
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> 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