pub enum Expression {
Show 32 variants
Literal(Value),
Variable(String),
Property {
object: Box<Expression>,
property: String,
},
StructField {
base: Box<Expression>,
field: String,
},
Binary {
left: Box<Expression>,
op: BinaryOperator,
right: Box<Expression>,
},
Unary {
op: UnaryOperator,
operand: Box<Expression>,
},
Function {
name: String,
args: Vec<FunctionArg>,
},
Aggregate {
func: AggregateFunctionKind,
args: Vec<Expression>,
distinct: bool,
filter: Option<Box<Expression>>,
},
List(Vec<Expression>),
Map(Vec<(String, Expression)>),
Case {
test_expr: Option<Box<Expression>>,
conditions: Vec<(Expression, Expression)>,
default: Option<Box<Expression>>,
},
TypeCast {
expression: Box<Expression>,
target_type: DataType,
},
Subscript {
collection: Box<Expression>,
index: Box<Expression>,
},
Range {
collection: Box<Expression>,
start: Option<Box<Expression>>,
end: Option<Box<Expression>>,
},
Path(Vec<Expression>),
Label(String),
ListComprehension {
variable: String,
source: Box<Expression>,
filter: Option<Box<Expression>>,
map: Option<Box<Expression>>,
},
LabelTagProperty {
tag: Box<Expression>,
property: String,
},
TagProperty {
tag_name: String,
property: String,
},
EdgeProperty {
edge_name: String,
property: String,
},
Predicate {
func: String,
args: Vec<Expression>,
},
Reduce {
accumulator: String,
initial: Box<Expression>,
variable: String,
source: Box<Expression>,
mapping: Box<Expression>,
},
PathBuild(Vec<Expression>),
Parameter(String),
SessionVariable(String),
Vector(Vec<f32>),
WindowFunction {
name: String,
args: Vec<Expression>,
over_partition_by: Vec<Expression>,
over_order_by: Vec<Expression>,
over_order_desc: Vec<bool>,
},
Exists {
body: Box<SubqueryBody>,
},
In {
expr: Box<Expression>,
subquery: Box<SubqueryBody>,
negated: bool,
},
CountSubquery {
body: Box<SubqueryBody>,
},
ScalarSubquery {
body: Box<SubqueryBody>,
},
Lambda {
params: Vec<String>,
body: Box<Expression>,
},
}Expand description
Unified Expression Type
An enumeration of expressions containing location information (span fields) for:
- Parser layer: error localization and reporting
- Core Layer: Type Checking and Enforcement
- Serialization: storage and transmission
Variants§
Literal(Value)
literal value
Variable(String)
variable reference
Property
Property Access
StructField
STRUCT field access
Accesses a named field of a STRUCT value, e.g. addr.city.
Binary
binary operation
Unary
one-dimensional operation
Function
function call
Aggregate
aggregate function (math.)
List(Vec<Expression>)
list literal
Map(Vec<(String, Expression)>)
mapping literal
Case
conditional expression
Fields
test_expr: Option<Box<Expression>>conditions: Vec<(Expression, Expression)>default: Option<Box<Expression>>TypeCast
type conversion
Subscript
subscript access
Range
range expression
Path(Vec<Expression>)
path expression
Label(String)
tag expression
ListComprehension
List Derivative Expressions
LabelTagProperty
Dynamic access to tag attributes
Used to access tag properties dynamically, e.g. tagName.propertyName
where tagName is a variable or tag expression
TagProperty
Tag Attribute Access
Used to access properties on the vertex tag, e.g. tagName.propertyName
EdgeProperty
Edge Attribute Access
Used to access attributes on an edge type
Predicate
predicate expression (math.)
Used to implement predicate functions such as FILTER, ALL, ANY, EXISTS, etc.
Reduce
Reduce expression
Used to implement the REDUCE function
PathBuild(Vec<Expression>)
path construction expression
Used for building paths, such as path(v1, e1, v2)
Parameter(String)
Query parameter expression
Used to represent query parameters, e.g. @param.
SessionVariable(String)
Session variable expression
Used to represent session-scoped variables, e.g. $name.
Resolved from the session variable snapshot at execution time;
distinct from Expression::Parameter so EXPLAIN, type inference
and error reporting can tell the two apart.
Vector(Vec<f32>)
Vector literal expression
Represents vector literals like VECTOR[0.1, 0.2, 0.3] or [0.1, 0.2]::VECTOR
WindowFunction
Window function expression with OVER clause
Fields
args: Vec<Expression>Arguments to the window function
over_partition_by: Vec<Expression>PARTITION BY expressions
over_order_by: Vec<Expression>ORDER BY expressions
Exists
EXISTS subquery expression
Evaluates to true if the subquery pattern has at least one match.
Syntax: EXISTS { pattern } or EXISTS(pattern)
Fields
body: Box<SubqueryBody>The subquery body (WHERE clause condition or pattern reference)
In
IN subquery expression
Evaluates to true if expr is in the result set of the subquery.
Syntax: expr IN { MATCH ... RETURN ... }
CountSubquery
COUNT subquery expression
Evaluates to the number of rows returned by the subquery.
Syntax: COUNT { MATCH ... RETURN ... }
Fields
body: Box<SubqueryBody>The subquery body
ScalarSubquery
Scalar subquery expression
Evaluates to the first column of the first row returned by the
subquery, or NULL when the subquery returns no rows.
Syntax: SUBQUERY { MATCH ... RETURN <single expr> }
Fields
body: Box<SubqueryBody>The subquery body (must carry a single-column return_expr)
Lambda
Lambda expression
Represents an anonymous function, e.g. x -> x + 1 or (x, y) -> x + y.
Used as callbacks for higher-order list functions like list_transform, list_filter.
Implementations§
Source§impl Expression
impl Expression
Sourcepub fn literal(value: impl Into<Value>) -> Expression
pub fn literal(value: impl Into<Value>) -> Expression
Creating literal expressions
Sourcepub fn variable(name: impl Into<String>) -> Expression
pub fn variable(name: impl Into<String>) -> Expression
Create a variable expression.
Sourcepub fn property(object: Expression, property: impl Into<String>) -> Expression
pub fn property(object: Expression, property: impl Into<String>) -> Expression
Create attribute access expressions
Sourcepub fn struct_field(base: Expression, field: impl Into<String>) -> Expression
pub fn struct_field(base: Expression, field: impl Into<String>) -> Expression
Create a STRUCT field access expression.
Sourcepub fn binary(
left: Expression,
op: BinaryOperator,
right: Expression,
) -> Expression
pub fn binary( left: Expression, op: BinaryOperator, right: Expression, ) -> Expression
Create a binary operation expression
Sourcepub fn unary(op: UnaryOperator, operand: Expression) -> Expression
pub fn unary(op: UnaryOperator, operand: Expression) -> Expression
Create a unary operation expression.
Sourcepub fn function(name: impl Into<String>, args: Vec<Expression>) -> Expression
pub fn function(name: impl Into<String>, args: Vec<Expression>) -> Expression
Create a function call expression with positional arguments.
Sourcepub fn function_with_args(
name: impl Into<String>,
args: Vec<FunctionArg>,
) -> Expression
pub fn function_with_args( name: impl Into<String>, args: Vec<FunctionArg>, ) -> Expression
Create a function call expression with mixed positional and named arguments.
Sourcepub fn aggregate(
func: AggregateFunctionKind,
arg: Expression,
distinct: bool,
) -> Expression
pub fn aggregate( func: AggregateFunctionKind, arg: Expression, distinct: bool, ) -> Expression
Create an aggregate function expression.
Sourcepub fn aggregate_with_filter(
func: AggregateFunctionKind,
arg: Expression,
distinct: bool,
filter: Expression,
) -> Expression
pub fn aggregate_with_filter( func: AggregateFunctionKind, arg: Expression, distinct: bool, filter: Expression, ) -> Expression
Create an aggregate function expression with a FILTER clause.
Sourcepub fn aggregate_multi(
func: AggregateFunctionKind,
args: Vec<Expression>,
distinct: bool,
) -> Expression
pub fn aggregate_multi( func: AggregateFunctionKind, args: Vec<Expression>, distinct: bool, ) -> Expression
Create a multi-argument aggregate function expression (e.g. CORR, COVAR).
Sourcepub fn list(items: Vec<Expression>) -> Expression
pub fn list(items: Vec<Expression>) -> Expression
Create a list expression.
Sourcepub fn map(pairs: Vec<(impl Into<String>, Expression)>) -> Expression
pub fn map(pairs: Vec<(impl Into<String>, Expression)>) -> Expression
Create a mapping expression
Sourcepub fn case(
test_expr: Option<Expression>,
conditions: Vec<(Expression, Expression)>,
default: Option<Expression>,
) -> Expression
pub fn case( test_expr: Option<Expression>, conditions: Vec<(Expression, Expression)>, default: Option<Expression>, ) -> Expression
Create a conditional expression
Sourcepub fn cast(expression: Expression, target_type: DataType) -> Expression
pub fn cast(expression: Expression, target_type: DataType) -> Expression
Create a type conversion expression.
Sourcepub fn subscript(collection: Expression, index: Expression) -> Expression
pub fn subscript(collection: Expression, index: Expression) -> Expression
Create an subscript access expression.
Sourcepub fn range(
collection: Expression,
start: Option<Expression>,
end: Option<Expression>,
) -> Expression
pub fn range( collection: Expression, start: Option<Expression>, end: Option<Expression>, ) -> Expression
Create a range expression
Sourcepub fn path(items: Vec<Expression>) -> Expression
pub fn path(items: Vec<Expression>) -> Expression
Create a path expression
Sourcepub fn label(name: impl Into<String>) -> Expression
pub fn label(name: impl Into<String>) -> Expression
Create a tag expression
Sourcepub fn list_comprehension(
variable: impl Into<String>,
source: Expression,
filter: Option<Expression>,
map: Option<Expression>,
) -> Expression
pub fn list_comprehension( variable: impl Into<String>, source: Expression, filter: Option<Expression>, map: Option<Expression>, ) -> Expression
Create a list comprehension expression.
Sourcepub fn label_tag_property(
tag: Expression,
property: impl Into<String>,
) -> Expression
pub fn label_tag_property( tag: Expression, property: impl Into<String>, ) -> Expression
Create dynamic access expressions for tag attributes
Sourcepub fn tag_property(
tag_name: impl Into<String>,
property: impl Into<String>,
) -> Expression
pub fn tag_property( tag_name: impl Into<String>, property: impl Into<String>, ) -> Expression
Create tag attribute access expressions
Sourcepub fn edge_property(
edge_name: impl Into<String>,
property: impl Into<String>,
) -> Expression
pub fn edge_property( edge_name: impl Into<String>, property: impl Into<String>, ) -> Expression
Create an edge attribute access expression.
Sourcepub fn predicate(func: impl Into<String>, args: Vec<Expression>) -> Expression
pub fn predicate(func: impl Into<String>, args: Vec<Expression>) -> Expression
Create a predicate expression.
Sourcepub fn reduce(
accumulator: impl Into<String>,
initial: Expression,
variable: impl Into<String>,
source: Expression,
mapping: Expression,
) -> Expression
pub fn reduce( accumulator: impl Into<String>, initial: Expression, variable: impl Into<String>, source: Expression, mapping: Expression, ) -> Expression
Create a Reduce expression.
Sourcepub fn path_build(items: Vec<Expression>) -> Expression
pub fn path_build(items: Vec<Expression>) -> Expression
Create a path construction expression
Sourcepub fn parameter(name: impl Into<String>) -> Expression
pub fn parameter(name: impl Into<String>) -> Expression
Create a parameter expression
Sourcepub fn session_variable(name: impl Into<String>) -> Expression
pub fn session_variable(name: impl Into<String>) -> Expression
Create a session variable expression
Sourcepub fn vector(data: Vec<f32>) -> Expression
pub fn vector(data: Vec<f32>) -> Expression
Create a vector literal expression
Sourcepub fn exists(body: SubqueryBody) -> Expression
pub fn exists(body: SubqueryBody) -> Expression
Create an EXISTS subquery expression
Sourcepub fn in_subquery(
expr: Expression,
subquery: SubqueryBody,
negated: bool,
) -> Expression
pub fn in_subquery( expr: Expression, subquery: SubqueryBody, negated: bool, ) -> Expression
Create an IN subquery expression
Sourcepub fn count_subquery(body: SubqueryBody) -> Expression
pub fn count_subquery(body: SubqueryBody) -> Expression
Create a COUNT subquery expression
Sourcepub fn scalar_subquery(body: SubqueryBody) -> Expression
pub fn scalar_subquery(body: SubqueryBody) -> Expression
Create a scalar subquery expression
Sourcepub fn lambda(params: Vec<String>, body: Expression) -> Expression
pub fn lambda(params: Vec<String>, body: Expression) -> Expression
Create a Lambda expression
Sourcepub fn bool(value: bool) -> Expression
pub fn bool(value: bool) -> Expression
Creating a boolean literal
Sourcepub fn int(value: i32) -> Expression
pub fn int(value: i32) -> Expression
Creating integer literal values (i32)
Sourcepub fn bigint(value: i64) -> Expression
pub fn bigint(value: i64) -> Expression
Creating bigint literal values (i64)
Sourcepub fn float(value: f32) -> Expression
pub fn float(value: f32) -> Expression
Creating a floating-point numeric literal (f32)
Sourcepub fn double(value: f64) -> Expression
pub fn double(value: f64) -> Expression
Creating a double-precision numeric literal (f64)
Sourcepub fn string(value: impl AsRef<str>) -> Expression
pub fn string(value: impl AsRef<str>) -> Expression
Creating a string literal
Sourcepub fn null() -> Expression
pub fn null() -> Expression
Create an empty literal value.
Sourcepub fn modulo(left: Expression, right: Expression) -> Expression
pub fn modulo(left: Expression, right: Expression) -> Expression
Create a modulus expression
Sourcepub fn eq(left: Expression, right: Expression) -> Expression
pub fn eq(left: Expression, right: Expression) -> Expression
Creating an expression that equals a certain value…
Sourcepub fn ne(left: Expression, right: Expression) -> Expression
pub fn ne(left: Expression, right: Expression) -> Expression
Creating something does not equal expressing it in words.
Sourcepub fn lt(left: Expression, right: Expression) -> Expression
pub fn lt(left: Expression, right: Expression) -> Expression
Create an expression that is smaller than the given one.
Sourcepub fn le(left: Expression, right: Expression) -> Expression
pub fn le(left: Expression, right: Expression) -> Expression
Create an expression that is less than or equal to…
Sourcepub fn gt(left: Expression, right: Expression) -> Expression
pub fn gt(left: Expression, right: Expression) -> Expression
Create something that is greater than the expression…
Sourcepub fn ge(left: Expression, right: Expression) -> Expression
pub fn ge(left: Expression, right: Expression) -> Expression
Create an expression that is greater than or equal to…
Sourcepub fn and(left: Expression, right: Expression) -> Expression
pub fn and(left: Expression, right: Expression) -> Expression
Creating logic and expressions
Sourcepub fn or(left: Expression, right: Expression) -> Expression
pub fn or(left: Expression, right: Expression) -> Expression
Create a logical statement or expression.
Sourcepub fn is_null(operand: Expression) -> Expression
pub fn is_null(operand: Expression) -> Expression
Creating an IS NULL expression
Sourcepub fn is_not_null(operand: Expression) -> Expression
pub fn is_not_null(operand: Expression) -> Expression
Creating an IS NOT NULL expression
Source§impl Expression
impl Expression
Sourcepub fn to_expression_string(&self) -> String
pub fn to_expression_string(&self) -> String
Convert the expression into a string representation.
Generate an expression string similar to SQL/Cypher.
Source§impl Expression
impl Expression
Sourcepub fn is_constant(&self) -> bool
pub fn is_constant(&self) -> bool
Checking if an expression is a constant
Constant expressions can be determined at compile time and do not require run-time evaluation.
Sourcepub fn contains_aggregate(&self) -> bool
pub fn contains_aggregate(&self) -> bool
Check if the expression contains an aggregate function
Used to identify expressions that need to be evaluated in a GROUP BY context.
Sourcepub fn get_variables(&self) -> Vec<String>
pub fn get_variables(&self) -> Vec<String>
Get the names of all variables in the expression
Returns a list of de-duplicated variable names.
Sourcepub fn is_literal(&self) -> bool
pub fn is_literal(&self) -> bool
Checks if it is a literal expression
Sourcepub fn as_literal(&self) -> Option<&Value>
pub fn as_literal(&self) -> Option<&Value>
Get the literal value (if it is a literal)
Sourcepub fn is_variable(&self) -> bool
pub fn is_variable(&self) -> bool
Checking for variable expressions
Sourcepub fn as_variable(&self) -> Option<&str>
pub fn as_variable(&self) -> Option<&str>
Get variable name (if variable)
Sourcepub fn is_aggregate(&self) -> bool
pub fn is_aggregate(&self) -> bool
Checking for Aggregate Expressions
Sourcepub fn is_property(&self) -> bool
pub fn is_property(&self) -> bool
Checks if it is an attribute access expression
Sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Check if it is a function call expression
Sourcepub fn is_parameter(&self) -> bool
pub fn is_parameter(&self) -> bool
Checks if it is a parameter expression
Sourcepub fn is_session_variable(&self) -> bool
pub fn is_session_variable(&self) -> bool
Checks if it is a session variable expression
Sourcepub fn as_parameter(&self) -> Option<&str>
pub fn as_parameter(&self) -> Option<&str>
Get the parameter name (if it is a parameter)
Sourcepub fn is_subscript(&self) -> bool
pub fn is_subscript(&self) -> bool
Checking for subscript access expressions
Sourcepub fn function_name(&self) -> Option<&str>
pub fn function_name(&self) -> Option<&str>
Get the function name (if it’s a function call)
Sourcepub fn aggregate_function_name(&self) -> Option<&str>
pub fn aggregate_function_name(&self) -> Option<&str>
Get the name of the aggregate function (if it is an aggregate expression)
Sourcepub fn is_path_build(&self) -> bool
pub fn is_path_build(&self) -> bool
Checks if it is a path building expression
Sourcepub fn is_type_cast(&self) -> bool
pub fn is_type_cast(&self) -> bool
Check whether it is a type conversion expression
Sourcepub fn is_list_comprehension(&self) -> bool
pub fn is_list_comprehension(&self) -> bool
Checking for List Derivation Expressions
Sourcepub fn is_count_subquery(&self) -> bool
pub fn is_count_subquery(&self) -> bool
Checks for a COUNT subquery expression
Sourcepub fn is_scalar_subquery(&self) -> bool
pub fn is_scalar_subquery(&self) -> bool
Checks for a scalar subquery expression
Sourcepub fn as_function_name(&self) -> Option<String>
pub fn as_function_name(&self) -> Option<String>
Gets the function name (if it is a function call)
Sourcepub fn as_property_name(&self) -> Option<String>
pub fn as_property_name(&self) -> Option<String>
Get the attribute name (in case of attribute access)
Sourcepub fn as_label_name(&self) -> Option<String>
pub fn as_label_name(&self) -> Option<String>
Get the tag name (if it’s a tag expression)
Sourcepub fn as_parameter_name(&self) -> Option<String>
pub fn as_parameter_name(&self) -> Option<String>
Get the parameter name (if it is a parameter expression)
Sourcepub fn as_session_variable_name(&self) -> Option<String>
pub fn as_session_variable_name(&self) -> Option<String>
Get the session variable name (if it is a session variable expression)
Source§impl Expression
impl Expression
Sourcepub fn estimate_memory_iterative(&self) -> usize
pub fn estimate_memory_iterative(&self) -> usize
Estimate memory using iterative approach to avoid stack overflow This is useful for deeply nested expressions
Sourcepub fn node_count(&self) -> usize
pub fn node_count(&self) -> usize
Get approximate node count for complexity estimation
Source§impl Expression
impl Expression
Sourcepub fn children(&self) -> Vec<&Expression>
pub fn children(&self) -> Vec<&Expression>
Obtain all the subexpressions of the expression.
Return a vector that contains all the direct subexpressions.
Sourcepub fn children_mut(&mut self) -> Vec<&mut Expression>
pub fn children_mut(&mut self) -> Vec<&mut Expression>
Obtaining the variable subexpression
Return a vector containing all the directly mutable subexpressions.
Sourcepub fn traverse_preorder<F>(&self, callback: &mut F)where
F: FnMut(&Expression),
pub fn traverse_preorder<F>(&self, callback: &mut F)where
F: FnMut(&Expression),
Traversing the expression tree (pre-order traversal)
Perform a pre-order traversal of the expression tree, and call the callback function for each node.
Sourcepub fn traverse_postorder<F>(&self, callback: &mut F)where
F: FnMut(&Expression),
pub fn traverse_postorder<F>(&self, callback: &mut F)where
F: FnMut(&Expression),
Traversing the expression tree (post-order traversal)
Perform a post-order traversal of the expression tree, and call the callback function for each node.
Sourcepub fn find<F>(&self, predicate: &F) -> Option<&Expression>
pub fn find<F>(&self, predicate: &F) -> Option<&Expression>
Find the expression that meets the conditions.
Find the first expression in the expression tree that meets the specified condition.
Sourcepub fn find_all<'a, F>(
&'a self,
predicate: &F,
results: &mut Vec<&'a Expression>,
)
pub fn find_all<'a, F>( &'a self, predicate: &F, results: &mut Vec<&'a Expression>, )
Find all expressions that meet the specified conditions.
Find all expressions in the expression tree that meet the specified conditions.
Sourcepub fn transform<F>(&self, transformer: &F) -> Expression
pub fn transform<F>(&self, transformer: &F) -> Expression
Transform the expression tree
Transform the expression tree and return the new expression tree.
Source§impl Expression
impl Expression
Sourcepub fn deduce_type(&self) -> DataType
pub fn deduce_type(&self) -> DataType
Deriving the data type of an expression
Derive the return type of an expression from its structure and operators.
Returns DataType::Unknown if the type cannot be determined without
schema/binding information (the binder completes these paths), and
DataType::Empty only for the explicit Value::Empty.
Trait Implementations§
Source§impl Add for Expression
impl Add for Expression
Source§type Output = Expression
type Output = Expression
+ operator.Source§fn add(self, rhs: Expression) -> <Expression as Add>::Output
fn add(self, rhs: Expression) -> <Expression as Add>::Output
+ operation. Read moreSource§impl Clone for Expression
impl Clone for Expression
Source§fn clone(&self) -> Expression
fn clone(&self) -> Expression
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Expression
impl Debug for Expression
Source§impl<'de> Deserialize<'de> for Expression
impl<'de> Deserialize<'de> for Expression
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Expression, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Expression, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for Expression
impl Display for Expression
Source§impl Div for Expression
impl Div for Expression
Source§type Output = Expression
type Output = Expression
/ operator.Source§fn div(self, rhs: Expression) -> <Expression as Div>::Output
fn div(self, rhs: Expression) -> <Expression as Div>::Output
/ operation. Read moreSource§impl From<Arc<ExpressionMeta>> for Expression
Extract the core expressions from Arc ExpressionMeta.
impl From<Arc<ExpressionMeta>> for Expression
Extract the core expressions from Arc ExpressionMeta.
Source§fn from(meta: Arc<ExpressionMeta>) -> Expression
fn from(meta: Arc<ExpressionMeta>) -> Expression
Source§impl From<ExpressionMeta> for Expression
Extract the core expressions from ExpressionMeta.
impl From<ExpressionMeta> for Expression
Extract the core expressions from ExpressionMeta.
Source§fn from(meta: ExpressionMeta) -> Expression
fn from(meta: ExpressionMeta) -> Expression
Source§impl MemoryEstimatable for Expression
impl MemoryEstimatable for Expression
fn estimate_memory(&self) -> usize
Source§impl Mul for Expression
impl Mul for Expression
Source§type Output = Expression
type Output = Expression
* operator.Source§fn mul(self, rhs: Expression) -> <Expression as Mul>::Output
fn mul(self, rhs: Expression) -> <Expression as Mul>::Output
* operation. Read moreSource§impl Neg for Expression
impl Neg for Expression
Source§impl Not for Expression
impl Not for Expression
Source§impl PartialEq for Expression
impl PartialEq for Expression
Source§impl Serialize for Expression
impl Serialize for Expression
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for Expression
Source§impl Sub for Expression
impl Sub for Expression
Source§type Output = Expression
type Output = Expression
- operator.Source§fn sub(self, rhs: Expression) -> <Expression as Sub>::Output
fn sub(self, rhs: Expression) -> <Expression as Sub>::Output
- operation. Read moreAuto Trait Implementations§
impl Freeze for Expression
impl RefUnwindSafe for Expression
impl Send for Expression
impl Sync for Expression
impl Unpin for Expression
impl UnsafeUnpin for Expression
impl UnwindSafe for Expression
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more