CRTP mixin implementing the common parts of serializer backends. More...
#include <eagine/serialize/write_backend.hpp>
Public Member Functions | |
common_serializer_backend () noexcept=default | |
Default constructor. | |
common_serializer_backend (Sink &s) noexcept | |
Construction from a reference to a Sink. | |
auto | set_sink (Sink &s) noexcept -> auto & |
Sets a reference to a new Sink object. | |
auto | sink () -> serializer_data_sink *final |
Returns a pointer to the associated data sink, if any. | |
auto | enum_as_string () -> bool override |
@brie Indicates if the backed stores enumerators as strings (or numeric values). | |
auto | begin () -> result override |
Starts the serialization of a potentially complex structured value. | |
auto | write (span< const bool > values, span_size_t &done) -> result override |
Writes boolean values, returns how many were done through second argument. | |
auto | write (span< const char > values, span_size_t &done) -> result override |
Writes character values, returns how many were done through second argument. | |
auto | write (span< const std::int8_t > values, span_size_t &done) -> result override |
Writes 8-bit int values, returns how many were done through second argument. | |
auto | write (span< const short > values, span_size_t &done) -> result override |
Writes short int values, returns how many were done through second argument. | |
auto | write (span< const int > values, span_size_t &done) -> result override |
Writes int values, returns how many were done through second argument. | |
auto | write (span< const long > values, span_size_t &done) -> result override |
Writes long values, returns how many were done through second argument. | |
auto | write (span< const long long > values, span_size_t &done) -> result override |
Writes long long values, returns how many were done through second argument. | |
auto | write (span< const std::uint8_t > values, span_size_t &done) -> result override |
Writes 8-bit uint values, returns how many were done through second argument. | |
auto | write (span< const unsigned short > values, span_size_t &done) -> result override |
Writes ushort values, returns how many were done through second argument. | |
auto | write (span< const unsigned > values, span_size_t &done) -> result override |
Writes uint values, returns how many were done through second argument. | |
auto | write (span< const unsigned long > values, span_size_t &done) -> result override |
Writes ulong values, returns how many were done through second argument. | |
auto | write (span< const unsigned long long > values, span_size_t &done) -> result override |
Writes ulong long values, returns how many were done through second argument. | |
auto | write (span< const float > values, span_size_t &done) -> result override |
Writes float values, returns how many were done through second argument. | |
auto | write (span< const double > values, span_size_t &done) -> result override |
Writes double values, returns how many were done through second argument. | |
auto | write (span< const identifier > values, span_size_t &done) -> result override |
Writes identifier values, returns how many were done through second argument. | |
auto | write (span< const decl_name > values, span_size_t &done) -> result override |
Writes decl_name values, returns how many were done through second argument. | |
auto | write (span< const string_view > values, span_size_t &done) -> result override |
Writes string values, returns how many were done through second argument. | |
auto | begin_struct (span_size_t) -> result override |
Begins the serialization of a structure instance. | |
auto | begin_member (string_view) -> result override |
Begins the serialization of a structure data member. | |
auto | finish_member (string_view) -> result override |
Finishes the serialization of a structure data member. | |
auto | finish_struct () -> result override |
Finishes the serialization of a structure instance. | |
auto | begin_list (span_size_t) -> result override |
Begins the serialization of a container instance. | |
auto | begin_element (span_size_t) -> result override |
Begins the serialization of a container element. | |
auto | finish_element (span_size_t) -> result override |
Finishes the serialization of a container element. | |
auto | finish_list () -> result override |
Finishes the serialization of a container instance. | |
auto | finish () -> result override |
Finishes the serialization of a potentially complex structured value. | |
![]() | |
virtual auto | type_id () -> identifier=0 |
Returns a descriptive identifier of the implementation. | |
![]() | |
constexpr | interface (const interface &)=delete |
Not copyable. | |
auto | operator= (interface &&)=delete |
Not move assignable. | |
auto | operator= (const interface &)=delete |
Not copy assignable. | |
Additional Inherited Members | |
![]() | |
using | result = serialization_errors |
Alias for the serialization operations result type. | |
![]() | |
constexpr | interface () noexcept=default |
Default constructible by derived. | |
constexpr | interface (interface &&) noexcept=default |
Move constructible by derived. | |
CRTP mixin implementing the common parts of serializer backends.
Derived | the derived backend implementation |
Sink | the data sink type. |