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

Function CreateAstFromCheckedExpr

common/ast_proto.cc:493–519  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

491}
492
493absl::StatusOr<std::unique_ptr<Ast>> CreateAstFromCheckedExpr(
494 const CheckedExprPb& checked_expr) {
495 CEL_ASSIGN_OR_RETURN(Expr expr, ExprValueFromProto(checked_expr.expr()));
496 CEL_ASSIGN_OR_RETURN(SourceInfo source_info, ConvertProtoSourceInfoToNative(
497 checked_expr.source_info()));
498
499 Ast::ReferenceMap reference_map;
500 for (const auto& pair : checked_expr.reference_map()) {
501 auto native_reference = ConvertProtoReferenceToNative(pair.second);
502 if (!native_reference.ok()) {
503 return native_reference.status();
504 }
505 reference_map.emplace(pair.first, *(std::move(native_reference)));
506 }
507 Ast::TypeMap type_map;
508 for (const auto& pair : checked_expr.type_map()) {
509 auto native_type = ConvertProtoTypeToNative(pair.second);
510 if (!native_type.ok()) {
511 return native_type.status();
512 }
513 type_map.emplace(pair.first, *(std::move(native_type)));
514 }
515
516 return std::make_unique<Ast>(std::move(expr), std::move(source_info),
517 std::move(reference_map), std::move(type_map),
518 checked_expr.expr_version());
519}
520
521absl::Status AstToCheckedExpr(
522 const Ast& ast, cel::expr::CheckedExpr* absl_nonnull out) {

Callers 5

TEST_PFunction · 0.70
PlanMethod · 0.50
TESTFunction · 0.50
PlanFunction · 0.50

Calls 4

expr_versionMethod · 0.80
ConvertProtoTypeToNativeFunction · 0.70
okMethod · 0.45

Tested by 3

TEST_PFunction · 0.56
TESTFunction · 0.40