protozero
1.7.1
Minimalistic protocol buffer decoder and encoder in C++.
Loading...
Searching...
No Matches
include
protozero
types.hpp
Go to the documentation of this file.
1
#ifndef PROTOZERO_TYPES_HPP
2
#define PROTOZERO_TYPES_HPP
3
4
/*****************************************************************************
5
6
protozero - Minimalistic protocol buffer decoder and encoder in C++.
7
8
This file is from https://github.com/mapbox/protozero where you can find more
9
documentation.
10
11
*****************************************************************************/
12
19
#include "
config.hpp
"
20
21
#include <algorithm>
22
#include <cstddef>
23
#include <cstdint>
24
#include <cstring>
25
#include <string>
26
#include <utility>
27
28
namespace
protozero
{
29
33
using
pbf_tag_type
= uint32_t;
34
40
enum class
pbf_wire_type
: uint32_t {
41
varint = 0,
// int32/64, uint32/64, sint32/64, bool, enum
42
fixed64 = 1,
// fixed64, sfixed64, double
43
length_delimited = 2,
// string, bytes, nested messages, packed repeated fields
44
fixed32 = 5,
// fixed32, sfixed32, float
45
unknown = 99
// used for default setting in this library
46
};
47
54
template
<
typename
T>
55
constexpr
inline
uint32_t
tag_and_type
(T tag,
pbf_wire_type
wire_type)
noexcept
{
56
return
(
static_cast<
uint32_t
>
(
static_cast<
pbf_tag_type
>
(tag)) << 3U) |
static_cast<
uint32_t
>
(wire_type);
57
}
58
62
using
pbf_length_type
= uint32_t;
63
64
}
// end namespace protozero
65
66
#endif
// PROTOZERO_TYPES_HPP
config.hpp
Contains macro checks for different configurations.
protozero
All parts of the protozero header-only library are in this namespace.
Definition
basic_pbf_builder.hpp:24
protozero::pbf_tag_type
uint32_t pbf_tag_type
Definition
types.hpp:33
protozero::pbf_length_type
uint32_t pbf_length_type
Definition
types.hpp:62
protozero::pbf_wire_type
pbf_wire_type
Definition
types.hpp:40
protozero::tag_and_type
constexpr uint32_t tag_and_type(T tag, pbf_wire_type wire_type) noexcept
Definition
types.hpp:55
Generated on Tue Jan 11 2022 04:53:24 for protozero by
1.9.8