ValidationReport.h File
Structured validation results for builder-level checks. More...
Included Headers
#include <cstdint>
#include <sstream>
#include <string>
#include <utility>
#include <vector>
Namespaces Index
| namespace | simaai |
| namespace | neat |
Classes Index
| struct | ValidationIssue |
| class | ValidationReport |
|
Report produced by running a ContractRegistry. More... | |
Description
Structured validation results for builder-level checks.
File Listing
The file content with the documentation metadata removed is:
15namespace simaai::neat {
20enum class ValidationSeverity {
21 Info = 0,
22 Warning,
23 Error,
26inline const char* to_string(ValidationSeverity s) {
28 case ValidationSeverity::Info:
30 case ValidationSeverity::Warning:
32 case ValidationSeverity::Error:
41struct ValidationIssue {
45 std::string contract_id; // Contract::id()
50 int node_index = -1;
52 std::string node_label;
60class ValidationReport final {
62 ValidationReport() = default;
65 void add_issue(ValidationIssue issue) {
71 add_issue({ValidationSeverity::Info, std::move(contract_id), std::move(code), std::move(msg),
75 void add_warning(std::string contract_id, std::string code, std::string msg, int node_index = -1,
77 add_issue({ValidationSeverity::Warning, std::move(contract_id), std::move(code), std::move(msg),
83 add_issue({ValidationSeverity::Error, std::move(contract_id), std::move(code), std::move(msg),
87 void note_contract_run(std::string id) {
93 mode_ = mode;
103 const std::vector<std::string>& contracts_run() const noexcept {
108 return !has_errors();
111 bool has_errors() const noexcept {
113 if (i.severity == ValidationSeverity::Error)
119 std::size_t error_count() const noexcept {
122 if (i.severity == ValidationSeverity::Error)
127 std::size_t warning_count() const noexcept {
130 if (i.severity == ValidationSeverity::Warning)
135 std::size_t info_count() const noexcept {
138 if (i.severity == ValidationSeverity::Info)
146 oss << (ok() ? "OK" : "FAILED") << " (errors=" << error_count()
147 << ", warnings=" << warning_count() << ", info=" << info_count() << ")\n";
150 oss << "- [" << ::simaai::neat::to_string(i.severity) << "] "
172 oss << "\"ok\":" << (ok() ? "true" : "false") << ",";
174 oss << "\"errors\":" << error_count() << ",";
175 oss << "\"warnings\":" << warning_count() << ",";
176 oss << "\"info\":" << info_count() << ",";
194 oss << "\"severity\":\"" << json_escape_(::simaai::neat::to_string(it.severity)) << "\",";
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.