|
| template<typename T , restrict2(std::is_pod< T >::value) > |
| auto | mutils::bytes_size (const T &) |
| | Just calls sizeof(T) More...
|
| |
| std::size_t | mutils::bytes_size (const ByteRepresentable &b) |
| | calls b.bytes_size() when b is a ByteRepresentable; calls sizeof(decay_t<decltype(b)>) when b is a POD; custom logic is implemented for some STL types. More...
|
| |
| std::size_t | mutils::bytes_size (const std::string &b) |
| | effectively strlen(). More...
|
| |
| template<typename... T> |
| std::size_t | mutils::bytes_size (const std::tuple< T... > &t) |
| |
| template<typename T , typename V > |
| std::size_t | mutils::bytes_size (const std::pair< T, V > &pair) |
| | sums the size of both pair elements More...
|
| |
| std::size_t | mutils::bytes_size (const std::vector< bool > &v) |
| | all of the elements of this vector, plus one int for the number of elements. More...
|
| |
| template<typename T > |
| std::size_t | mutils::bytes_size (const std::vector< T > &v) |
| |
| template<typename T > |
| std::size_t | mutils::bytes_size (const std::list< T > &list) |
| | Sums the size of all elements of this list, plus one int for the number of elements. More...
|
| |
| template<typename T > |
| std::size_t | mutils::bytes_size (const std::set< T > &s) |
| | All the elements of the set, plus one int for the number of elements. More...
|
| |
| template<typename K , typename V > |
| std::size_t | mutils::bytes_size (const std::map< K, V > &m) |
| | Sums the size of each key and value in the map, plus one int for the number of entries. More...
|
| |
| template<typename... T> |
| std::size_t | mutils::bytes_size_helper (const T &... t) |
| | Sums the size of each element of the tuple. More...
|
| |
| template<typename F , typename BR , typename... Args> |
| std::enable_if_t< std::is_pod< BR >::value > | mutils::post_object (const F &f, const BR &br, Args &&... args) |
| | In-place serialization is also sometimes possible. More...
|
| |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const ByteRepresentable &br) |
| |
| std::size_t | mutils::to_bytes (const ByteRepresentable &b, char *v) |
| | calls b.to_bytes(v) when b is a ByteRepresentable; calls std::memcpy() when b is POD. More...
|
| |
| std::size_t | mutils::to_bytes (const std::string &b, char *v) |
| | extracts the C string (char*) equivalent to this std::string and stores it in v More...
|
| |
| template<typename T > |
| std::enable_if_t< std::is_base_of< ByteRepresentable CMA T >::value, std::unique_ptr< T > > | mutils::from_bytes (DeserializationManager *ctx, char const *v) |
| | Calls T::from_bytes(ctx,v) when T is a ByteRepresentable. More...
|
| |
| template<typename T > |
| std::enable_if_t< std::is_pod< T >::value, std::unique_ptr< std::decay_t< T > > > | mutils::from_bytes (DeserializationManager *, char const *v) |
| | Calls T::from_bytes(ctx,v) when T is a ByteRepresentable. More...
|
| |
| template<typename T > |
| std::enable_if_t< std::is_base_of< ByteRepresentable CMA std::decay_t< T > >::value, context_ptr< T > > | mutils::from_bytes_noalloc (DeserializationManager *ctx, const char *v, context_ptr< std::decay_t< T >>=context_ptr< std::decay_t< T >>{}) |
| | Calls T::from_bytes_noalloc(ctx,v) when T is a ByteRepresentable. More...
|
| |
| template<typename T > |
| std::enable_if_t< std::is_pod< T >::value, context_ptr< std::decay_t< T > > > | mutils::from_bytes_noalloc (DeserializationManager *, char *v) |
| | Calls T::from_bytes_noalloc(ctx,v) when T is a ByteRepresentable. More...
|
| |
| template<typename T > |
| std::enable_if_t< std::is_pod< T >::value, context_ptr< const std::decay_t< T > > > | mutils::from_bytes_noalloc (DeserializationManager *, char const *const v, context_ptr< T >=context_ptr< T >{}) |
| |
| template<typename T , typename F > |
| auto | mutils::deserialize_and_run (DeserializationManager *dsm, char *v, const F &fun) |
| | Calls mutils::from_bytes_noalloc<T>(ctx,v), dereferences the result, and passes it to fun. More...
|
| |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::string &str) |
| |
| template<typename T , typename V > |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::pair< T, V > &pair) |
| |
| template<typename... T> |
| void | mutils::post_object_helper (const std::function< void(char const *const, std::size_t)> &f, const T &... t) |
| |
| template<typename... T> |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::tuple< T... > &t) |
| |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::vector< bool > &vec) |
| |
| template<typename T > |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::vector< T > &vec) |
| |
| template<typename T > |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::list< T > &list) |
| |
| template<typename T > |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::set< T > &s) |
| |
| template<typename K , typename V > |
| void | mutils::post_object (const std::function< void(char const *const, std::size_t)> &f, const std::map< K, V > &map) |
| |
| template<typename T , restrict(std::is_pod< T >::value) > |
| std::size_t | mutils::to_bytes (const T &t, char *v) |
| | Special to_bytes for POD types, which just uses memcpy. More...
|
| |
| std::size_t | mutils::to_bytes (const std::vector< bool > &vec, char *v) |
| |
| template<typename T > |
| std::size_t | mutils::to_bytes (const std::vector< T > &vec, char *v) |
| |
| template<typename T > |
| std::size_t | mutils::to_bytes (const std::list< T > &list, char *buffer) |
| |
| template<typename T , typename V > |
| std::size_t | mutils::to_bytes (const std::pair< T, V > &pair, char *buffer) |
| |
| template<typename... T> |
| std::size_t | mutils::to_bytes (const std::tuple< T... > &tuple, char *buffer) |
| |
| template<typename T > |
| std::size_t | mutils::to_bytes (const std::set< T > &s, char *_v) |
| |
| template<typename K , typename V > |
| std::size_t | mutils::to_bytes (const std::map< K, V > &m, char *buffer) |
| |
| template<typename T > |
| std::unique_ptr< type_check< std::is_integral, T > > | mutils::from_string (DeserializationManager *, char const *v, std::size_t length) |
| |
| template<typename T > |
| std::unique_ptr< type_check< std::is_floating_point, T > > | mutils::from_string (DeserializationManager *, char const *v, std::size_t length) |
| |
| template<typename T > |
| std::unique_ptr< type_check< is_string, T > > | mutils::from_string (DeserializationManager *, char const *v, std::size_t length) |
| |
| template<typename T > |
| std::enable_if_t< std::is_pod< T >::value, context_ptr< std::decay_t< T > > > | mutils::from_bytes_noalloc (DeserializationManager *, char *v, context_ptr< T >=context_ptr< T >{}) |
| |
| template<typename T > |
| std::unique_ptr< type_check< is_string, T > > | mutils::from_bytes (DeserializationManager *, char const *v) |
| |
| template<typename T > |
| context_ptr< type_check< is_string, T > > | mutils::from_bytes_noalloc (DeserializationManager *, char const *v, context_ptr< T >=context_ptr< T >{}) |
| |
| template<typename T > |
| std::unique_ptr< type_check< is_set, T > > | mutils::from_bytes (DeserializationManager *ctx, const char *_v) |
| |
| template<typename T > |
| context_ptr< type_check< is_set, T > > | mutils::from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| |
| template<typename T > |
| std::unique_ptr< type_check< is_pair, T > > | mutils::from_bytes (DeserializationManager *ctx, const char *v) |
| |
| template<typename L > |
| std::unique_ptr< type_check< is_list, L > > | mutils::from_bytes (DeserializationManager *ctx, const char *buffer) |
| |
| template<typename T > |
| context_ptr< type_check< is_pair, T > > | mutils::from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| |
| template<typename T > |
| std::unique_ptr< T > | mutils::boolvec_from_bytes (DeserializationManager *ctx, char const *v) |
| |
| template<typename TupleType , std::size_t N> |
| auto | mutils::from_bytes_helper (DeserializationManager *ctx, char const *v) |
| |
| template<typename T > |
| std::unique_ptr< type_check< is_tuple, T > > | mutils::from_bytes (DeserializationManager *ctx, char const *v) |
| |
| template<typename T > |
| std::enable_if_t< is_vector< T >::value, std::unique_ptr< T > > | mutils::from_bytes (DeserializationManager *ctx, char const *v) |
| |
| template<typename T > |
| context_ptr< type_check< is_vector, T > > | mutils::from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| |
| template<typename T > |
| std::enable_if_t< is_map< T >::value, std::unique_ptr< T > > | mutils::from_bytes (DeserializationManager *ctx, char const *buffer) |
| |
| template<typename T > |
| context_ptr< type_check< is_map, T > > | mutils::from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| |
| std::size_t | mutils::to_bytes_v (char *) |
| | For Serializing and Deserializing many objects at once. More...
|
| |
| template<typename T , typename... Rest> |
| std::size_t | mutils::to_bytes_v (char *buf, const T &first, const Rest &... rest) |
| |
| std::size_t | mutils::from_bytes_v (DeserializationManager *, char const *const) |
| |
| template<typename T , typename... Rest> |
| std::size_t | mutils::from_bytes_v (DeserializationManager *dsm, char const *const buf, std::unique_ptr< T > &first, Rest &... rest) |
| |
| std::size_t | mutils::from_bytes_noalloc_v (DeserializationManager *, char const *const) |
| |
| template<typename T , typename... Rest> |
| std::size_t | mutils::from_bytes_noalloc_v_nc (DeserializationManager *dsm, char *buf, context_ptr< T > &first, context_ptr< Rest > &... rest) |
| |
| template<typename T , typename... Rest> |
| std::size_t | mutils::from_bytes_noalloc_v (DeserializationManager *dsm, char *buf, context_ptr< T > &first, context_ptr< Rest > &... rest) |
| |
| template<typename T , typename... Rest> |
| std::size_t | mutils::from_bytes_noalloc_v (DeserializationManager *dsm, char const *const buf, context_ptr< const T > &first, context_ptr< const Rest > &... rest) |
| |
| template<typename F , typename R , typename... Args> |
| auto | mutils::deserialize_and_run (DeserializationManager *dsm, char const *const v, const F &fun, std::function< R(Args...)> const *const) |
| |
| template<typename F > |
| auto | mutils::deserialize_and_run (DeserializationManager *dsm, char const *const v, const F &fun) |
| |