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

Method Evaluate

eval/eval/container_access_step.cc:289–308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287};
288
289absl::Status ContainerAccessStep::Evaluate(ExecutionFrame* frame) const {
290 if (!frame->value_stack().HasEnough(kNumContainerAccessArguments)) {
291 return absl::Status(
292 absl::StatusCode::kInternal,
293 "Insufficient arguments supplied for ContainerAccess-type expression");
294 }
295
296 Value result;
297 AttributeTrail result_trail;
298 auto args = frame->value_stack().GetSpan(kNumContainerAccessArguments);
299 const AttributeTrail& container_trail =
300 frame->value_stack().GetAttributeSpan(kNumContainerAccessArguments)[0];
301
302 PerformLookup(*frame, args[0], args[1], container_trail,
303 enable_optional_types_, result, result_trail);
304 frame->value_stack().PopAndPush(kNumContainerAccessArguments,
305 std::move(result), std::move(result_trail));
306
307 return absl::OkStatus();
308}
309
310class DirectContainerAccessStep : public DirectExpressionStep {
311 public:

Callers

nothing calls this directly

Calls 5

PerformLookupFunction · 0.85
HasEnoughMethod · 0.80
GetSpanMethod · 0.80
GetAttributeSpanMethod · 0.80
PopAndPushMethod · 0.80

Tested by

no test coverage detected