1 package filtering
2
3 import expr "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
4
5
6 const (
7 FunctionFuzzyAnd = "FUZZY"
8 FunctionAnd = "AND"
9 FunctionOr = "OR"
10 FunctionNot = "NOT"
11 FunctionEquals = "="
12 FunctionNotEquals = "!="
13 FunctionLessThan = "<"
14 FunctionLessEquals = "<="
15 FunctionGreaterEquals = ">="
16 FunctionGreaterThan = ">"
17 FunctionHas = ":"
18 FunctionDuration = "duration"
19 FunctionTimestamp = "timestamp"
20 )
21
22
23 func StandardFunctionDeclarations() []*expr.Decl {
24 return []*expr.Decl{
25 StandardFunctionTimestamp(),
26 StandardFunctionDuration(),
27 StandardFunctionHas(),
28 StandardFunctionAnd(),
29 StandardFunctionOr(),
30 StandardFunctionNot(),
31 StandardFunctionLessThan(),
32 StandardFunctionLessEquals(),
33 StandardFunctionGreaterThan(),
34 StandardFunctionGreaterEquals(),
35 StandardFunctionEquals(),
36 StandardFunctionNotEquals(),
37 }
38 }
39
40
41 const (
42 FunctionOverloadTimestampString = FunctionTimestamp + "_string"
43 )
44
45
46 func StandardFunctionTimestamp() *expr.Decl {
47 return NewFunctionDeclaration(
48 FunctionTimestamp,
49 NewFunctionOverload(FunctionOverloadTimestampString, TypeTimestamp, TypeString),
50 )
51 }
52
53
54 const (
55 FunctionOverloadDurationString = FunctionDuration + "_string"
56 )
57
58
59 func StandardFunctionDuration() *expr.Decl {
60 return NewFunctionDeclaration(
61 FunctionDuration,
62 NewFunctionOverload(FunctionOverloadDurationString, TypeDuration, TypeString),
63 )
64 }
65
66
67 const (
68 FunctionOverloadHasString = FunctionHas + "_string"
69 FunctionOverloadHasMapStringString = FunctionHas + "_map_string_string"
70 FunctionOverloadHasListString = FunctionHas + "_list_string"
71 )
72
73
74 func StandardFunctionHas() *expr.Decl {
75 return NewFunctionDeclaration(
76 FunctionHas,
77 NewFunctionOverload(FunctionOverloadHasString, TypeBool, TypeString, TypeString),
78
79 NewFunctionOverload(FunctionOverloadHasMapStringString, TypeBool, TypeMap(TypeString, TypeString), TypeString),
80 NewFunctionOverload(FunctionOverloadHasListString, TypeBool, TypeList(TypeString), TypeString),
81 )
82 }
83
84
85 const (
86 FunctionOverloadAndBool = FunctionAnd + "_bool"
87 )
88
89
90 func StandardFunctionAnd() *expr.Decl {
91 return NewFunctionDeclaration(
92 FunctionAnd,
93 NewFunctionOverload(FunctionOverloadAndBool, TypeBool, TypeBool, TypeBool),
94 )
95 }
96
97
98 const (
99 FunctionOverloadOrBool = FunctionOr + "_bool"
100 )
101
102
103 func StandardFunctionOr() *expr.Decl {
104 return NewFunctionDeclaration(
105 FunctionOr,
106 NewFunctionOverload(FunctionOverloadOrBool, TypeBool, TypeBool, TypeBool),
107 )
108 }
109
110
111 const (
112 FunctionOverloadNotBool = FunctionNot + "_bool"
113 )
114
115
116 func StandardFunctionNot() *expr.Decl {
117 return NewFunctionDeclaration(
118 FunctionNot,
119 NewFunctionOverload(FunctionOverloadNotBool, TypeBool, TypeBool),
120 )
121 }
122
123
124 const (
125 FunctionOverloadLessThanInt = FunctionLessThan + "_int"
126 FunctionOverloadLessThanFloat = FunctionLessThan + "_float"
127 FunctionOverloadLessThanString = FunctionLessThan + "_string"
128 FunctionOverloadLessThanTimestamp = FunctionLessThan + "_timestamp"
129 FunctionOverloadLessThanTimestampString = FunctionLessThan + "_timestamp_string"
130 FunctionOverloadLessThanDuration = FunctionLessThan + "_duration"
131 )
132
133
134 func StandardFunctionLessThan() *expr.Decl {
135 return NewFunctionDeclaration(
136 FunctionLessThan,
137 NewFunctionOverload(FunctionOverloadLessThanInt, TypeBool, TypeInt, TypeInt),
138 NewFunctionOverload(FunctionOverloadLessThanFloat, TypeBool, TypeFloat, TypeFloat),
139 NewFunctionOverload(FunctionOverloadLessThanString, TypeBool, TypeString, TypeString),
140 NewFunctionOverload(FunctionOverloadLessThanTimestamp, TypeBool, TypeTimestamp, TypeTimestamp),
141 NewFunctionOverload(FunctionOverloadLessThanTimestampString, TypeBool, TypeTimestamp, TypeString),
142 NewFunctionOverload(FunctionOverloadLessThanDuration, TypeBool, TypeDuration, TypeDuration),
143 )
144 }
145
146
147 const (
148 FunctionOverloadGreaterThanInt = FunctionGreaterThan + "_int"
149 FunctionOverloadGreaterThanFloat = FunctionGreaterThan + "_float"
150 FunctionOverloadGreaterThanString = FunctionGreaterThan + "_string"
151 FunctionOverloadGreaterThanTimestamp = FunctionGreaterThan + "_timestamp"
152 FunctionOverloadGreaterThanTimestampString = FunctionGreaterThan + "_timestamp_string"
153 FunctionOverloadGreaterThanDuration = FunctionGreaterThan + "_duration"
154 )
155
156
157 func StandardFunctionGreaterThan() *expr.Decl {
158 return NewFunctionDeclaration(
159 FunctionGreaterThan,
160 NewFunctionOverload(FunctionOverloadGreaterThanInt, TypeBool, TypeInt, TypeInt),
161 NewFunctionOverload(FunctionOverloadGreaterThanFloat, TypeBool, TypeFloat, TypeFloat),
162 NewFunctionOverload(FunctionOverloadGreaterThanString, TypeBool, TypeString, TypeString),
163 NewFunctionOverload(FunctionOverloadGreaterThanTimestamp, TypeBool, TypeTimestamp, TypeTimestamp),
164 NewFunctionOverload(FunctionOverloadGreaterThanTimestampString, TypeBool, TypeTimestamp, TypeString),
165 NewFunctionOverload(FunctionOverloadGreaterThanDuration, TypeBool, TypeDuration, TypeDuration),
166 )
167 }
168
169
170 const (
171 FunctionOverloadLessEqualsInt = FunctionLessEquals + "_int"
172 FunctionOverloadLessEqualsFloat = FunctionLessEquals + "_float"
173 FunctionOverloadLessEqualsString = FunctionLessEquals + "_string"
174 FunctionOverloadLessEqualsTimestamp = FunctionLessEquals + "_timestamp"
175 FunctionOverloadLessEqualsTimestampString = FunctionLessEquals + "_timestamp_string"
176 FunctionOverloadLessEqualsDuration = FunctionLessEquals + "_duration"
177 )
178
179
180 func StandardFunctionLessEquals() *expr.Decl {
181 return NewFunctionDeclaration(
182 FunctionLessEquals,
183 NewFunctionOverload(FunctionOverloadLessEqualsInt, TypeBool, TypeInt, TypeInt),
184 NewFunctionOverload(FunctionOverloadLessEqualsFloat, TypeBool, TypeFloat, TypeFloat),
185 NewFunctionOverload(FunctionOverloadLessEqualsString, TypeBool, TypeString, TypeString),
186 NewFunctionOverload(FunctionOverloadLessEqualsTimestamp, TypeBool, TypeTimestamp, TypeTimestamp),
187 NewFunctionOverload(FunctionOverloadLessEqualsTimestampString, TypeBool, TypeTimestamp, TypeString),
188 NewFunctionOverload(FunctionOverloadLessEqualsDuration, TypeBool, TypeDuration, TypeDuration),
189 )
190 }
191
192
193 const (
194 FunctionOverloadGreaterEqualsInt = FunctionGreaterEquals + "_int"
195 FunctionOverloadGreaterEqualsFloat = FunctionGreaterEquals + "_float"
196 FunctionOverloadGreaterEqualsString = FunctionGreaterEquals + "_string"
197 FunctionOverloadGreaterEqualsTimestamp = FunctionGreaterEquals + "_timestamp"
198 FunctionOverloadGreaterEqualsTimestampString = FunctionGreaterEquals + "_timestamp_string"
199 FunctionOverloadGreaterEqualsDuration = FunctionGreaterEquals + "_duration"
200 )
201
202
203 func StandardFunctionGreaterEquals() *expr.Decl {
204 return NewFunctionDeclaration(
205 FunctionGreaterEquals,
206 NewFunctionOverload(FunctionOverloadGreaterEqualsInt, TypeBool, TypeInt, TypeInt),
207 NewFunctionOverload(FunctionOverloadGreaterEqualsFloat, TypeBool, TypeFloat, TypeFloat),
208 NewFunctionOverload(FunctionOverloadGreaterEqualsString, TypeBool, TypeString, TypeString),
209 NewFunctionOverload(FunctionOverloadGreaterEqualsTimestamp, TypeBool, TypeTimestamp, TypeTimestamp),
210 NewFunctionOverload(FunctionOverloadGreaterEqualsTimestampString, TypeBool, TypeTimestamp, TypeString),
211 NewFunctionOverload(FunctionOverloadGreaterEqualsDuration, TypeBool, TypeDuration, TypeDuration),
212 )
213 }
214
215
216 const (
217 FunctionOverloadEqualsBool = FunctionEquals + "_bool"
218 FunctionOverloadEqualsInt = FunctionEquals + "_int"
219 FunctionOverloadEqualsFloat = FunctionEquals + "_float"
220 FunctionOverloadEqualsString = FunctionEquals + "_string"
221 FunctionOverloadEqualsTimestamp = FunctionEquals + "_timestamp"
222 FunctionOverloadEqualsTimestampString = FunctionEquals + "_timestamp_string"
223 FunctionOverloadEqualsDuration = FunctionEquals + "_duration"
224 )
225
226
227 func StandardFunctionEquals() *expr.Decl {
228 return NewFunctionDeclaration(
229 FunctionEquals,
230 NewFunctionOverload(FunctionOverloadEqualsBool, TypeBool, TypeBool, TypeBool),
231 NewFunctionOverload(FunctionOverloadEqualsInt, TypeBool, TypeInt, TypeInt),
232 NewFunctionOverload(FunctionOverloadEqualsFloat, TypeBool, TypeFloat, TypeFloat),
233 NewFunctionOverload(FunctionOverloadEqualsString, TypeBool, TypeString, TypeString),
234 NewFunctionOverload(FunctionOverloadEqualsTimestamp, TypeBool, TypeTimestamp, TypeTimestamp),
235 NewFunctionOverload(FunctionOverloadEqualsTimestampString, TypeBool, TypeTimestamp, TypeString),
236 NewFunctionOverload(FunctionOverloadEqualsDuration, TypeBool, TypeDuration, TypeDuration),
237 )
238 }
239
240
241 const (
242 FunctionOverloadNotEqualsBool = FunctionNotEquals + "_bool"
243 FunctionOverloadNotEqualsInt = FunctionNotEquals + "_int"
244 FunctionOverloadNotEqualsFloat = FunctionNotEquals + "_float"
245 FunctionOverloadNotEqualsString = FunctionNotEquals + "_string"
246 FunctionOverloadNotEqualsTimestamp = FunctionNotEquals + "_timestamp"
247 FunctionOverloadNotEqualsTimestampString = FunctionNotEquals + "_timestamp_string"
248 FunctionOverloadNotEqualsDuration = FunctionNotEquals + "_duration"
249 )
250
251
252 func StandardFunctionNotEquals() *expr.Decl {
253 return NewFunctionDeclaration(
254 FunctionNotEquals,
255 NewFunctionOverload(FunctionOverloadNotEqualsBool, TypeBool, TypeBool, TypeBool),
256 NewFunctionOverload(FunctionOverloadNotEqualsInt, TypeBool, TypeInt, TypeInt),
257 NewFunctionOverload(FunctionOverloadNotEqualsFloat, TypeBool, TypeFloat, TypeFloat),
258 NewFunctionOverload(FunctionOverloadNotEqualsString, TypeBool, TypeString, TypeString),
259 NewFunctionOverload(FunctionOverloadNotEqualsTimestamp, TypeBool, TypeTimestamp, TypeTimestamp),
260 NewFunctionOverload(FunctionOverloadNotEqualsTimestampString, TypeBool, TypeTimestamp, TypeString),
261 NewFunctionOverload(FunctionOverloadNotEqualsDuration, TypeBool, TypeDuration, TypeDuration),
262 )
263 }
264
View as plain text