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

Function EmitFunctionOverloadConfig

env/env_yaml.cc:896–939  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

894}
895
896void EmitFunctionOverloadConfig(
897 const Config::FunctionOverloadConfig& overload_config, YAML::Emitter& out) {
898 out << YAML::BeginMap;
899 out << YAML::Key << "id";
900 out << YAML::Value << YAML::DoubleQuoted << overload_config.overload_id;
901 if (overload_config.is_member_function) {
902 out << YAML::Key << "target" << YAML::Value;
903 out << YAML::BeginMap;
904 if (overload_config.parameters.empty()) {
905 // This should never happen, but if it does, emit a dynamic type.
906 EmitTypeInfo({.name = "dyn"}, out);
907 } else {
908 EmitTypeInfo(overload_config.parameters[0], out);
909 }
910 out << YAML::EndMap;
911 if (overload_config.parameters.size() > 1) {
912 out << YAML::Key << "args";
913 out << YAML::Value << YAML::BeginSeq;
914 for (size_t i = 1; i < overload_config.parameters.size(); ++i) {
915 out << YAML::BeginMap;
916 EmitTypeInfo(overload_config.parameters[i], out);
917 out << YAML::EndMap;
918 }
919 out << YAML::EndSeq;
920 }
921 } else {
922 if (!overload_config.parameters.empty()) {
923 out << YAML::Key << "args";
924 out << YAML::Value << YAML::BeginSeq;
925 for (const Config::TypeInfo& parameter : overload_config.parameters) {
926 out << YAML::BeginMap;
927 EmitTypeInfo(parameter, out);
928 out << YAML::EndMap;
929 }
930 out << YAML::EndSeq;
931 }
932 }
933 out << YAML::Key << "return";
934 out << YAML::Value << YAML::BeginMap;
935 EmitTypeInfo(overload_config.return_type, out);
936 out << YAML::EndMap;
937
938 out << YAML::EndMap;
939}
940
941void EmitFunctionConfigs(const Config& env_config, YAML::Emitter& out) {
942 const std::vector<Config::FunctionConfig>& function_configs =

Callers 1

EmitFunctionConfigsFunction · 0.85

Calls 3

EmitTypeInfoFunction · 0.85
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected