userver: /data/code/userver/libraries/proto-structs/tests/struct_simple.hpp Source File
Loading...
Searching...
No Matches
struct_simple.hpp
1#pragma once
2
3#include <userver/proto-structs/io/fwd.hpp>
4#include <userver/proto-structs/io/std/int32_t.hpp>
5#include <userver/proto-structs/type_mapping.hpp>
6
7namespace ups = USERVER_NAMESPACE::proto_structs;
8
9namespace messages {
10class Empty;
11class Simple;
12} // namespace messages
13
14namespace structs {
15
16struct Empty {
17 using ProtobufMessage = messages::Empty;
18};
19
20struct Simple {
21 using ProtobufMessage = int; // non-sense
22 int32_t f1 = {};
23};
24
25Empty ReadProtoStruct(ups::io::ReadContext&, ups::io::To<Empty>, const messages::Empty&);
26void WriteProtoStruct(ups::io::WriteContext&, const Empty&, messages::Empty&);
27
28Simple ReadProtoStruct(ups::io::ReadContext&, ups::io::To<Simple>, const messages::Simple&);
29void WriteProtoStruct(ups::io::WriteContext&, const Simple&, messages::Simple&);
30
31void CheckSimpleEqual(const Simple&, const messages::Simple&);
32
33} // namespace structs
34
35namespace proto_structs::traits {
36
37template <>
38struct CompatibleMessageTrait<::structs::Simple> {
39 using Type = ::messages::Simple;
40};
41
42} // namespace proto_structs::traits