userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
json_helpers.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/dump/json_helpers.hpp
4
/// @brief Convenience functions to load and dump as JSON in classes derived
5
/// from components::CachingComponentBase.
6
7
#
include
<
memory
>
8
9
#
include
<
userver
/
dump
/
common
.
hpp
>
10
#
include
<
userver
/
dump
/
operations
.
hpp
>
11
#
include
<
userver
/
dump
/
unsafe
.
hpp
>
12
#
include
<
userver
/
formats
/
json
/
serialize
.
hpp
>
13
#
include
<
userver
/
formats
/
json
/
string_builder
.
hpp
>
14
#
include
<
userver
/
formats
/
json
/
value
.
hpp
>
15
16
USERVER_NAMESPACE_BEGIN
17
18
namespace
dump
{
19
20
/// @brief Convenience function to use in
21
/// components::CachingComponentBase::WriteContents override to dump a type in
22
/// a human readable JSON format.
23
///
24
/// @see @ref scripts/docs/en/userver/cache_dumps.md
25
template
<
typename
T>
26
void
WriteJson
(
Writer
& writer,
const
T& contents) {
27
formats::
json
::StringBuilder sb;
28
WriteToStream(contents, sb);
29
WriteStringViewUnsafe
(
writer
,
sb
.
GetString
(
)
)
;
30
WriteStringViewUnsafe
(
writer
,
"\n"
)
;
31
}
32
33
/// @brief Convenience function to use in
34
/// components::CachingComponentBase::ReadContents override to load a dump in
35
/// a human readable JSON format.
36
///
37
/// @see @ref scripts/docs/en/userver/cache_dumps.md
38
template
<
typename
T>
39
std::unique_ptr<
const
T>
ReadJson
(
Reader
& reader) {
40
return
std::make_unique<
const
T>(formats
::
json
::
FromString
(
ReadEntire
(
reader
)
)
.As<T>());
41
}
42
43
}
// namespace dump
44
45
USERVER_NAMESPACE_END
userver
dump
json_helpers.hpp
Generated on
for userver by
Doxygen
1.17.0