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

Function FunctionDeclFromProto

common/decl_proto.cc:44–70  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42}
43
44absl::StatusOr<FunctionDecl> FunctionDeclFromProto(
45 absl::string_view name,
46 const cel::expr::Decl::FunctionDecl& function,
47 const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
48 google::protobuf::Arena* absl_nonnull arena) {
49 cel::FunctionDecl decl;
50 decl.set_name(name);
51 for (const auto& overload_pb : function.overloads()) {
52 cel::OverloadDecl ovl_decl;
53 ovl_decl.set_id(overload_pb.overload_id());
54 ovl_decl.set_member(overload_pb.is_instance_function());
55 CEL_ASSIGN_OR_RETURN(
56 cel::Type result,
57 TypeFromProto(overload_pb.result_type(), descriptor_pool, arena));
58 ovl_decl.set_result(result);
59 std::vector<cel::Type> param_types;
60 param_types.reserve(overload_pb.params_size());
61 for (const auto& param_type_pb : overload_pb.params()) {
62 CEL_ASSIGN_OR_RETURN(
63 param_types.emplace_back(),
64 TypeFromProto(param_type_pb, descriptor_pool, arena));
65 }
66 ovl_decl.mutable_args() = std::move(param_types);
67 CEL_RETURN_IF_ERROR(decl.AddOverload(std::move(ovl_decl)));
68 }
69 return decl;
70}
71
72absl::StatusOr<absl::variant<VariableDecl, FunctionDecl>> DeclFromProto(
73 const cel::expr::Decl& decl,

Callers 2

DeclFromProtoFunction · 0.85

Calls 7

TypeFromProtoFunction · 0.85
set_memberMethod · 0.80
AddOverloadMethod · 0.80
CEL_ASSIGN_OR_RETURNFunction · 0.50
set_nameMethod · 0.45
set_idMethod · 0.45
set_resultMethod · 0.45

Tested by

no test coverage detected