#include <array>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <span>
#include <tuple>
#include <type_traits>
#include "LittleEndian.h"
Go to the source code of this file.
|
| template<typename T > |
| constexpr std::size_t | Wire::detail::wireSize () |
| |
| template<typename Value > |
| constexpr void | Wire::detail::read (Value &value, std::span< const uint8_t > bytes, std::size_t offset) |
| |
| template<typename Value > |
| constexpr void | Wire::detail::write (std::span< uint8_t > bytes, std::size_t offset, const Value &value) |
| |
| template<Record T> |
| constexpr T | Wire::decode (std::span< const uint8_t > bytes, std::size_t offset=0) |
| | Decodes the record at offset. Fields whose bytes are unavailable decode as zero.
|
| |
| template<Record T> |
| constexpr std::array< uint8_t, SIZE< T > > | Wire::encode (const T &value) |
| |
|
| template<Record T> |
| constexpr std::size_t | Wire::SIZE = Layout<T>::SIZE |
| |
| template<Record T> |
| constexpr bool | Wire::VALID_LAYOUT |
| | Every field belongs to T, fits within SIZE<T> and overlaps no other field.
|
| |