pub enum Operand {
Prop {
var: String,
field: String,
},
Lit(Value),
Param(String),
Var(String),
FuncCall {
name: String,
args: Vec<Operand>,
},
BinArith {
op: ArithOp,
left: Box<Operand>,
right: Box<Operand>,
},
Index {
base: Box<Operand>,
index: Box<Operand>,
},
Case {
branches: Vec<(Expr, Operand)>,
default: Option<Box<Operand>>,
},
}Variants§
Prop
Lit(Value)
Param(String)
Var(String)
Bare variable reference (used in WITH … WHERE alias > 2).
FuncCall
Scalar function call: toLower(n.name), size(n.tags), type(r), etc.
Supported functions (case-insensitive): toLower, toUpper, size,
coalesce, type, abs, round, textMatches, contains,
startsWith, endsWith, toInteger, toFloat, toString, decay,
key, id.
Unknown names → named error at execution time listing the supported
set (see SCALAR_FUNCS in exec.rs).
BinArith
Arithmetic expression inside a function argument: abs(n.age - 27),
round(n.score * 1.5). Supports +, -, *, /.
Index
List subscript: n.tags[0], n.location[1], $list[$i].
Evaluates base, which must be a Value::List, and returns the
element at index. A negative index counts from the end
(openCypher §3.4.4). An out-of-range index, a non-list base, or a
non-integer index all evaluate to null rather than erroring, so a
subscript behaves like a missing property.
Case
Generic CASE WHEN <cond> THEN <value> [WHEN …] [ELSE <value>] END.
Evaluates each branch’s condition in order, returning the first matching
value; the default (ELSE) or null if none match.
Trait Implementations§
impl StructuralPartialEq for Operand
Auto Trait Implementations§
impl Freeze for Operand
impl RefUnwindSafe for Operand
impl Send for Operand
impl Sync for Operand
impl Unpin for Operand
impl UnsafeUnpin for Operand
impl UnwindSafe for Operand
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.