emlabcpp
modern opinionated embedded C++ library
base.h File Reference
#include "../bounded.h"
#include "./error.h"
#include <bit>
#include <bitset>
#include <cstring>
#include <type_traits>
#include <variant>
+ Include dependency graph for base.h:

Go to the source code of this file.

Classes

struct  emlabcpp::protocol::conversion_result
 
struct  emlabcpp::protocol::endianess_wrapper< Endianess, D >
 Follows a set of special data types used for definition of protocol. More...
 
struct  emlabcpp::protocol::group< Ds >
 Serializes values from definitions Ds to std::variant. More...
 
struct  emlabcpp::protocol::tag_group< Ds >
 
struct  emlabcpp::protocol::sized_buffer< CounterDef, D >
 Creates a segment starting with counter defined by CounterDef, this counter limits how many bytes are passed to deserialization process, bytes after the limit ale not considered by this segment. More...
 
struct  emlabcpp::protocol::value_offset< D, Offset >
 The value defined by D present in the message is offseted by Offset. More...
 
struct  emlabcpp::protocol::converter_def_type_base
 More complex constructs have custom mechanics that internally produces def_type alias used by the library to serialize/deserialize it. More...
 

Namespaces

 emlabcpp
 MIT License.
 
 emlabcpp::protocol
 MIT License.
 

Variables

template<typename T >
concept emlabcpp::protocol::base_type = std::is_floating_point_v< T > || std::is_integral_v< T > || std::is_enum_v< T >
 Concept that matches types considered base - serialized directly by using byte shifting. More...
 

Class Documentation

◆ emlabcpp::protocol::group

struct emlabcpp::protocol::group

template<typename... Ds>
struct emlabcpp::protocol::group< Ds >

Serializes values from definitions Ds to std::variant.

The byte message does not contain identificator of variant used, rather the first definition that manages to deserialize the message is used.

Class Members
def_type

◆ emlabcpp::protocol::tag_group

struct emlabcpp::protocol::tag_group

template<typename... Ds>
struct emlabcpp::protocol::tag_group< Ds >

Class Members
def_type

◆ emlabcpp::protocol::sized_buffer

struct emlabcpp::protocol::sized_buffer

template<typename CounterDef, typename D>
struct emlabcpp::protocol::sized_buffer< CounterDef, D >

Creates a segment starting with counter defined by CounterDef, this counter limits how many bytes are passed to deserialization process, bytes after the limit ale not considered by this segment.

Class Members
typedef CounterDef counter_type
typedef D def_type