GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — codeql/shared/cpp/Diagnostics.h at main · oops4git/codeql Expand file tree/ Copy pathDiagnostics.hMore file actions 88 lines (71 loc) · 2.83 KB / Copy pathDiagnostics.hFile metadata and controls88 lines (71 loc) · 2.83 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 #pragma once #include <optional> #include <string_view> #include <nlohmann/json.hpp> namespace codeql { extern const std::string_view programName; extern const std::string_view extractorName; struct DiagnosticsLocation { std::string_view file; unsigned startLine; unsigned startColumn; unsigned endLine; unsigned endColumn; nlohmann::json json() const; std::string str() const; }; // Models a diagnostic source for Swift, holding static information that goes out into a diagnostic // These are internally stored into a map on id's. A specific error log can use binlog's category // as id, which will then be used to recover the diagnostic source while dumping. class Diagnostic { public: enum class Visibility : unsigned char { none = 0b000, statusPage = 0b001, cliSummaryTable = 0b010, telemetry = 0b100, all = 0b111, }; // Notice that Tool Status Page severity is not necessarily the same as log severity, as the // scope is different: TSP's scope is the whole analysis, log's scope is a single run enum class Severity { note, warning, error, }; std::string_view id; std::string_view name; std::string_view action; Visibility visibility{Visibility::all}; Severity severity{Severity::error}; std::optional<DiagnosticsLocation> location{}; // create a JSON diagnostics for this source with the given `timestamp` and Markdown `message` // A markdownMessage is emitted that includes both the message and the action to take. The id is // used to construct the source id in the form `swift/<prog name>/<id>` nlohmann::json json(const std::chrono::system_clock::time_point& timestamp, std::string_view message) const; // returns <id> or <id>@<location> if a location is present std::string abbreviation() const; Diagnostic withLocation(std::string_view file, unsigned startLine = 0, unsigned startColumn = 0, unsigned endLine = 0, unsigned endColumn = 0) const { auto ret = *this; ret.location = DiagnosticsLocation{file, startLine, startColumn, endLine, endColumn}; return ret; } private: bool has(Visibility v) const; }; inline constexpr Diagnostic::Visibility operator|(Diagnostic::Visibility lhs, Diagnostic::Visibility rhs) { return static_cast<Diagnostic::Visibility>(static_cast<unsigned char>(lhs) | static_cast<unsigned char>(rhs)); } inline constexpr Diagnostic::Visibility operator&(Diagnostic::Visibility lhs, Diagnostic::Visibility rhs) { return static_cast<Diagnostic::Visibility>(static_cast<unsigned char>(lhs) & static_cast<unsigned char>(rhs)); } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |