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

Method ExprFromProtoImpl

common/ast/expr_proto.cc:288–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

286
287 private:
288 absl::Status ExprFromProtoImpl(const ExprProto& proto, Expr& expr) {
289 switch (proto.expr_kind_case()) {
290 case ExprProto::EXPR_KIND_NOT_SET:
291 expr.Clear();
292 expr.set_id(proto.id());
293 return absl::OkStatus();
294 case ExprProto::kConstExpr:
295 return ConstExprFromProto(proto, proto.const_expr(), expr);
296 case ExprProto::kIdentExpr:
297 return IdentExprFromProto(proto, proto.ident_expr(), expr);
298 case ExprProto::kSelectExpr:
299 return SelectExprFromProto(proto, proto.select_expr(), expr);
300 case ExprProto::kCallExpr:
301 return CallExprFromProto(proto, proto.call_expr(), expr);
302 case ExprProto::kListExpr:
303 return ListExprFromProto(proto, proto.list_expr(), expr);
304 case ExprProto::kStructExpr:
305 if (proto.struct_expr().message_name().empty()) {
306 return MapExprFromProto(proto, proto.struct_expr(), expr);
307 }
308 return StructExprFromProto(proto, proto.struct_expr(), expr);
309 case ExprProto::kComprehensionExpr:
310 return ComprehensionExprFromProto(proto, proto.comprehension_expr(),
311 expr);
312 default:
313 return absl::InvalidArgumentError(
314 absl::StrCat("unexpected ExprKindCase: ",
315 static_cast<int>(proto.expr_kind_case())));
316 }
317 }
318
319 absl::Status ConstExprFromProto(const ExprProto& proto,
320 const ConstantProto& const_proto,

Callers

nothing calls this directly

Calls 4

ClearMethod · 0.45
set_idMethod · 0.45
idMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected