pub enum JsonExpression {
Show 38 variants
None,
Bool {
value: String,
},
Number {
value: String,
},
Text {
value: String,
},
Temporal {
value: String,
},
Column {
namespace: String,
shape: String,
name: String,
},
AccessSource {
namespace: String,
shape: String,
name: String,
},
Variable {
name: String,
},
ParameterPositional {
position: String,
},
ParameterNamed {
name: String,
},
GreaterThan {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
GreaterThanEqual {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
LessThan {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
LessThanEqual {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Equal {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
NotEqual {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
And {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Or {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Xor {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Add {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Sub {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Mul {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Div {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Rem {
left: Box<JsonExpression>,
right: Box<JsonExpression>,
},
Alias {
alias: String,
expression: Box<JsonExpression>,
},
Cast {
expression: Box<JsonExpression>,
to: String,
},
Call {
function: String,
args: Vec<JsonExpression>,
},
Tuple {
expressions: Vec<JsonExpression>,
},
List {
expressions: Vec<JsonExpression>,
},
Prefix {
operator: String,
expression: Box<JsonExpression>,
},
Between {
value: Box<JsonExpression>,
lower: Box<JsonExpression>,
upper: Box<JsonExpression>,
},
In {
value: Box<JsonExpression>,
list: Box<JsonExpression>,
negated: bool,
},
Contains {
value: Box<JsonExpression>,
list: Box<JsonExpression>,
},
If {
condition: Box<JsonExpression>,
then: Box<JsonExpression>,
else_ifs: Vec<JsonElseIf>,
else_expr: Option<Box<JsonExpression>>,
},
Map {
expressions: Vec<JsonExpression>,
},
Extend {
expressions: Vec<JsonExpression>,
},
Type {
ty: String,
},
FieldAccess {
object: Box<JsonExpression>,
field: String,
},
}Expand description
JSON-serializable expression for query builders.
This enum mirrors the Expression type but uses simple owned types
instead of lifetimed Fragments, making it suitable for JSON serialization.
Variants§
None
Bool
Number
Text
Temporal
Column
AccessSource
Variable
ParameterPositional
ParameterNamed
GreaterThan
GreaterThanEqual
LessThan
LessThanEqual
Equal
NotEqual
And
Or
Xor
Add
Sub
Mul
Div
Rem
Alias
Cast
Call
Tuple
Fields
§
expressions: Vec<JsonExpression>List
Fields
§
expressions: Vec<JsonExpression>Prefix
Between
In
Contains
If
Fields
§
condition: Box<JsonExpression>§
then: Box<JsonExpression>§
else_ifs: Vec<JsonElseIf>§
else_expr: Option<Box<JsonExpression>>Map
Fields
§
expressions: Vec<JsonExpression>Extend
Fields
§
expressions: Vec<JsonExpression>Type
FieldAccess
Trait Implementations§
Source§impl Clone for JsonExpression
impl Clone for JsonExpression
Source§fn clone(&self) -> JsonExpression
fn clone(&self) -> JsonExpression
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 moreSource§impl Debug for JsonExpression
impl Debug for JsonExpression
Source§impl<'de> Deserialize<'de> for JsonExpression
impl<'de> Deserialize<'de> for JsonExpression
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 From<&Expression> for JsonExpression
impl From<&Expression> for JsonExpression
Source§fn from(expr: &Expression) -> Self
fn from(expr: &Expression) -> Self
Converts to this type from the input type.
Source§impl PartialEq for JsonExpression
impl PartialEq for JsonExpression
Source§impl Serialize for JsonExpression
impl Serialize for JsonExpression
Source§impl TryFrom<JsonExpression> for Expression
impl TryFrom<JsonExpression> for Expression
impl StructuralPartialEq for JsonExpression
Auto Trait Implementations§
impl Freeze for JsonExpression
impl RefUnwindSafe for JsonExpression
impl Send for JsonExpression
impl Sync for JsonExpression
impl Unpin for JsonExpression
impl UnsafeUnpin for JsonExpression
impl UnwindSafe for JsonExpression
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> 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>
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