26 #include "../bounded.h"
32 #include <type_traits>
59 return error !=
nullptr;
69 template <
typename T >
70 concept
base_type = std::is_floating_point_v< T > || std::is_integral_v< T > || std::is_enum_v< T >;
77 template < std::endian Endianess,
typename D >
87 template <
typename... Ds >
93 template <
typename... Ds >
102 template <
typename CounterDef,
typename D >
111 template <
typename D, auto Offset >
MIT License.
Definition: multiplexer.h:33
std::variant< Ds... > def_type
Definition: base.h:96
Endianess
Definition: serializer.h:70
CounterDef counter_type
Definition: base.h:105
D def_type
Definition: base.h:106
concept base_type
Concept that matches types considered base - serialized directly by using byte shifting.
Definition: base.h:70
std::variant< Ds... > def_type
Definition: base.h:90
Serializes values from definitions Ds to std::variant.
Definition: base.h:89
Creates a segment starting with counter defined by CounterDef, this counter limits how many bytes are...
Definition: base.h:104
mark const * error
Definition: base.h:42
constexpr bool has_error() const
Definition: base.h:57
constexpr conversion_result()=default
constexpr mark const * get_error() const
Definition: base.h:62
constexpr conversion_result(std::size_t const u)
Definition: base.h:46
std::size_t used
Definition: base.h:41
constexpr conversion_result(std::size_t const u, mark const *const m)
Definition: base.h:51
More complex constructs have custom mechanics that internally produces def_type alias used by the lib...
Definition: base.h:122
Follows a set of special data types used for definition of protocol.
Definition: base.h:79
D def_type
Definition: base.h:81
static constexpr std::endian value
Definition: base.h:80
The value defined by D present in the message is offseted by Offset.
Definition: base.h:113
static constexpr auto offset
Definition: base.h:114
D def_type
Definition: base.h:115