Enum trustfall_core::ir::Operation
source · #[non_exhaustive]pub enum Operation<LeftT, RightT>where
LeftT: Debug + Clone + PartialEq + Eq,
RightT: Debug + Clone + PartialEq + Eq,{
Show 20 variants
IsNull(LeftT),
IsNotNull(LeftT),
Equals(LeftT, RightT),
NotEquals(LeftT, RightT),
LessThan(LeftT, RightT),
LessThanOrEqual(LeftT, RightT),
GreaterThan(LeftT, RightT),
GreaterThanOrEqual(LeftT, RightT),
Contains(LeftT, RightT),
NotContains(LeftT, RightT),
OneOf(LeftT, RightT),
NotOneOf(LeftT, RightT),
HasPrefix(LeftT, RightT),
NotHasPrefix(LeftT, RightT),
HasSuffix(LeftT, RightT),
NotHasSuffix(LeftT, RightT),
HasSubstring(LeftT, RightT),
NotHasSubstring(LeftT, RightT),
RegexMatches(LeftT, RightT),
NotRegexMatches(LeftT, RightT),
}
Expand description
Operations that can be made in the graph.
In a Trustfall query, the @filter
directive produces Operation
values:
name @filter(op: "=", values: ["$input"])
would produce the Operation::Equals
variant, for example.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
IsNull(LeftT)
IsNotNull(LeftT)
Equals(LeftT, RightT)
NotEquals(LeftT, RightT)
LessThan(LeftT, RightT)
LessThanOrEqual(LeftT, RightT)
GreaterThan(LeftT, RightT)
GreaterThanOrEqual(LeftT, RightT)
Contains(LeftT, RightT)
NotContains(LeftT, RightT)
OneOf(LeftT, RightT)
NotOneOf(LeftT, RightT)
HasPrefix(LeftT, RightT)
NotHasPrefix(LeftT, RightT)
HasSuffix(LeftT, RightT)
NotHasSuffix(LeftT, RightT)
HasSubstring(LeftT, RightT)
NotHasSubstring(LeftT, RightT)
RegexMatches(LeftT, RightT)
NotRegexMatches(LeftT, RightT)
Trait Implementations§
source§impl<LeftT, RightT> Clone for Operation<LeftT, RightT>where
LeftT: Debug + Clone + PartialEq + Eq + Clone,
RightT: Debug + Clone + PartialEq + Eq + Clone,
impl<LeftT, RightT> Clone for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq + Clone, RightT: Debug + Clone + PartialEq + Eq + Clone,
source§impl<LeftT, RightT> Debug for Operation<LeftT, RightT>where
LeftT: Debug + Clone + PartialEq + Eq + Debug,
RightT: Debug + Clone + PartialEq + Eq + Debug,
impl<LeftT, RightT> Debug for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq + Debug, RightT: Debug + Clone + PartialEq + Eq + Debug,
source§impl<'de, LeftT, RightT> Deserialize<'de> for Operation<LeftT, RightT>where
LeftT: Debug + Clone + PartialEq + Eq + Deserialize<'de>,
RightT: Debug + Clone + PartialEq + Eq + Deserialize<'de>,
impl<'de, LeftT, RightT> Deserialize<'de> for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq + Deserialize<'de>, RightT: Debug + Clone + PartialEq + Eq + Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<LeftT, RightT> PartialEq for Operation<LeftT, RightT>where
LeftT: Debug + Clone + PartialEq + Eq + PartialEq,
RightT: Debug + Clone + PartialEq + Eq + PartialEq,
impl<LeftT, RightT> PartialEq for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq + PartialEq, RightT: Debug + Clone + PartialEq + Eq + PartialEq,
source§impl<LeftT, RightT> Serialize for Operation<LeftT, RightT>where
LeftT: Debug + Clone + PartialEq + Eq + Serialize,
RightT: Debug + Clone + PartialEq + Eq + Serialize,
impl<LeftT, RightT> Serialize for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq + Serialize, RightT: Debug + Clone + PartialEq + Eq + Serialize,
impl<LeftT, RightT> Eq for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq + Eq, RightT: Debug + Clone + PartialEq + Eq + Eq,
impl<LeftT, RightT> StructuralEq for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq, RightT: Debug + Clone + PartialEq + Eq,
impl<LeftT, RightT> StructuralPartialEq for Operation<LeftT, RightT>where LeftT: Debug + Clone + PartialEq + Eq, RightT: Debug + Clone + PartialEq + Eq,
Auto Trait Implementations§
impl<LeftT, RightT> RefUnwindSafe for Operation<LeftT, RightT>where LeftT: RefUnwindSafe, RightT: RefUnwindSafe,
impl<LeftT, RightT> Send for Operation<LeftT, RightT>where LeftT: Send, RightT: Send,
impl<LeftT, RightT> Sync for Operation<LeftT, RightT>where LeftT: Sync, RightT: Sync,
impl<LeftT, RightT> Unpin for Operation<LeftT, RightT>where LeftT: Unpin, RightT: Unpin,
impl<LeftT, RightT> UnwindSafe for Operation<LeftT, RightT>where LeftT: UnwindSafe, RightT: 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
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.