C/C++ API Reference
Loading...
Searching...
No Matches
pw::protobuf Namespace Reference

Overview

A low-level, event-based in-memory protobuf wire format decoder.

The decoder processes an encoded message by iterating over its fields using Next(). The caller can then check FieldNumber() and extract the values of fields using the Read*() methods.

Unlike StreamDecoder, Decoder operates directly on an in-memory buffer (span<const std::byte>). When reading string (ReadString) or bytes (ReadBytes) fields, it returns views pointing directly into the underlying raw protobuf buffer without copying.

Note
The raw protobuf buffer must outlive any string or bytes views acquired from this decoder.
Decoder decoder(proto);
while (decoder.Next().ok()) {
switch (decoder.FieldNumber()) {
case 1:
decoder.ReadUint32(&my_uint32);
break;
// ... and other fields.
}
}
Definition: decoder.h:61

Classes

class  Bool
 
class  Bytes
 
class  CallbackDecoder
 
class  DecodeHandler
 
class  Decoder
 
class  Double
 
class  EnumFinder
 A stateful finder for enum fields in an in-memory protobuf buffer. More...
 
class  EnumStreamFinder
 A stateful finder for enum fields in a protobuf stream. More...
 
class  FieldKey
 
class  Finder
 
class  Fixed32
 
class  Fixed64
 
class  Float
 
class  Int32
 
class  Int64
 
class  MemoryEncoder
 
class  Message
 
class  RepeatedFieldParser
 
class  Sfixed32
 
class  Sfixed64
 
class  Sint32
 
class  Sint64
 
class  StreamDecoder
 
class  StreamEncoder
 
class  StreamFinder
 
class  String
 
class  StringMapEntryParser
 
class  StringMapParser
 
class  Uint32
 
class  Uint64
 

Typedefs

using Uint32Finder = Finder< uint32_t, &Decoder::ReadUint32 >
 
using Uint32StreamFinder = StreamFinder< uint32_t, &StreamDecoder::ReadUint32 >
 
using Int32Finder = Finder< int32_t, &Decoder::ReadInt32 >
 
using Int32StreamFinder = StreamFinder< int32_t, &StreamDecoder::ReadInt32 >
 
using Sint32Finder = Finder< int32_t, &Decoder::ReadSint32 >
 
using Sint32StreamFinder = StreamFinder< int32_t, &StreamDecoder::ReadSint32 >
 
using Uint64Finder = Finder< uint64_t, &Decoder::ReadUint64 >
 
using Uint64StreamFinder = StreamFinder< uint64_t, &StreamDecoder::ReadUint64 >
 
using Int64Finder = Finder< int64_t, &Decoder::ReadInt64 >
 
using Int64StreamFinder = StreamFinder< int64_t, &StreamDecoder::ReadInt64 >
 
using Sint64Finder = Finder< int64_t, &Decoder::ReadSint64 >
 
using Sint64StreamFinder = StreamFinder< int64_t, &StreamDecoder::ReadSint64 >
 
using BoolFinder = Finder< bool, &Decoder::ReadBool >
 
using BoolStreamFinder = StreamFinder< bool, &StreamDecoder::ReadBool >
 
using Fixed32Finder = Finder< uint32_t, &Decoder::ReadFixed32 >
 
using Fixed32StreamFinder = StreamFinder< uint32_t, &StreamDecoder::ReadFixed32 >
 
using Fixed64Finder = Finder< uint64_t, &Decoder::ReadFixed64 >
 
using Fixed64StreamFinder = StreamFinder< uint64_t, &StreamDecoder::ReadFixed64 >
 
using Sfixed32Finder = Finder< int32_t, &Decoder::ReadSfixed32 >
 
using Sfixed32StreamFinder = StreamFinder< int32_t, &StreamDecoder::ReadSfixed32 >
 
using Sfixed64Finder = Finder< int64_t, &Decoder::ReadSfixed64 >
 
using Sfixed64StreamFinder = StreamFinder< int64_t, &StreamDecoder::ReadSfixed64 >
 
using FloatFinder = Finder< float, &Decoder::ReadFloat >
 
using FloatStreamFinder = StreamFinder< float, &StreamDecoder::ReadFloat >
 
using DoubleFinder = Finder< double, &Decoder::ReadDouble >
 
using DoubleStreamFinder = StreamFinder< double, &StreamDecoder::ReadDouble >
 
using StringFinder = Finder< std::string_view, &Decoder::ReadString >
 
