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")]
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(
56 Clone,
57 Copy,
58 Debug,
59 PartialEq,
60 Eq,
61 Hash,
62 PartialOrd,
63 Ord,
64 ::prost::Enumeration
65 )]
66 #[repr(i32)]
67 pub enum BinaryOp {
68 Eq = 0,
69 NotEq = 1,
70 Gt = 2,
71 Gte = 3,
72 Lt = 4,
73 Lte = 5,
74 And = 6,
75 Or = 7,
76 }
77 impl BinaryOp {
78 pub fn as_str_name(&self) -> &'static str {
83 match self {
84 Self::Eq => "Eq",
85 Self::NotEq => "NotEq",
86 Self::Gt => "Gt",
87 Self::Gte => "Gte",
88 Self::Lt => "Lt",
89 Self::Lte => "Lte",
90 Self::And => "And",
91 Self::Or => "Or",
92 }
93 }
94 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
96 match value {
97 "Eq" => Some(Self::Eq),
98 "NotEq" => Some(Self::NotEq),
99 "Gt" => Some(Self::Gt),
100 "Gte" => Some(Self::Gte),
101 "Lt" => Some(Self::Lt),
102 "Lte" => Some(Self::Lte),
103 "And" => Some(Self::And),
104 "Or" => Some(Self::Or),
105 _ => None,
106 }
107 }
108 }
109 #[derive(Clone, PartialEq, ::prost::Oneof)]
111 pub enum Kind {
112 #[prost(message, tag = "1")]
113 Literal(Literal),
114 #[prost(enumeration = "BinaryOp", tag = "2")]
115 BinaryOp(i32),
116 #[prost(message, tag = "3")]
117 GetItem(GetItem),
118 #[prost(message, tag = "4")]
119 Identity(Identity),
120 #[prost(message, tag = "5")]
121 Merge(Merge),
122 #[prost(message, tag = "6")]
123 Not(Not),
124 #[prost(message, tag = "7")]
125 Pack(Pack),
126 #[prost(message, tag = "8")]
127 Between(Between),
128 #[prost(message, tag = "9")]
129 Like(Like),
130 }
131}