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

Function MakeMapComprehension

extensions/lists_functions.cc:395–406  ·  view source on GitHub ↗

Create an expression equivalent to: target.map(varIdent, mapExpr)

Source from the content-addressed store, hash-verified

393// Create an expression equivalent to:
394// target.map(varIdent, mapExpr)
395absl::optional<Expr> MakeMapComprehension(MacroExprFactory& factory,
396 Expr target, Expr var_ident,
397 Expr map_expr) {
398 auto step = factory.NewCall(
399 google::api::expr::common::CelOperator::ADD, factory.NewAccuIdent(),
400 factory.NewList(factory.NewListElement(std::move(map_expr))));
401 auto var_name = var_ident.ident_expr().name();
402 return factory.NewComprehension(std::move(var_name), std::move(target),
403 factory.AccuVarName(), factory.NewList(),
404 factory.NewBoolConst(true), std::move(step),
405 factory.NewAccuIdent());
406}
407
408// Create an expression equivalent to:
409// cel.bind(varIdent, varExpr, call_expr)

Callers 1

ListSortByMacroFunction · 0.85

Calls 8

NewListElementMethod · 0.80
NewCallMethod · 0.45
NewAccuIdentMethod · 0.45
NewListMethod · 0.45
nameMethod · 0.45
NewComprehensionMethod · 0.45
AccuVarNameMethod · 0.45
NewBoolConstMethod · 0.45

Tested by

no test coverage detected