Go to the documentation of this file.
4 #ifndef XGBOOST_JSON_IO_H_
5 #define XGBOOST_JSON_IO_H_
26 std::numeric_limits<double>::max_digits10 + 1;
34 size_t Pos()
const {
return pos_; }
80 void Error(std::string msg)
const;
84 std::string msg =
"Expecting: \"";
89 }
else if (got == 0) {
92 msg += std::to_string(got) +
" \"";
116 static constexpr
size_t kIndentSize = 2;
119 std::vector<char>* stream_;
123 n_spaces_{0}, stream_{stream} {}
127 void Save(Json json);
129 virtual void Visit(JsonArray
const* arr);
130 virtual void Visit(JsonObject
const* obj);
131 virtual void Visit(JsonNumber
const* num);
132 virtual void Visit(JsonInteger
const* num);
133 virtual void Visit(JsonNull
const*
null);
134 virtual void Visit(JsonString
const* str);
135 virtual void Visit(JsonBoolean
const*
boolean);
139 #endif // XGBOOST_JSON_IO_H_
virtual void Visit(JsonArray const *arr)
char GetNextChar()
Definition: json_io.h:49
virtual Json ParseBoolean()
#define XGBOOST_EXPECT(cond, ret)
Definition: base.h:75
char GetConsecutiveChar(char expected_char)
Definition: json_io.h:74
virtual ~JsonReader()=default
void Expect(char c, char got)
Definition: json_io.h:83
constexpr static size_t kMaxNumLength
Definition: json_io.h:25
defines configuration macros of xgboost.
virtual Json ParseObject()
virtual Json ParseString()
StringView raw_str_
Definition: json_io.h:44
char GetNextNonSpaceChar()
Definition: json_io.h:67
virtual Json ParseArray()
struct xgboost::JsonReader::SourceLocation cursor_
size_t Pos() const
Definition: json_io.h:34
void Forward()
Definition: json_io.h:36
virtual ~JsonWriter()=default
JsonWriter(std::vector< char > *stream)
Definition: json_io.h:122
void Forward(uint32_t n)
Definition: json_io.h:39
Definition: json_io.h:115
virtual Json ParseNumber()
JsonReader(StringView str)
Definition: json_io.h:107
Data structure representing JSON format.
Definition: json.h:345
size_t size() const
Definition: json.h:316
void Error(std::string msg) const
char PeekNextChar()
Definition: json_io.h:58
namespace of xgboost
Definition: base.h:110