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, 13, 5, 6, 7, 8, 9, 10, 11, 12")]
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, PartialEq, ::prost::Message)]
30 pub struct Var {
31 #[prost(string, tag = "1")]
32 pub var: ::prost::alloc::string::String,
33 }
34 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
35 pub struct Merge {}
36 #[derive(Clone, PartialEq, ::prost::Message)]
37 pub struct Pack {
38 #[prost(string, repeated, tag = "1")]
39 pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
40 #[prost(bool, tag = "2")]
41 pub nullable: bool,
42 }
43 #[derive(Clone, PartialEq, ::prost::Message)]
44 pub struct GetItem {
45 #[prost(string, tag = "1")]
46 pub path: ::prost::alloc::string::String,
47 }
48 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
49 pub struct Between {
50 #[prost(bool, tag = "1")]
51 pub lower_strict: bool,
52 #[prost(bool, tag = "2")]
53 pub upper_strict: bool,
54 }
55 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
56 pub struct Like {
57 #[prost(bool, tag = "1")]
58 pub negated: bool,
59 #[prost(bool, tag = "2")]
60 pub case_insensitive: bool,
61 }
62 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
63 pub struct IsNull {}
64 #[derive(Clone, PartialEq, ::prost::Message)]
65 pub struct Cast {
66 #[prost(message, optional, tag = "1")]
67 pub target: ::core::option::Option<super::super::dtype::DType>,
68 }
69 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
70 pub struct ListContains {}
71 #[derive(
72 Clone,
73 Copy,
74 Debug,
75 PartialEq,
76 Eq,
77 Hash,
78 PartialOrd,
79 Ord,
80 ::prost::Enumeration
81 )]
82 #[repr(i32)]
83 pub enum BinaryOp {
84 Eq = 0,
85 NotEq = 1,
86 Gt = 2,
87 Gte = 3,
88 Lt = 4,
89 Lte = 5,
90 And = 6,
91 Or = 7,
92 Add = 8,
93 }
94 impl BinaryOp {
95 pub fn as_str_name(&self) -> &'static str {
100 match self {
101 Self::Eq => "Eq",
102 Self::NotEq => "NotEq",
103 Self::Gt => "Gt",
104 Self::Gte => "Gte",
105 Self::Lt => "Lt",
106 Self::Lte => "Lte",
107 Self::And => "And",
108 Self::Or => "Or",
109 Self::Add => "Add",
110 }
111 }
112 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
114 match value {
115 "Eq" => Some(Self::Eq),
116 "NotEq" => Some(Self::NotEq),
117 "Gt" => Some(Self::Gt),
118 "Gte" => Some(Self::Gte),
119 "Lt" => Some(Self::Lt),
120 "Lte" => Some(Self::Lte),
121 "And" => Some(Self::And),
122 "Or" => Some(Self::Or),
123 "Add" => Some(Self::Add),
124 _ => None,
125 }
126 }
127 }
128 #[derive(Clone, PartialEq, ::prost::Oneof)]
130 pub enum Kind {
131 #[prost(message, tag = "1")]
132 Literal(Literal),
133 #[prost(enumeration = "BinaryOp", tag = "2")]
134 BinaryOp(i32),
135 #[prost(message, tag = "3")]
136 GetItem(GetItem),
137 #[prost(message, tag = "4")]
138 Identity(Identity),
139 #[prost(message, tag = "13")]
140 Var(Var),
141 #[prost(message, tag = "5")]
142 Merge(Merge),
143 #[prost(message, tag = "6")]
144 Not(Not),
145 #[prost(message, tag = "7")]
146 Pack(Pack),
147 #[prost(message, tag = "8")]
148 Between(Between),
149 #[prost(message, tag = "9")]
150 Like(Like),
151 #[prost(message, tag = "10")]
152 IsNull(IsNull),
153 #[prost(message, tag = "11")]
154 Cast(Cast),
155 #[prost(message, tag = "12")]
156 ListContains(ListContains),
157 }
158}