return std::format("\n}} // namespace {}\n\n", name);
}
std::string ret(const std::string& val)
{
return std::format("return {};\n", val);
}
std::string func(const std::string& ret,
const std::string& name,
std::vector<param_t> params)
std::vector<param_t> params,
bool decl)
{
static const auto format = [](const param_t& param)
{ return param.name.empty() ? param.type : param.type + ' ' + param.name; };
std::string res;
res += ret + ' ';
res += name + '(';
if (!params.empty()) {
res += params[0].type + ' ' + params[0].name;
res += format(params[0]);
for (std::size_t i = 1; i < params.size(); i++) {
res += ", " + params[i].type + ' ' + params[i].name;
res += ", " + format(params[i]);
}
}
res += ") {\n";
res += ')';
res += decl ? ";\n" : " {\n";
return res;
}