pub enum SourceExpr {
Const {
ty: ColumnTy,
val: Value,
},
Var {
id: Variable,
ty: ColumnTy,
name: String,
},
ExternalCall {
var: Variable,
ty: ColumnTy,
func: ExternalFunctionId,
args: Vec<SyntaxId>,
},
FunctionCall {
func: FunctionId,
atom: AtomId,
args: Vec<SyntaxId>,
},
}Expand description
Representative source syntax for one line of an egglog query, namely, the left-hand-side of an egglog rule.
Variants§
Const
A constant.
Var
A single variable.
ExternalCall
A call to an external (aka primitive) function.
Fields
§
var: VariableThis external function call must be present in the destination query, and bound to this variable
§
func: ExternalFunctionIdFunctionCall
A query of an egglog-level function (i.e. a table).
Fields
§
func: FunctionIdThe egglog function being bound.
§
atom: AtomIdThe atom in the destination query (i.e. at the egglog-bridge level) to which this call corresponds.
Trait Implementations§
Source§impl Clone for SourceExpr
impl Clone for SourceExpr
Source§fn clone(&self) -> SourceExpr
fn clone(&self) -> SourceExpr
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 Freeze for SourceExpr
impl RefUnwindSafe for SourceExpr
impl Send for SourceExpr
impl Sync for SourceExpr
impl Unpin for SourceExpr
impl UnwindSafe for SourceExpr
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