userver: userver/formats/json/parser/parser_handler.hpp Source File
Loading...
Searching...
No Matches
parser_handler.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/formats/json/parser/parser_handler.hpp
4/// @brief @copybrief formats::json::parser::ParserHandler
5/// @ingroup userver_universal
6
7#include <userver/formats/json/parser/base_parser.hpp>
8#include <userver/formats/json/parser/parser_state.hpp>
9
10USERVER_NAMESPACE_BEGIN
11
12namespace formats::json::parser {
13
14/// @brief Dispatches JSON SAX events to a parser stack.
15class ParserHandler final {
16public:
17 ParserHandler(BaseParser& parser);
18
19 ParserHandler(ParserState& parser_state);
20
21 bool Null();
22 bool Bool(bool b);
23 bool Int(int64_t i);
24 bool Uint(uint64_t u);
25 bool Int64(int64_t i);
26 bool Uint64(uint64_t u);
27 bool Double(double d);
28 bool StartObject();
29 bool EndObject(size_t);
30 bool StartArray();
31 bool EndArray(size_t);
32
33 bool Key(const char* c, size_t size, bool);
34 bool String(const char* c, size_t size, bool);
35 bool RawNumber(const char*, size_t, bool);
36
37private:
38 BaseParser& parser_;
39};
40
41} // namespace formats::json::parser
42
43USERVER_NAMESPACE_END