userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
parser_raw_json.hpp
1
#
pragma
once
2
3
/// @file userver/formats/json/parser/raw_string_parser.hpp
4
/// @brief @copybrief formats::json::parser::RawStringParser
5
/// @ingroup userver_universal
6
7
#
include
<
cstdint
>
8
#
include
<
string
>
9
#
include
<
string_view
>
10
11
#
include
<
userver
/
formats
/
json
/
parser
/
typed_parser
.
hpp
>
12
#
include
<
userver
/
formats
/
json
/
raw_string
.
hpp
>
13
#
include
<
userver
/
utils
/
fast_pimpl
.
hpp
>
14
15
USERVER_NAMESPACE_BEGIN
16
17
namespace
formats::
json
::
parser
{
18
19
/// @brief SAX parser for arbitrary JSON values stored as RawString.
20
class
JsonRawStringParser
final
:
public
TypedParser
<
RawString
> {
21
public
:
22
JsonRawStringParser();
23
~JsonRawStringParser()
override
;
24
25
JsonRawStringParser(
const
JsonRawStringParser&) =
delete
;
26
JsonRawStringParser(JsonRawStringParser&&) =
delete
;
27
28
void
Reset
()
override
;
29
30
protected
:
31
void
Null()
override
;
32
void
Bool(
bool
value)
override
;
33
void
Int64(std::int64_t value)
override
;
34
void
Uint64(std::uint64_t value)
override
;
35
void
Double(
double
value)
override
;
36
void
String(std::string_view value)
override
;
37
void
StartObject()
override
;
38
void
Key(std::string_view key)
override
;
39
void
EndObject()
override
;
40
void
StartArray()
override
;
41
void
EndArray()
override
;
42
43
std::string GetPathItem()
const
override
{
return
{}; }
44
45
std::string Expected()
const
override
;
46
47
private
:
48
void
MaybeSetResult();
49
50
struct
Impl;
51
utils
::FastPimpl<Impl, 120, 8> impl_;
52
};
53
54
}
// namespace formats::json::parser
55
56
USERVER_NAMESPACE_END
userver
formats
json
parser
parser_raw_json.hpp
Generated on
for userver by
Doxygen
1.17.0