using BytesFinder = Finder< ConstByteSpan, &Decoder::ReadBytes >
 
using RepeatedBytes = RepeatedFieldParser< Bytes >
 
using RepeatedStrings = RepeatedFieldParser< String >
 
using RepeatedMessages = RepeatedFieldParser< Message >
 
using StringToBytesMapEntry = StringMapEntryParser< Bytes >
 
using StringToStringMapEntry = StringMapEntryParser< String >
 
using StringToMessageMapEntry = StringMapEntryParser< Message >
 
using StringToBytesMap = StringMapParser< Bytes >
 
using StringToStringMap = StringMapParser< String >
 
using StringToMessageMap = StringMapParser< Message >
 

Enumerations

enum class  Occurrence { kFirst , kLast }
 Specifies which occurrence of a field to find. More...
 
enum class  WireType { kVarint = 0 , kFixed64 = 1 , kDelimited = 2 , kFixed32 = 5 }
 

Functions

Result< uint32_t > DecodeBytesToUint32 (Decoder &decoder)
 
constexpr size_t MaxScratchBufferSize (size_t max_message_size, size_t max_nested_depth)
 
Status WriteVarint (uint64_t value, stream::Writer &writer)
 
Status WriteLengthDelimitedKeyAndLengthPrefix (uint32_t field_number, size_t payload_size, stream::Writer &writer)
 
template<typename ToStreamEncoder , typename FromStreamEncoder >
ToStreamEncoder & StreamEncoderCast (FromStreamEncoder &encoder)
 
Result< uint32_t > FindUint32 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a uint32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindUint32 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< uint32_t > FindUint32 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a uint32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindUint32 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< uint32_t > FindUint32 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindUint32 (ConstByteSpan message, T field)
 
Result< uint32_t > FindUint32 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindUint32 (stream::Reader &message_stream, T field)
 
Result< int32_t > FindInt32 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an int32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindInt32 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< int32_t > FindInt32 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an int32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindInt32 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< int32_t > FindInt32 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindInt32 (ConstByteSpan message, T field)
 
Result< int32_t > FindInt32 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindInt32 (stream::Reader &message_stream, T field)
 
Result< int32_t > FindSint32 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sint32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSint32 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< int32_t > FindSint32 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sint32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSint32 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< int32_t > FindSint32 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSint32 (ConstByteSpan message, T field)
 
Result< int32_t > FindSint32 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSint32 (stream::Reader &message_stream, T field)
 
Result< uint64_t > FindUint64 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a uint64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindUint64 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< uint64_t > FindUint64 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a uint64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindUint64 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< uint64_t > FindUint64 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindUint64 (ConstByteSpan message, T field)
 
Result< uint64_t > FindUint64 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindUint64 (stream::Reader &message_stream, T field)
 
Result< int64_t > FindInt64 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an int64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindInt64 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< int64_t > FindInt64 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an int64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindInt64 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< int64_t > FindInt64 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindInt64 (ConstByteSpan message, T field)
 
Result< int64_t > FindInt64 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindInt64 (stream::Reader &message_stream, T field)
 
Result< int64_t > FindSint64 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sint64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSint64 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< int64_t > FindSint64 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sint64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSint64 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< int64_t > FindSint64 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSint64 (ConstByteSpan message, T field)
 
Result< int64_t > FindSint64 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSint64 (stream::Reader &message_stream, T field)
 
