CRTP mixin implementing the common parts of deserializer backends. More...
#include <eagine/serialize/read_backend.hpp>
Public Member Functions | |
| common_deserializer_backend () noexcept=default | |
| Default constructor.  | |
| common_deserializer_backend (Source &source) noexcept | |
| Construction from a reference to a Source.  | |
| auto | set_source (Source &s) noexcept -> Derived & | 
| Sets a reference to a new Source object.  | |
| auto | source () -> deserializer_data_source *final | 
| Returns a pointer to the associated data source, 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 deserialization of a potentially complex structured value.  | |
| auto | read (span< bool > values, span_size_t &done) -> result override | 
| Reads boolean values, returns how many were done through second argument.  | |
| auto | read (span< char > values, span_size_t &done) -> result override | 
| Reads character values, returns how many were done through second argument.  | |
| auto | read (span< std::int8_t > values, span_size_t &done) -> result override | 
| Reads 8-bit int values, returns how many were done through second argument.  | |
| auto | read (span< short > values, span_size_t &done) -> result override | 
| Reads short values, returns how many were done through second argument.  | |
| auto | read (span< int > values, span_size_t &done) -> result override | 
| Reads int values, returns how many were done through second argument.  | |
| auto | read (span< long > values, span_size_t &done) -> result override | 
| Reads long values, returns how many were done through second argument.  | |
| auto | read (span< long long > values, span_size_t &done) -> result override | 
| Reads long long values, returns how many were done through second argument.  | |
| auto | read (span< std::uint8_t > values, span_size_t &done) -> result override | 
| Reads 8-bit uint values, returns how many were done through second argument.  | |
| auto | read (span< unsigned short > values, span_size_t &done) -> result override | 
| Reads ushort values, returns how many were done through second argument.  | |
| auto | read (span< unsigned > values, span_size_t &done) -> result override | 
| Reads uint values, returns how many were done through second argument.  | |
| auto | read (span< unsigned long > values, span_size_t &done) -> result override | 
| Reads ulong values, returns how many were done through second argument.  | |
| auto | read (span< unsigned long long > values, span_size_t &done) -> result override | 
| Reads ulong long values, returns how many were done through second argument.  | |
| auto | read (span< float > values, span_size_t &done) -> result override | 
| Reads float values, returns how many were done through second argument.  | |
| auto | read (span< double > values, span_size_t &done) -> result override | 
| Reads double values, returns how many were done through second argument.  | |
| auto | read (span< identifier > values, span_size_t &done) -> result override | 
| Reads identifier values, returns how many were done through second argument.  | |
| auto | read (span< decl_name_storage > values, span_size_t &done) -> result override | 
| Reads decl_name values, returns how many were done through second argument.  | |
| auto | read (span< std::string > values, span_size_t &done) -> result override | 
| Reads string values, returns how many were done through second argument.  | |
| auto | begin_struct (span_size_t &) -> result override | 
| Begins the deserialization of a structure instance.  | |
| auto | begin_member (string_view) -> result override | 
| Begins the deserialization of a structure data member.  | |
| auto | finish_member (string_view) -> result override | 
| Finishes the deserialization of a structure data member.  | |
| auto | finish_struct () -> result override | 
| Finishes the deserialization of a structure instance.  | |
| auto | begin_list (span_size_t &) -> result override | 
| Begins the deserialization of a container instance.  | |
| auto | begin_element (span_size_t) -> result override | 
| Begins the deserialization of a container element.  | |
| auto | finish_element (span_size_t) -> result override | 
| Finishes the deserialization of a container element.  | |
| auto | finish_list () -> result override | 
| Finishes the deserialization of a container instance.  | |
| auto | finish () -> result override | 
| Finishes the deserialization of a potentially complex structured value.  | |
  Public Member Functions inherited from eagine::deserializer_backend | |
| virtual auto | type_id () -> identifier=0 | 
| Returns a descriptive identifier of the implementation.  | |
  Public Member Functions inherited from eagine::interface< deserializer_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::deserializer_backend | |
| using | result = deserialization_errors | 
| Alias for the deserialization operations result type.  | |
  Protected Member Functions inherited from eagine::interface< deserializer_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 deserializer backends.
| Derived | the derived backend implementation | 
| Source | the data source type. |