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

Function MakeOverloadSignature

common/internal/signature.cc:187–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

185}
186
187absl::StatusOr<std::string> MakeOverloadSignature(
188 std::string_view function_name, const std::vector<Type>& args,
189 bool is_member) {
190 std::string result;
191 if (is_member) {
192 if (!args.empty()) {
193 CEL_RETURN_IF_ERROR(AppendTypeDesc(&result, args[0]));
194 } else {
195 return absl::InvalidArgumentError("Member function with no receiver");
196 }
197 result.push_back('.');
198 }
199 AppendEscaped(&result, function_name, /*escape_dot=*/true);
200 result.push_back('(');
201 for (size_t i = is_member ? 1 : 0; i < args.size(); ++i) {
202 CEL_RETURN_IF_ERROR(AppendTypeDesc(&result, args[i]));
203 if (i < args.size() - 1) {
204 result.push_back(',');
205 }
206 }
207 result.push_back(')');
208
209 return result;
210}
211} // namespace cel::common_internal

Callers 2

AddOverloadInternalFunction · 0.85
TEST_PFunction · 0.85

Calls 4

AppendTypeDescFunction · 0.85
AppendEscapedFunction · 0.85
emptyMethod · 0.45
sizeMethod · 0.45

Tested by 1

TEST_PFunction · 0.68