26 #include "../experimental/decompose.h"
27 #include "../quantity.h"
28 #include "../static_vector.h"
43 template <
typename D >
46 template <
typename D >
49 template <
typename D >
58 template <
typename D >
66 template <
typename D >
73 template <
typename T >
76 template < base_type D >
80 static constexpr std::size_t
max_size =
sizeof( D );
81 static constexpr std::size_t min_size =
max_size;
84 template < convertible D, std::
size_t N >
109 static constexpr std::size_t min_size =
118 static constexpr std::size_t min_size = 0;
121 template < std::
size_t N >
130 template < std::
size_t N >
136 static constexpr std::size_t min_size = 0;
139 template < std::
size_t N >
150 static constexpr std::size_t min_size = msg_size_traits::min_size + 0;
153 template < convertible D, auto Offset >
161 static constexpr std::size_t min_size = def_traits::min_size;
164 template < quantity_derived D >
173 template < convertible D, D Min, D Max >
182 template < convertible CounterType, convertible D >
190 static constexpr std::size_t min_size = counter_traits::min_size + sub_traits::min_size;
200 static constexpr std::size_t min_size = sub_traits::min_size;
210 static constexpr std::size_t min_size = std::min< std::size_t >(
220 template <
typename D >
227 static constexpr std::size_t min_size = sub_traits::min_size;
230 template < std::endian Endianess, convertible D >
235 template < std::derived_from< converter_def_type_base > D >
240 template < std::
size_t N >
247 static constexpr std::size_t min_size = 0 + counter_traits::min_size;
250 template <
typename Rep,
typename Ratio >
256 static constexpr std::size_t min_size = rep_traits::min_size;
271 static constexpr std::size_t min_size = mark_traits::min_size + offset_traits::min_size;
274 template < convertible T, std::
size_t N >
284 template < convertible T >
292 static constexpr std::size_t min_size = presence_traits::min_size;
295 template < decomposable T >
302 static constexpr std::size_t min_size = tuple_traits::min_size;
The bounded class represents a wrapper over type T constrained between MinVal and MaxVal as compile-t...
Definition: bounded.h:44
Protocol library has custom type that represents message, however this is just simple overaly over st...
Definition: message.h:40
Sizeless message is class that behaves in a same way as normal message, however it is serialized diff...
Definition: message.h:183
Data container for up to N elements.
Definition: static_vector.h:36
MIT License.
Definition: multiplexer.h:33
requires(std::is_enum_v< T >) struct serializer< T
decltype(traits_for_impl< D >()) traits_for
Definition: traits.h:59
Endianess
Definition: serializer.h:70
consteval auto traits_for_impl()
Definition: traits.h:50
string_buffer< mark_size > mark
Definition: error.h:36
static constexpr std::size_t max_size
Definition: serializer.h:73
concept convertible
This concepts limits types to types that can be declared, that is the overload of 'traits_for' is ful...
Definition: traits.h:67
concept fixedly_sized
Definition: traits.h:74
Serializes values from definitions Ds to std::variant.
Definition: base.h:89
Each definition of item provided to protocol library should have specialization of 'proto_traits' str...
Definition: traits.h:44
Creates a segment starting with counter defined by CounterDef, this counter limits how many bytes are...
Definition: base.h:104
std::variant< int64_t, float, bool, string_buffer > value_type
Definition: base.h:51
constexpr Derived max(vec_point_base< Derived, N > const &a, vec_point_base< Derived, N > const &b)
Definition: vec_point_base.h:229
N
Definition: static_storage.h:97
concept with_value_type
Definition: concepts.h:182
decomposed_type< T > tuple_type
Definition: traits.h:299
T value_type
Definition: traits.h:298
traits_for< tuple_type > tuple_traits
Definition: traits.h:300
Follows a set of special data types used for definition of protocol.
Definition: base.h:79
D value_type
Definition: traits.h:79
std::size_t offset_type
Definition: traits.h:265
traits_for< offset_type > offset_traits
Definition: traits.h:268
traits_for< mark_type > mark_traits
Definition: traits.h:267
std::variant< typename traits_for< Ds >::value_type... > value_type
Definition: traits.h:206
uint16_t msg_size_type
Definition: traits.h:142
traits_for< msg_size_type > msg_size_traits
Definition: traits.h:145
typename sub_traits::value_type value_type
Definition: traits.h:187
traits_for< D > sub_traits
Definition: traits.h:186
traits_for< CounterType > counter_traits
Definition: traits.h:185
uint16_t counter_type
Definition: traits.h:278
std::array< D, N > value_type
Definition: traits.h:87
std::bitset< N > value_type
Definition: traits.h:124
traits_for< Rep > rep_traits
Definition: traits.h:253
std::chrono::duration< Rep, Ratio > value_type
Definition: traits.h:254
std::monostate value_type
Definition: traits.h:116
traits_for< presence_type > presence_traits
Definition: traits.h:289
std::optional< T > value_type
Definition: traits.h:287
std::tuple< typename traits_for< Ds >::value_type... > value_type
Definition: traits.h:95
traits_for< id_type > id_traits
Definition: traits.h:104
uint8_t id_type
Definition: traits.h:103
std::variant< typename traits_for< Ds >::value_type... > value_type
Definition: traits.h:105
uint16_t counter_type
Definition: traits.h:243
traits_for< counter_type > counter_traits
Definition: traits.h:244
traits_for< decltype(V) > sub_traits
Definition: traits.h:196
traits_for< sub_type > sub_traits
Definition: traits.h:224
std::variant< typename traits_for< Ds >::value_type... > value_type
Definition: traits.h:218
std::tuple< tag< D::id >, D > to_tuple
Definition: traits.h:221
traits_for< def_type > def_traits
Definition: traits.h:157
typename def_traits::value_type value_type
Definition: traits.h:158
typename value_offset< D, Offset >::def_type def_type
Definition: traits.h:156
tuple is high levle alternative to use just 'std::tuple' that is more friendly for standalone protoco...
Definition: tuple.h:43
The value defined by D present in the message is offseted by Offset.
Definition: base.h:113
D def_type
Definition: base.h:115
Definition: string_buffer.h:38