Porytiles
Loading...
Searching...
No Matches
filtered_user_diagnostics.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include "gsl/pointers"
7
12
13namespace porytiles {
14
26 public:
37 gsl::not_null<const TextFormatter *> format,
38 gsl::not_null<const UserDiagnostics *> inner,
39 DiagnosticTagFilter warning_filter,
40 DiagnosticTagFilter remark_filter);
41
42 void remark(const std::string &tag, const std::vector<std::string> &lines) const override;
43 void remark_note(const std::string &tag, const std::vector<std::string> &lines) const override;
44
45 void warning(const std::string &tag, const std::vector<std::string> &lines) const override;
46 void warning_note(const std::string &tag, const std::vector<std::string> &lines) const override;
47
48 void error(const std::string &tag, const std::vector<std::string> &lines) const override;
49 void error_note(const std::string &tag, const std::vector<std::string> &lines) const override;
50
51 void emit_fatal_proximate(const Error &err) const override;
52 void emit_fatal_step(const Error &err) const override;
53 void emit_fatal_root(const Error &err) const override;
54
55 private:
56 gsl::not_null<const UserDiagnostics *> inner_;
57 DiagnosticTagFilter warning_filter_;
58 DiagnosticTagFilter remark_filter_;
59};
60
61} // namespace porytiles
Regex-based include/exclude filter for diagnostic tags.
Abstract interface for all error types used in ChainableResult error chains.
Definition error.hpp:19
Decorator that applies tag-based filtering to any UserDiagnostics implementation.
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.
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.
@ warning
Emit a warning and continue decompilation.
@ error
Emit a formatted error and fail decompilation.