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. | |
Public Member Functions inherited from eagine::serializer_backend | |
| virtual auto | type_id () -> identifier=0 |
| Returns a descriptive identifier of the implementation. | |
Public Member Functions inherited from eagine::interface< serializer_backend > | |
| 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 | |
Public Types inherited from eagine::serializer_backend | |
| using | result = serialization_errors |
| Alias for the serialization operations result type. | |
Protected Member Functions inherited from eagine::interface< serializer_backend > | |
| 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. |