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")]
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(
42 Clone,
43 Copy,
44 Debug,
45 PartialEq,
46 Eq,
47 Hash,
48 PartialOrd,
49 Ord,
50 ::prost::Enumeration
51 )]
52 #[repr(i32)]
53 pub enum BinaryOp {
54 Eq = 0,
55 NotEq = 1,
56 Gt = 2,
57 Gte = 3,
58 Lt = 4,
59 Lte = 5,
60 And = 6,
61 Or = 7,
62 }
63 impl BinaryOp {
64 pub fn as_str_name(&self) -> &'static str {
69 match self {
70 Self::Eq => "Eq",
71 Self::NotEq => "NotEq",
72 Self::Gt => "Gt",
73 Self::Gte => "Gte",
74 Self::Lt => "Lt",
75 Self::Lte => "Lte",
76 Self::And => "And",
77 Self::Or => "Or",
78 }
79 }
80 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
82 match value {
83 "Eq" => Some(Self::Eq),
84 "NotEq" => Some(Self::NotEq),
85 "Gt" => Some(Self::Gt),
86 "Gte" => Some(Self::Gte),
87 "Lt" => Some(Self::Lt),
88 "Lte" => Some(Self::Lte),
89 "And" => Some(Self::And),
90 "Or" => Some(Self::Or),
91 _ => None,
92 }
93 }
94 }
95 #[derive(Clone, PartialEq, ::prost::Oneof)]
97 pub enum Kind {
98 #[prost(message, tag = "1")]
99 Literal(Literal),
100 #[prost(enumeration = "BinaryOp", tag = "2")]
101 BinaryOp(i32),
102 #[prost(message, tag = "3")]
103 GetItem(GetItem),
104 #[prost(message, tag = "4")]
105 Identity(Identity),
106 #[prost(message, tag = "5")]
107 Merge(Merge),
108 #[prost(message, tag = "6")]
109 Not(Not),
110 #[prost(message, tag = "7")]
111 Pack(Pack),
112 }
113}