MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / RegisterExtensionFunctions

Function RegisterExtensionFunctions

eval/public/extension_func_registrar.cc:172–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172absl::Status RegisterExtensionFunctions(CelFunctionRegistry* registry) {
173 auto status = FunctionAdapter<CelValue, absl::Time, absl::Time, absl::Time>::
174 CreateAndRegister(
175 "between", true,
176 [](Arena* arena, absl::Time ts, absl::Time start, absl::Time stop)
177 -> CelValue { return BetweenTs(arena, ts, start, stop); },
178 registry);
179 if (!status.ok()) return status;
180
181 status = FunctionAdapter<CelValue, absl::Time, CelValue::StringHolder,
182 CelValue::StringHolder>::
183 CreateAndRegister(
184 "between", true,
185 [](Arena* arena, absl::Time ts, CelValue::StringHolder start,
186 CelValue::StringHolder stop) -> CelValue {
187 return BetweenStr(arena, ts, start.value(), stop.value());
188 },
189 registry);
190 if (!status.ok()) return status;
191
192 status = FunctionAdapter<CelValue, absl::Time, CelValue::StringHolder>::
193 CreateAndRegister(
194 "date", true,
195 [](Arena* arena, absl::Time ts, CelValue::StringHolder tz)
196 -> CelValue { return GetDate(arena, ts, tz.value()); },
197 registry);
198 if (!status.ok()) return status;
199
200 status = FunctionAdapter<CelValue, absl::Time>::CreateAndRegister(
201 "date", true,
202 [](Arena* arena, absl::Time ts) -> CelValue {
203 return GetDateUTC(arena, ts);
204 },
205 registry);
206 if (!status.ok()) return status;
207
208 status = FunctionAdapter<CelValue, absl::Time, CelValue::StringHolder>::
209 CreateAndRegister(
210 "timeOfDay", true,
211 [](Arena* arena, absl::Time ts, CelValue::StringHolder tz)
212 -> CelValue { return GetTimeOfDay(arena, ts, tz.value()); },
213 registry);
214 if (!status.ok()) return status;
215
216 status = FunctionAdapter<CelValue, absl::Time>::CreateAndRegister(
217 "timeOfDay", true,
218 [](Arena* arena, absl::Time ts) -> CelValue {
219 return GetTimeOfDayUTC(arena, ts);
220 },
221 registry);
222 if (!status.ok()) return status;
223
224 status = FunctionAdapter<CelValue, const google::protobuf::Message*,
225 const google::protobuf::Message*, const google::protobuf::Message*>::
226 CreateAndRegister(
227 "between", true,
228 [](Arena* arena, const google::protobuf::Message* tod,
229 const google::protobuf::Message* start,

Callers 1

SetUpMethod · 0.85

Calls 10

BetweenTsFunction · 0.85
BetweenStrFunction · 0.85
GetDateUTCFunction · 0.85
GetTimeOfDayFunction · 0.85
GetTimeOfDayUTCFunction · 0.85
BetweenToDFunction · 0.85
BetweenToDStrFunction · 0.85
GetDateFunction · 0.70
okMethod · 0.45
valueMethod · 0.45

Tested by 1

SetUpMethod · 0.68