Porytiles
Loading...
Searching...
No Matches
stderr_styled_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
11
12namespace porytiles {
13
31 public:
32 explicit StderrStyledUserDiagnostics(const gsl::not_null<TextFormatter *> format) : UserDiagnostics{format} {}
33
44 void remark(const std::string &tag, const std::vector<std::string> &lines) const override;
45
56 void warning(const std::string &tag, const std::vector<std::string> &lines) const override;
57
68 void error(const std::string &tag, const std::vector<std::string> &lines) const override;
69
79 void emit_fatal_proximate(const Error &err) const override;
80
91 void emit_fatal_step(const Error &err) const override;
92
103 void emit_fatal_root(const Error &err) const override;
104
116 void remark_note(const std::string &tag, const std::vector<std::string> &lines) const override;
117
129 void warning_note(const std::string &tag, const std::vector<std::string> &lines) const override;
130
142 void error_note(const std::string &tag, const std::vector<std::string> &lines) const override;
143
144 private:
145 void emit_note_impl(const std::string &tag, const std::vector<std::string> &lines) const;
146};
147
148} // namespace porytiles
Abstract interface for all error types used in ChainableResult error chains.
Definition error.hpp:19
Concrete implementation of UserDiagnostics that outputs structured messages to stderr,...
void warning_note(const std::string &tag, const std::vector< std::string > &lines) const override
Display a multi-line tagged note associated with a warning to stderr.
void emit_fatal_proximate(const Error &err) const override
Emit the proximate (immediate) error in a fatal error chain to stderr.
void remark(const std::string &tag, const std::vector< std::string > &lines) const override
Display a multi-line tagged informational remark to stderr.
void remark_note(const std::string &tag, const std::vector< std::string > &lines) const override
Display a multi-line tagged note associated with a remark to stderr.
void emit_fatal_root(const Error &err) const override
Emit the root cause error in a fatal error chain to stderr.
void emit_fatal_step(const Error &err) const override
Emit an intermediate step error in a fatal error chain to stderr.
StderrStyledUserDiagnostics(const gsl::not_null< TextFormatter * > format)
void error_note(const std::string &tag, const std::vector< std::string > &lines) const override
Display a multi-line tagged note associated with an error to stderr.
Abstract class for structured error reporting and diagnostic output.
@ warning
Emit a warning and continue decompilation.
@ error
Emit a formatted error and fail decompilation.