userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
protobuf.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/dump/protobuf.hpp
4
/// @brief Dumping support for protobuf messages
5
///
6
/// @ingroup userver_dump_read_write
7
8
#
include
<
type_traits
>
9
10
#
include
<
google
/
protobuf
/
message_lite
.
h
>
11
12
#
include
<
userver
/
dump
/
fwd
.
hpp
>
13
14
USERVER_NAMESPACE_BEGIN
15
16
namespace
dump
{
17
18
namespace
impl {
19
20
void
WriteProtoMessageToDump(
Writer
& writer,
const
google::protobuf::MessageLite& message);
21
22
void
ParseProtoMessageFromDump(
Reader
& reader, google::protobuf::MessageLite& message);
23
24
}
// namespace impl
25
26
/// @brief Protobuf message dumping support
27
template
<
typename
T>
28
requires
std::is_base_of_v<google::protobuf::MessageLite, T>
29
void
Write
(
Writer
& writer,
const
T& value) {
30
impl::WriteProtoMessageToDump(writer, value);
31
}
32
33
/// @brief Protobuf message dumping support
34
template
<
typename
T>
35
requires
std::is_base_of_v<google::protobuf::MessageLite, T>
36
T
Read
(
Reader
& reader,
To
<T>) {
37
T value;
38
impl::ParseProtoMessageFromDump(reader, value);
39
return
value;
40
}
41
42
}
// namespace dump
43
44
USERVER_NAMESPACE_END
userver
dump
protobuf.hpp
Generated on
for userver by
Doxygen
1.17.0