Result< bool > FindBool (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a bool field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< bool > FindBool (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< bool > FindBool (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a bool field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< bool > FindBool (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< bool > FindBool (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< bool > FindBool (ConstByteSpan message, T field)
 
Result< bool > FindBool (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< bool > FindBool (stream::Reader &message_stream, T field)
 
Result< uint32_t > FindFixed32 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a fixed32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindFixed32 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< uint32_t > FindFixed32 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a fixed32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindFixed32 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< uint32_t > FindFixed32 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindFixed32 (ConstByteSpan message, T field)
 
Result< uint32_t > FindFixed32 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint32_t > FindFixed32 (stream::Reader &message_stream, T field)
 
Result< uint64_t > FindFixed64 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a fixed64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindFixed64 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< uint64_t > FindFixed64 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a fixed64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindFixed64 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< uint64_t > FindFixed64 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindFixed64 (ConstByteSpan message, T field)
 
Result< uint64_t > FindFixed64 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< uint64_t > FindFixed64 (stream::Reader &message_stream, T field)
 
Result< int32_t > FindSfixed32 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sfixed32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSfixed32 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< int32_t > FindSfixed32 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sfixed32 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSfixed32 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< int32_t > FindSfixed32 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSfixed32 (ConstByteSpan message, T field)
 
Result< int32_t > FindSfixed32 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int32_t > FindSfixed32 (stream::Reader &message_stream, T field)
 
Result< int64_t > FindSfixed64 (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sfixed64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSfixed64 (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< int64_t > FindSfixed64 (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for an sfixed64 field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSfixed64 (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< int64_t > FindSfixed64 (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSfixed64 (ConstByteSpan message, T field)
 
Result< int64_t > FindSfixed64 (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< int64_t > FindSfixed64 (stream::Reader &message_stream, T field)
 
Result< float > FindFloat (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a float field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< float > FindFloat (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< float > FindFloat (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a float field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< float > FindFloat (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< float > FindFloat (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< float > FindFloat (ConstByteSpan message, T field)
 
Result< float > FindFloat (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< float > FindFloat (stream::Reader &message_stream, T field)
 
Result< double > FindDouble (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a double field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< double > FindDouble (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< double > FindDouble (stream::Reader &message_stream, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a double field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< double > FindDouble (stream::Reader &message_stream, T field, Occurrence occurrence)
 
Result< double > FindDouble (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< double > FindDouble (ConstByteSpan message, T field)
 
Result< double > FindDouble (stream::Reader &message_stream, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< double > FindDouble (stream::Reader &message_stream, T field)
 
Result< std::string_view > FindString (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a string field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< std::string_view > FindString (ConstByteSpan message, T field, Occurrence occurrence)
 
StatusWithSize FindString (stream::Reader &message_stream, uint32_t field_number, span< char > out, Occurrence occurrence)
 
StatusWithSize FindString (stream::Reader &message_stream, uint32_t field_number, InlineString<> &out, Occurrence occurrence)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
StatusWithSize FindString (stream::Reader &message_stream, T field, span< char > out, Occurrence occurrence)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
StatusWithSize FindString (stream::Reader &message_stream, T field, InlineString<> &out, Occurrence occurrence)
 
Result< std::string_view > FindString (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< std::string_view > FindString (ConstByteSpan message, T field)
 
StatusWithSize FindString (stream::Reader &message_stream, uint32_t field_number, span< char > out)
 
StatusWithSize FindString (stream::Reader &message_stream, uint32_t field_number, InlineString<> &out)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
StatusWithSize FindString (stream::Reader &message_stream, T field, span< char > out)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
StatusWithSize FindString (stream::Reader &message_stream, T field, InlineString<> &out)
 
Result< ConstByteSpanFindBytes (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a bytes field.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< ConstByteSpanFindBytes (ConstByteSpan message, T field, Occurrence occurrence)
 
StatusWithSize FindBytes (stream::Reader &message_stream, uint32_t field_number, ByteSpan out, Occurrence occurrence)
 Scans a serialized protobuf message for a bytes field, copying its data into the provided buffer.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
StatusWithSize FindBytes (stream::Reader &message_stream, T field, ByteSpan out, Occurrence occurrence)
 
Result< ConstByteSpanFindBytes (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< ConstByteSpanFindBytes (ConstByteSpan message, T field)
 
StatusWithSize FindBytes (stream::Reader &message_stream, uint32_t field_number, ByteSpan out)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
StatusWithSize FindBytes (stream::Reader &message_stream, T field, ByteSpan out)
 
Result< ConstByteSpanFindSubmessage (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Scans a serialized protobuf message for a submessage.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< ConstByteSpanFindSubmessage (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< ConstByteSpanFindSubmessage (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< ConstByteSpanFindSubmessage (ConstByteSpan message, T field)
 
Result< ConstByteSpanFindRaw (ConstByteSpan message, uint32_t field_number, Occurrence occurrence)
 Returns a span containing the raw bytes of the value.
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< ConstByteSpanFindRaw (ConstByteSpan message, T field, Occurrence occurrence)
 
Result< ConstByteSpanFindRaw (ConstByteSpan message, uint32_t field_number)
 
template<typename T , typename = std::enable_if_t<std::is_enum_v<T>>>
Result< ConstByteSpanFindRaw (ConstByteSpan message, T field)
 
Status WriteProtoStringToBytesMapEntry (uint32_t field_number, stream::Reader &key, size_t key_size, stream::Reader &value, size_t value_size, ByteSpan stream_pipe_buffer, stream::Writer &writer)
 
template<typename T >
constexpr size_t TagSizeBytes (T field_number)
 
template<typename T , typename U >
constexpr size_t SizeOfVarintField (T field_number, U value)
 
template<typename T >
constexpr size_t SizeOfDelimitedFieldWithoutValue (T field_number, uint32_t length_bytes=std::numeric_limits< uint32_t >::max())
 
template<typename T >
constexpr size_t SizeOfDelimitedField (T field_number, uint32_t length_bytes)
 
template<typename T >
constexpr size_t SizeOfField (T field_number, WireType type, size_t data_size_bytes)
 
template<typename T >
constexpr size_t SizeOfFieldFloat (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldDouble (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldInt32 (T field_number, int32_t value=-1)
 
template<typename T >
constexpr size_t SizeOfFieldInt64 (T field_number, int64_t value=-1)
 
template<typename T >
constexpr size_t SizeOfFieldSint32 (T field_number, int32_t value=std::numeric_limits< int32_t >::min())
 
template<typename T >
constexpr size_t SizeOfFieldSint64 (T field_number, int64_t value=std::numeric_limits< int64_t >::min())
 
template<typename T >
constexpr size_t SizeOfFieldUint32 (T field_number, uint32_t value=std::numeric_limits< uint32_t >::max())
 
template<typename T >
constexpr size_t SizeOfFieldUint64 (T field_number, uint64_t value=std::numeric_limits< uint64_t >::max())
 
template<typename T >
constexpr size_t SizeOfFieldFixed32 (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldFixed64 (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldSfixed32 (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldSfixed64 (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldBool (T field_number)
 
template<typename T >
constexpr size_t SizeOfFieldString (T field_number, uint32_t length_bytes)
 
template<typename T >
constexpr size_t SizeOfFieldBytes (T field_number, uint32_t length_bytes)
 
template<typename T , typename U = int32_t>
constexpr size_t SizeOfFieldEnum (T field_number, U value=static_cast< U >(-1))
 
constexpr bool ValidFieldNumber (uint32_t field_number)
 
constexpr bool ValidFieldNumber (uint64_t field_number)
 
constexpr uint32_t MakeKey (uint32_t field_number, WireType wire_type)
 

Variables

constexpr size_t kMaxSizeBytesFixed32 = 4
 Field sizes that directly map to fixed wire types:
 
constexpr size_t kMaxSizeBytesFixed64 = 8
 
constexpr size_t kMaxSizeBytesSfixed32 = 4
 
constexpr size_t kMaxSizeBytesSfixed64 = 8
 
constexpr size_t kMaxSizeBytesFloat = kMaxSizeBytesFixed32
 
constexpr size_t kMaxSizeBytesDouble = kMaxSizeBytesFixed64
 
constexpr size_t kMaxSizeBytesUint32 = varint::kMaxVarint32SizeBytes
 Field sizes that map to varints:
 
constexpr size_t kMaxSizeBytesUint64 = varint::kMaxVarint64SizeBytes
 
constexpr size_t kMaxSizeBytesSint32 = varint::kMaxVarint32SizeBytes
 
constexpr size_t kMaxSizeBytesSint64 = varint::kMaxVarint64SizeBytes
 
constexpr size_t kMaxSizeBytesInt32 = varint::kMaxVarint64SizeBytes
 
constexpr size_t kMaxSizeBytesInt64 = varint::kMaxVarint64SizeBytes
 
constexpr size_t kMaxSizeBytesBool = 1
 
constexpr size_t kMaxSizeBytesEnum = kMaxSizeBytesInt32
 
constexpr size_t kMaxSizeOfFieldNumber = varint::kMaxVarint32SizeBytes
 
constexpr size_t kMaxSizeOfLength = varint::kMaxVarint32SizeBytes
 
static constexpr uint32_t kMaxFieldNumber = (1u << 29) - 1
 
static constexpr uint32_t kFirstReservedNumber = 19000
 
static constexpr uint32_t kLastReservedNumber = 19999
 

Enumeration Type Documentation

◆ Occurrence

enum class pw::protobuf::Occurrence
strong

Specifies which occurrence of a field to find.

Enumerator
kFirst 

Returns the first occurrence of the field.

kLast 

Returns the last occurrence of the field. For non-repeated fields, this is proto spec compliant.