Report::warn etc virtuals

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2026-03-20 09:05:07 -07:00
parent 73c2cca24c
commit 07c7eeb624
1 changed files with 53 additions and 13 deletions

View File

@ -61,7 +61,11 @@ public:
void report(std::string_view fmt, void report(std::string_view fmt,
Args &&...args) Args &&...args)
{ {
reportLine(sta::vformat(fmt, sta::make_format_args(args...))); report(sta::vformat(fmt, sta::make_format_args(args...)));
}
virtual void report(const std::string &formatted_msg)
{
reportLine(formatted_msg);
} }
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
@ -73,10 +77,14 @@ public:
Args &&...args) Args &&...args)
{ {
if (!isSuppressed(id)) { if (!isSuppressed(id)) {
reportLine(sta::format( warn(id, sta::vformat(fmt, sta::make_format_args(args...)));
"Warning {}: {}", id, sta::vformat(fmt, sta::make_format_args(args...))));
} }
} }
virtual void warn(int id,
const std::string &formatted_msg) {
reportLine(sta::format("Warning {}: {}", id, formatted_msg));
}
// Report warning in a file. // Report warning in a file.
template <typename... Args> template <typename... Args>
void fileWarn(int id, void fileWarn(int id,
@ -86,19 +94,30 @@ public:
Args &&...args) Args &&...args)
{ {
if (!isSuppressed(id)) { if (!isSuppressed(id)) {
reportLine( fileWarn(id, filename, line,
sta::format("Warning {}: {} line {}, {}", id, filename, line, sta::vformat(fmt, sta::make_format_args(args...)));
sta::vformat(fmt, sta::make_format_args(args...))));
} }
} }
virtual void
fileWarn(int id,
std::string_view filename,
int line,
const std::string &formatted_msg) {
reportLine(sta::format("Warning {}: {} line {}, {}",
id, filename, line, formatted_msg));
}
template <typename... Args> template <typename... Args>
void error(int id, void error(int id,
std::string_view fmt, std::string_view fmt,
Args &&...args) Args &&...args)
{ {
std::string msg = sta::vformat(fmt, sta::make_format_args(args...)); error(id, sta::vformat(fmt, sta::make_format_args(args...)));
reportThrowExceptionMsg(sta::format("{} {}", id, msg), isSuppressed(id)); }
virtual void error(int id,
const std::string &formatted_msg)
{
reportThrowExceptionMsg(sta::format("{} {}", id, formatted_msg), isSuppressed(id));
} }
// Report error in a file. // Report error in a file.
template <typename... Args> template <typename... Args>
@ -108,8 +127,16 @@ public:
std::string_view fmt, std::string_view fmt,
Args &&...args) Args &&...args)
{ {
const std::string msg = sta::vformat(fmt, sta::make_format_args(args...)); fileError(id, filename, line,
reportThrowExceptionMsg(sta::format("{} {} line {}, {}", id, filename, line, msg), sta::vformat(fmt, sta::make_format_args(args...)));
}
virtual void fileError(int id,
std::string_view filename,
int line,
const std::string &formatted_msg)
{
reportThrowExceptionMsg(sta::format("{} {} line {}, {}",
id, filename, line, formatted_msg),
isSuppressed(id)); isSuppressed(id));
} }
@ -121,19 +148,32 @@ public:
std::string_view fmt, std::string_view fmt,
Args &&...args) Args &&...args)
{ {
reportLine(sta::format("Critical {}: {}", id, critical(id, sta::vformat(fmt, sta::make_format_args(args...)));
sta::vformat(fmt, sta::make_format_args(args...)))); }
virtual void critical(int id,
const std::string &formatted_msg)
{
reportLine(sta::format("Critical {}: {}", id, formatted_msg));
exit(1); exit(1);
} }
template <typename... Args> template <typename... Args>
void fileCritical(int id, void fileCritical(int id,
std::string_view filename, std::string_view filename,
int line, int line,
std::string_view fmt, std::string_view fmt,
Args &&...args) Args &&...args)
{
fileCritical(id, filename, line,
sta::vformat(fmt, sta::make_format_args(args...)));
}
virtual void fileCritical(int id,
std::string_view filename,
int line,
const std::string &formatted_msg)
{ {
reportLine(sta::format("Critical {}: {} line {}, {}", id, filename, line, reportLine(sta::format("Critical {}: {} line {}, {}", id, filename, line,
sta::vformat(fmt, sta::make_format_args(args...)))); formatted_msg));
exit(1); exit(1);
} }