Porytiles
Loading...
Searching...
No Matches
filtered_user_diagnostics.cpp
Go to the documentation of this file.
2
3namespace porytiles {
4
6 gsl::not_null<const TextFormatter *> format,
7 gsl::not_null<const UserDiagnostics *> inner,
8 DiagnosticTagFilter warning_filter,
9 DiagnosticTagFilter remark_filter)
10 : UserDiagnostics{format}, inner_{inner}, warning_filter_{std::move(warning_filter)},
11 remark_filter_{std::move(remark_filter)}
12{
13}
14
15void FilteredUserDiagnostics::remark(const std::string &tag, const std::vector<std::string> &lines) const
16{
17 if (remark_filter_.should_show(tag)) {
18 inner_->remark(tag, lines);
19 }
20}
21
22void FilteredUserDiagnostics::remark_note(const std::string &tag, const std::vector<std::string> &lines) const
23{
24 if (remark_filter_.should_show(tag)) {
25 inner_->remark_note(tag, lines);
26 }
27}
28
29void FilteredUserDiagnostics::warning(const std::string &tag, const std::vector<std::string> &lines) const
30{
31 if (warning_filter_.should_show(tag)) {
32 inner_->warning(tag, lines);
33 }
34}
35
36void FilteredUserDiagnostics::warning_note(const std::string &tag, const std::vector<std::string> &lines) const
37{
38 if (warning_filter_.should_show(tag)) {
39 inner_->warning_note(tag, lines);
40 }
41}
42
43void FilteredUserDiagnostics::error(const std::string &tag, const std::vector<std::string> &lines) const
44{
45 inner_->error(tag, lines);
46}
47
48void FilteredUserDiagnostics::error_note(const std::string &tag, const std::vector<std::string> &lines) const
49{
50 inner_->error_note(tag, lines);
51}
52
54{
55 inner_->emit_fatal_proximate(err);
56}
57
59{
60 inner_->emit_fatal_step(err);
61}
62
64{
65 inner_->emit_fatal_root(err);
66}
67
68} // namespace porytiles
Regex-based include/exclude filter for diagnostic tags.
bool should_show(const std::string &tag) const
Determines whether a diagnostic with the given tag should be shown.
Abstract interface for all error types used in ChainableResult error chains.
Definition error.hpp:19
void warning(const std::string &tag, const std::vector< std::string > &lines) const override
Display a tagged warning message.
void emit_fatal_proximate(const Error &err) const override
Emit the proximate (immediate) error in a fatal error chain.
void warning_note(const std::string &tag, const std::vector< std::string > &lines) const override
Display a tagged note message associated with a warning.
void remark(const std::string &tag, const std::vector< std::string > &lines) const override
Display a tagged remark message.
void emit_fatal_root(const Error &err) const override
Emit the root cause error in a fatal error chain.
void error_note(const std::string &tag, const std::vector< std::string > &lines) const override
Display a tagged note message associated with an error.
void emit_fatal_step(const Error &err) const override
Emit an intermediate step error in a fatal error chain.
FilteredUserDiagnostics(gsl::not_null< const TextFormatter * > format, gsl::not_null< const UserDiagnostics * > inner, DiagnosticTagFilter warning_filter, DiagnosticTagFilter remark_filter)
Constructs a FilteredUserDiagnostics decorator.
void error(const std::string &tag, const std::vector< std::string > &lines) const override
Display a tagged error message.
void remark_note(const std::string &tag, const std::vector< std::string > &lines) const override
Display a tagged note message associated with a remark.
Abstract class for structured error reporting and diagnostic output.