WPILibC++ 2024.3.2
Protobuf.h File Reference
#include <stdint.h>
#include <concepts>
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "wpi/function_ref.h"

Go to the source code of this file.

Classes

struct  wpi::Protobuf< T >
 Protobuf serialization template. More...
 
class  wpi::ProtobufMessage< T >
 Owning wrapper (ala std::unique_ptr) for google::protobuf::Message* that does not require the protobuf headers be included. More...
 

Namespaces

namespace  google
 
namespace  google::protobuf
 
namespace  wpi
 
namespace  wpi::detail
 

Concepts

concept  wpi::ProtobufSerializable
 Specifies that a type is capable of protobuf serialization and deserialization.
 
concept  wpi::MutableProtobufSerializable
 Specifies that a type is capable of in-place protobuf deserialization.
 

Functions

template<ProtobufSerializable T>
wpi::UnpackProtobuf (const google::protobuf::Message &msg)
 Unpack a serialized protobuf message. More...
 
template<ProtobufSerializable T>
void wpi::PackProtobuf (google::protobuf::Message *msg, const T &value)
 Pack a serialized protobuf message. More...
 
template<ProtobufSerializable T>
void wpi::UnpackProtobufInto (T *out, const google::protobuf::Message &msg)
 Unpack a serialized struct into an existing object, overwriting its contents. More...
 
void wpi::detail::DeleteProtobuf (google::protobuf::Message *msg)
 
bool wpi::detail::ParseProtobuf (google::protobuf::Message *msg, std::span< const uint8_t > data)
 
bool wpi::detail::SerializeProtobuf (wpi::SmallVectorImpl< uint8_t > &out, const google::protobuf::Message &msg)
 
bool wpi::detail::SerializeProtobuf (std::vector< uint8_t > &out, const google::protobuf::Message &msg)
 
std::string wpi::detail::GetTypeString (const google::protobuf::Message &msg)
 
void wpi::detail::ForEachProtobufDescriptor (const google::protobuf::Message &msg, function_ref< bool(std::string_view filename)> wants, function_ref< void(std::string_view filename, std::span< const uint8_t > descriptor)> fn)