11#pragma once
22
3- #include " yql_issue_id.h"
4-
53#include < util/generic/ptr.h>
64#include < util/generic/yexception.h>
75#include < util/stream/output.h>
1311
1412#include < optional>
1513#include < vector>
16- #include < sstream>
1714#include < string>
1815#include < string_view>
1916
20- namespace NYql {
17+ namespace NYdb ::NIssue {
18+
19+ using TIssueCode = uint32_t ;
20+ constexpr TIssueCode DEFAULT_ERROR = 0 ;
21+ constexpr TIssueCode UNEXPECTED_ERROR = 1 ;
22+
23+ enum class ESeverity : uint32_t {
24+ Fatal = 0 ,
25+ Error = 1 ,
26+ Warning = 2 ,
27+ Info = 3 ,
28+ };
29+
30+ std::string SeverityToString (ESeverity severity);
2131
2232void SanitizeNonAscii (std::string& s);
2333
@@ -56,37 +66,6 @@ struct TPosition {
5666 }
5767};
5868
59- class TTextWalker {
60- public:
61- TTextWalker (TPosition& position, bool utf8Aware)
62- : Position(position)
63- , Utf8Aware(utf8Aware)
64- , HaveCr(false )
65- , LfCount(0 )
66- {
67- }
68-
69- static inline bool IsUtf8Intermediate (char c) {
70- return (c & 0xC0 ) == 0x80 ;
71- }
72-
73- template <typename T>
74- TTextWalker& Advance (const T& buf) {
75- for (char c : buf) {
76- Advance (c);
77- }
78- return *this ;
79- }
80-
81- TTextWalker& Advance (char c);
82-
83- private:
84- TPosition& Position;
85- const bool Utf8Aware;
86- bool HaveCr;
87- uint32_t LfCount;
88- };
89-
9069struct TRange {
9170 TPosition Position;
9271 TPosition EndPosition;
@@ -118,12 +97,12 @@ class TIssue;
11897using TIssuePtr = TIntrusivePtr<TIssue>;
11998class TIssue : public TThrRefBase {
12099 std::vector<TIntrusivePtr<TIssue>> Children_;
121- TString Message;
100+ std::string Message;
122101public:
123102 TPosition Position;
124103 TPosition EndPosition;
125104 TIssueCode IssueCode = 0U ;
126- ESeverity Severity = TSeverityIds::S_ERROR ;
105+ ESeverity Severity = ESeverity::Error ;
127106
128107 TIssue () = default ;
129108
@@ -163,14 +142,7 @@ class TIssue: public TThrRefBase {
163142 && IssueCode == other.IssueCode ;
164143 }
165144
166- ui64 Hash () const noexcept {
167- return CombineHashes (
168- CombineHashes (
169- (size_t )CombineHashes (IntHash (Position.Row ), IntHash (Position.Column )),
170- std::hash<std::string>{}(Position.File )
171- ),
172- (size_t )CombineHashes ((size_t )IntHash (static_cast <int >(IssueCode)), std::hash<std::string>{}(Message)));
173- }
145+ uint64_t Hash () const noexcept ;
174146
175147 TIssue& SetCode (TIssueCode id, ESeverity severity) {
176148 IssueCode = id;
@@ -197,7 +169,8 @@ class TIssue: public TThrRefBase {
197169 }
198170
199171 TIssue& AddSubIssue (TIntrusivePtr<TIssue> issue) {
200- Severity = (ESeverity)std::min ((uint32_t )issue->GetSeverity (), (uint32_t )Severity);
172+ Severity = static_cast <ESeverity>(std::min (static_cast <uint32_t >(issue->GetSeverity ()),
173+ static_cast <uint32_t >(Severity)));
201174 Children_.push_back (issue);
202175 return *this ;
203176 }
@@ -215,7 +188,7 @@ class TIssue: public TThrRefBase {
215188 }
216189
217190 // Unsafe method. Doesn't call SanitizeNonAscii(Message)
218- TString * MutableMessage () {
191+ std::string * MutableMessage () {
219192 return &Message;
220193 }
221194
@@ -359,20 +332,20 @@ std::optional<TPosition> TryParseTerminationMessage(std::string_view& message);
359332} // namespace NYql
360333
361334template <>
362- void Out<NYql:: TPosition>(IOutputStream& out, const NYql ::TPosition& pos);
335+ void Out<NYdb::NIssue:: TPosition>(IOutputStream& out, const NYdb::NIssue ::TPosition& pos);
363336
364337template <>
365- void Out<NYql:: TRange>(IOutputStream& out, const NYql ::TRange& pos);
338+ void Out<NYdb::NIssue:: TRange>(IOutputStream& out, const NYdb::NIssue ::TRange& pos);
366339
367340template <>
368- void Out<NYql:: TIssue>(IOutputStream& out, const NYql ::TIssue& error);
341+ void Out<NYdb::NIssue:: TIssue>(IOutputStream& out, const NYdb::NIssue ::TIssue& error);
369342
370343template <>
371- void Out<NYql:: TIssues>(IOutputStream& out, const NYql ::TIssues& error);
344+ void Out<NYdb::NIssue:: TIssues>(IOutputStream& out, const NYdb::NIssue ::TIssues& error);
372345
373346template <>
374- struct THash <NYql ::TIssue> {
375- inline size_t operator ()(const NYql ::TIssue& err) const {
347+ struct THash <NYdb::NIssue ::TIssue> {
348+ inline size_t operator ()(const NYdb::NIssue ::TIssue& err) const {
376349 return err.Hash ();
377350 }
378351};
0 commit comments