1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct Expr {
4 #[prost(string, tag = "1")]
5 pub id: ::prost::alloc::string::String,
6 #[prost(message, repeated, tag = "2")]
7 pub children: ::prost::alloc::vec::Vec<Expr>,
8 #[prost(message, optional, tag = "3")]
10 pub kind: ::core::option::Option<Kind>,
11}
12#[derive(Clone, PartialEq, ::prost::Message)]
13pub struct Kind {
14 #[prost(oneof = "kind::Kind", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
16 pub kind: ::core::option::Option<kind::Kind>,
17}
18pub mod kind {
20 #[derive(Clone, PartialEq, ::prost::Message)]
21 pub struct Literal {
22 #[prost(message, optional, tag = "1")]
23 pub value: ::core::option::Option<super::super::scalar::Scalar>,
24 }
25 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
26 pub struct Not {}
27 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
28 pub struct Identity {}
29 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
30 pub struct Merge {}
31 #[derive(Clone, PartialEq, ::prost::Message)]
32 pub struct Pack {
33 #[prost(string, repeated, tag = "1")]
34 pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
35 }
36 #[derive(Clone, PartialEq, ::prost::Message)]
37 pub struct GetItem {
38 #[prost(string, tag = "1")]
39 pub path: ::prost::alloc::string::String,
40 }
41 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
42 pub struct Between {
43 #[prost(bool, tag = "1")]
44 pub lower_strict: bool,
45 #[prost(bool, tag = "2")]
46 pub upper_strict: bool,
47 }
48 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
49 pub struct Like {
50 #[prost(bool, tag = "1")]
51 pub negated: bool,
52 #[prost(bool, tag = "2")]
53 pub case_insensitive: bool,
54 }
55 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
56 pub struct IsNull {}
57 #[derive(
58 Clone,
59 Copy,
60 Debug,
61 PartialEq,
62 Eq,
63 Hash,
64 PartialOrd,
65 Ord,
66 ::prost::Enumeration
67 )]
68 #[repr(i32)]
69 pub enum BinaryOp {
70 Eq = 0,
71 NotEq = 1,
72 Gt = 2,
73 Gte = 3,
74 Lt = 4,
75 Lte = 5,
76 And = 6,
77 Or = 7,
78 }
79 impl BinaryOp {
80 pub fn as_str_name(&self) -> &'static str {
85 match self {
86 Self::Eq => "Eq",
87 Self::NotEq => "NotEq",
88 Self::Gt => "Gt",
89 Self::Gte => "Gte",
90 Self::Lt => "Lt",
91 Self::Lte => "Lte",
92 Self::And => "And",
93 Self::Or => "Or",
94 }
95 }
96 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
98 match value {
99 "Eq" => Some(Self::Eq),
100 "NotEq" => Some(Self::NotEq),
101 "Gt" => Some(Self::Gt),
102 "Gte" => Some(Self::Gte),
103 "Lt" => Some(Self::Lt),
104 "Lte" => Some(Self::Lte),
105 "And" => Some(Self::And),
106 "Or" => Some(Self::Or),
107 _ => None,
108 }
109 }
110 }
111 #[derive(Clone, PartialEq, ::prost::Oneof)]
113 pub enum Kind {
114 #[prost(message, tag = "1")]
115 Literal(Literal),
116 #[prost(enumeration = "BinaryOp", tag = "2")]
117 BinaryOp(i32),
118 #[prost(message, tag = "3")]
119 GetItem(GetItem),
120 #[prost(message, tag = "4")]
121 Identity(Identity),
122 #[prost(message, tag = "5")]
123 Merge(Merge),
124 #[prost(message, tag = "6")]
125 Not(Not),
126 #[prost(message, tag = "7")]
127 Pack(Pack),
128 #[prost(message, tag = "8")]
129 Between(Between),
130 #[prost(message, tag = "9")]
131 Like(Like),
132 #[prost(message, tag = "10")]
133 IsNull(IsNull),
134 }
135}