userver: /data/code/userver/libraries/proto-structs/include/userver/proto-structs/io/context.hpp File Reference
Loading...
Searching...
No Matches
context.hpp File Reference

Detailed Description

Conversion context classes which provide methods for performing conversion.

Context base classes providing methods for conversion process management.

Definition in file context.hpp.

Go to the source code of this file.

#include <limits>
#include <type_traits>
#include <utility>
#include <userver/proto-structs/io/context_base.hpp>
#include <userver/proto-structs/io/fwd.hpp>
#include <userver/proto-structs/io/std/scalar.hpp>
#include <userver/proto-structs/type_mapping.hpp>
+ This graph shows which files directly or indirectly include this file:

Classes

class  proto_structs::io::ReadContext
 Read operation context passed to user-defined ReadProtoStruct global functions. More...
 
class  proto_structs::io::WriteContext
 Write operation context passed to user-defined WriteProtoStruct global functions. More...
 

Namespaces

namespace  proto_structs
 Top namespace for the proto-structs library.
 
namespace  proto_structs::io
 Namespace for conversion utlities and predefined proto-structs conversion hooks for well-known std/userver types.
 

Functions

template<traits::ProtoMessage TMessage, traits::ProtoStruct TStruct>
void proto_structs::MessageToStruct (const TMessage &msg, TStruct &obj)
 Converts protobuf message msg to proto struct obj.
 
template<typename TStruct, traits::ProtoMessage TMessage>
requires traits::ProtoStruct<std::remove_cvref_t<TStruct>>
void proto_structs::StructToMessage (TStruct &&obj, TMessage &msg)
 Converts proto struct obj to protobuf message msg.
 
template<typename TStructField, typename TMessageField>
requires ScalarCompatibleWith<TStructField, TMessageField>
TStructField proto_structs::io::ReadProtoField (ReadContext &ctx, To< TStructField >, int field_number, const TMessageField &message_field)
 
template<typename TStructField, typename TMessageField>
requires ScalarCompatibleWith<std::remove_cvref_t<TStructField>, TMessageField>
void proto_structs::io::WriteProtoField (WriteContext &ctx, TStructField &&struct_field, int field_number, TMessageField &message_field)