OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
format.hpp File Reference
#include "serializer.hpp"
#include "util/common/buffer.hpp"
#include "util/common/config.hpp"
#include "util/common/variant_overloaded.hpp"
#include <algorithm>
#include <array>
#include <cassert>
#include <cstdint>
#include <limits>
#include <optional>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <variant>
#include <vector>
Include dependency graph for util/serialization/format.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  cbdc
 

Functions

auto cbdc::operator<< (serializer &packet, std::byte b) -> serializer &
 Serializes the std::byte as a std::uint8_t.
 
auto cbdc::operator>> (serializer &packet, std::byte &b) -> serializer &
 Deserializes a single std::byte.
 
auto cbdc::operator<< (serializer &ser, const buffer &b) -> serializer &
 Serializes a raw byte buffer.
 
auto cbdc::operator>> (serializer &deser, buffer &b) -> serializer &
 Deserializes a raw byte buffer.
 
template<typename T >
auto cbdc::operator<< (serializer &s, T) -> typename std::enable_if_t< std::is_empty_v< T >, serializer & >
 Serializes nothing if T is an empty type.
 
template<typename T >
auto cbdc::operator>> (serializer &s, T &) -> typename std::enable_if_t< std::is_empty_v< T >, serializer & >
 Deserializes nothing if T is an empty type.
 
template<typename T , size_t len>
auto cbdc::operator<< (serializer &packet, const std::array< T, len > &arr) -> typename std::enable_if_t< std::is_integral_v< T >, serializer & >
 Serializes the array of integral values in-order.
 
template<typename T , size_t len>
auto cbdc::operator>> (serializer &packet, std::array< T, len > &arr) -> typename std::enable_if_t< std::is_integral_v< T >, serializer & >
 Deserializes the array of integral values in-order.
 
template<typename T >
auto cbdc::operator>> (serializer &deser, std::optional< T > &val) -> serializer &
 Deserializes an optional value.
 
template<typename T >
auto cbdc::operator<< (serializer &ser, const std::optional< T > &val) -> serializer &
 Serializes val.has_value(), and if val.has_value() == true, serializes the value itself.
 
template<typename A , typename B >
auto cbdc::operator<< (serializer &ser, const std::pair< A, B > &p) -> serializer &
 Serializes a pair of values: first, then second.
 
template<typename A , typename B >
auto cbdc::operator>> (serializer &deser, std::pair< A, B > &p) -> serializer &
 Deserializes a pair of values.
 
template<typename T >
auto cbdc::operator<< (serializer &packet, const std::vector< T > &vec) -> serializer &
 Serializes the count of elements in the vector, and then each element in-order.
 
template<typename T >
auto cbdc::operator>> (serializer &packet, std::vector< T > &vec) -> serializer &
 Deserializes a vector of elements.
 
template<typename K , typename V , typename... Ts>
auto cbdc::operator<< (serializer &ser, const std::unordered_map< K, V, Ts... > &map) -> serializer &
 Serializes the count of key-value pairs, and then each key and value, statically-casted.
 
template<typename K , typename V , typename... Ts>
auto cbdc::operator>> (serializer &deser, std::unordered_map< K, V, Ts... > &map) -> serializer &
 Deserializes an unordered map of key-value pairs.
 
template<typename K , typename... Ts>
auto cbdc::operator<< (serializer &ser, const std::set< K, Ts... > &set) -> serializer &
 Serializes the count of items, and then each item statically-casted.
 
template<typename K , typename... Ts>
auto cbdc::operator>> (serializer &deser, std::set< K, Ts... > &set) -> serializer &
 Deserializes a set of items.
 
template<typename K , typename... Ts>
auto cbdc::operator<< (serializer &ser, const std::unordered_set< K, Ts... > &set) -> serializer &
 Serializes the count of items, and then each item statically-casted.
 
template<typename K , typename... Ts>
auto cbdc::operator>> (serializer &deser, std::unordered_set< K, Ts... > &set) -> serializer &
 Deserializes an unordered set of items.
 
template<typename... Ts>
auto cbdc::operator<< (serializer &ser, const std::variant< Ts... > &var) -> serializer &
 Serializes the variant index of the value, and then the value itself.
 
template<typename... Ts>
auto cbdc::operator>> (serializer &deser, std::variant< Ts... > &var) -> std::enable_if_t<(std::is_default_constructible_v< Ts > &&...), serializer & >
 Deserializes a variant whose alternatives are default-constructible.
 
template<typename... Ts>
auto cbdc::get_variant (serializer &deser) -> std::variant< Ts... >
 Deserializes a variant where the alternatives are all default constructible or all are not default constructible If all alternatives are default constructible , each type must provide a constructor of the form T(serializer&) which deserializes the type from its argument.