183 [[maybe_unused]] [[nodiscard]]
static constexpr
bool is_supported(
Type type) noexcept;
195 template <
typename T>
205 template <
Type TypeT, typename T>
206 [[nodiscard]] static constexpr
SchemaType get_schema_type() noexcept;
214 template <typename T>
215 [[nodiscard]] static constexpr
SchemaType get_schema_type() noexcept;
229 template <
Type TypeT, typename T>
238 template <typename T>
255 template <
Type TypeT, typename T>
265 template <typename T>
290 template <
Type TypeT, typename T>
301 template <typename T>
318 template <
Type TypeT, typename T>
329 template <typename T>
348 template <typename SrcT, typename DesT>
349 static
bool convert(const SrcT& src, DesT& des);
363 template <typename T>
364 [[nodiscard]] static constexpr auto&
deref(const T& t) noexcept;
372 template <typename T>
373 [[nodiscard]] static constexpr
bool is_bytes_type() noexcept;
384 template <typename T>
398 template <typename T>
399 [[nodiscard]] static constexpr
bool is_cdr_type() noexcept;
411 template <typename T>
412 [[nodiscard]] static constexpr
bool is_proto_type() noexcept;
424 template <typename T>
437 template <typename T>
450 template <typename T>
459 template <typename T>
472 template <typename T>
481 template <typename T>
493 template <typename T>
494 [[nodiscard]] static constexpr
bool is_chars_type() noexcept;
508 template <typename T>
522 template <typename T>
535 template <typename T>
542 #include "./internal/serializer-inl.h"
Canonical 128-byte binary payload carrier with inline storage, multi-mode ownership and LZAV compress...
Fixed-size 128-byte buffer holder with SBO, five ownership modes and integrated codecs.
Definition: bytes.h:120
Compile-time codec detection and dispatch for VLink message payloads.
constexpr bool is_proto_ptr_type() noexcept
Reports whether T is a raw pointer to a Protobuf-like message.
Definition: serializer-inl.h:731
constexpr bool is_dynamic_type() noexcept
Reports whether T is a VLink dynamic data type.
Definition: serializer-inl.h:709
constexpr bool is_chars_type() noexcept
Reports whether std::string is constructible from T (but T is not string).
Definition: serializer-inl.h:767
bool deserialize(const Bytes &src, T &des, [[maybe_unused]] TransportType transport)
Definition: serializer-inl.h:522
constexpr Type get_type_of() noexcept
Resolves the codec Type for T at compile time.
Definition: serializer-inl.h:163
Type
Identifies the codec to use for a given C++ message type.
Definition: serializer.h:154
@ kStandardPtrType
Pointer to trivial standard-layout struct (POD pointer).
Definition: serializer.h:169
@ kCustomType
User-defined codec via operator>>/<<.
Definition: serializer.h:158
@ kDynamicType
VLink dynamic typed data.
Definition: serializer.h:157
@ kFlatTableType
FlatBuffers NativeTable (object API).
Definition: serializer.h:162
@ kCharsType
C string / char*.
Definition: serializer.h:166
@ kUnknownType
Unsupported type; is_supported() returns false.
Definition: serializer.h:155
@ kBytesType
Bytes – raw byte pass-through.
Definition: serializer.h:156
@ kProtoPtrType
Protobuf-like raw pointer; caller-owned.
Definition: serializer.h:161
@ kStandardType
Trivial standard-layout struct (POD value).
Definition: serializer.h:168
@ kStringType
std::string – UTF-8 text.
Definition: serializer.h:165
@ kFlatBuilderType
FlatBuffers builder (fbb_ + Finish()).
Definition: serializer.h:164
@ kStreamType
Stream-serialisable via std::stringstream.
Definition: serializer.h:167
@ kProtoType
Protobuf-like value.
Definition: serializer.h:160
@ kCdrType
FastDDS CDR via serialize(Cdr&) / deserialize(Cdr&).
Definition: serializer.h:159
@ kFlatPtrType
Pointer to flatbuffers::Table (zero-copy view).
Definition: serializer.h:163
constexpr auto & deref(const T &t) noexcept
Dereferences a value, unwrapping std::shared_ptr when present.
Definition: serializer-inl.h:695
constexpr bool is_supported(Type type) noexcept
Reports whether type identifies a usable codec.
Definition: serializer-inl.h:160
constexpr bool is_custom_type() noexcept
Reports whether T provides a custom operator>>/<< codec.
Definition: serializer-inl.h:755
size_t get_serialized_size(const T &src) noexcept
Returns a serialised-size hint for src with explicit codec tag.
Definition: serializer-inl.h:298
bool convert(const SrcT &src, DesT &des)
Converts between two types where at least one side is Bytes.
Definition: serializer-inl.h:681
constexpr bool is_cdr_type() noexcept
Reports whether T is a FastDDS CDR-serialisable type.
Definition: serializer-inl.h:715
constexpr bool is_proto_type() noexcept
Reports whether T is a Protobuf-like message value type.
Definition: serializer-inl.h:724
std::string get_serialized_type() noexcept
Returns the serialised type-name string for T with explicit codec tag.
Definition: serializer-inl.h:232
bool serialize(const T &src, Bytes &des, [[maybe_unused]] TransportType transport, [[maybe_unused]] uint8_t offset)
Definition: serializer-inl.h:358
constexpr bool is_flat_ptr_type() noexcept
Reports whether T is a raw pointer to a flatbuffers::Table.
Definition: serializer-inl.h:749
constexpr bool is_flat_builder_type() noexcept
Reports whether T is a FlatBuffers builder type.
Definition: serializer-inl.h:744
constexpr bool is_standard_ptr_type() noexcept
Reports whether T is a pointer to a trivial standard-layout type.
Definition: serializer-inl.h:784
constexpr bool is_standard_type() noexcept
Reports whether T is a trivial standard-layout value (POD).
Definition: serializer-inl.h:778
constexpr bool is_flat_table_type() noexcept
Reports whether T is a FlatBuffers NativeTable type.
Definition: serializer-inl.h:738
constexpr bool is_string_type() noexcept
Reports whether T is std::string after unwrapping shared_ptr.
Definition: serializer-inl.h:761
constexpr bool is_bytes_type() noexcept
Reports whether T is exactly Bytes.
Definition: serializer-inl.h:704
constexpr bool is_stream_type() noexcept
Reports whether T supports bidirectional std::stringstream streaming.
Definition: serializer-inl.h:772
SchemaType
Coarse runtime schema family used by discovery, bag metadata and proxy routing.
Definition: types.h:207
TransportType
Enumeration of every transport backend recognised by VLink.
Definition: types.h:128
Core enumerations and small value types shared by the entire VLink implementation layer.