GMP
0.4.0
Generative Metaprogramming library for C++
Loading...
Searching...
No Matches
serialization.hpp
Go to the documentation of this file.
1
// ___ __ __ ___
2
// / __| \/ | _ \ GMP(Generative Metaprogramming)
3
// | (_ | |\/| | _/ version 0.4.0
4
// \___|_| |_|_| https://github.com/lkimuk/gmp
5
//
6
// SPDX-FileCopyrightText: 2023-2026 Miles Li <https://www.cppmore.com/>
7
// SPDX-License-Identifier: MIT
8
//
9
// This file is part of the GMP (Generative Metaprogramming) library.
10
// Full project source: https://github.com/lkimuk/gmp
11
12
#ifndef GMP_SERIALIZATION_SERIALIZATION_HPP_
13
#define GMP_SERIALIZATION_SERIALIZATION_HPP_
14
15
#include <
gmp/serialization/archive.hpp
>
16
#include <
gmp/serialization/deserializer.hpp
>
17
#include <
gmp/serialization/error.hpp
>
18
#include <
gmp/serialization/options.hpp
>
19
#include <
gmp/serialization/serializer.hpp
>
20
#include <
gmp/serialization/traits.hpp
>
21
#include <
gmp/serialization/value.hpp
>
22
#include <
gmp/serialization/value_archive.hpp
>
23
24
namespace
gmp
{
25
26
template
<
typename
T>
27
serialization_result<serialization_value>
28
to_serialization_value
(
const
T &value,
serialization_options
options = {}) {
29
value_writer
writer
;
30
basic_serializer
archive
(
writer
, options);
31
auto
status
=
archive
.encode(value);
32
if
(!
status
) {
33
return
status
.error();
34
}
35
return
writer
.finish();
36
}
37
38
template
<
typename
T>
39
serialization_result<T>
from_serialization_value
(
const
serialization_value
&value,
40
deserialization_options
options = {}) {
41
value_reader
reader
(value);
42
basic_deserializer
archive
(
reader
, options);
43
return
archive
.template
decode<T>
();
44
}
45
46
}
// namespace gmp
47
48
#endif
// GMP_SERIALIZATION_SERIALIZATION_HPP_
archive.hpp
gmp::serialization_result
Definition
error.hpp:74
gmp::serialization_value
Definition
value.hpp:28
deserializer.hpp
error.hpp
gmp::enum_values
consteval auto enum_values()
Get all enumerator values of an enumeration type at compile-time.
Definition
meta.hpp:193
gmp
Definition
lock.hpp:21
gmp::to_serialization_value
serialization_result< serialization_value > to_serialization_value(const T &value, serialization_options options={})
Definition
serialization.hpp:28
gmp::from_serialization_value
serialization_result< T > from_serialization_value(const serialization_value &value, deserialization_options options={})
Definition
serialization.hpp:39
options.hpp
serializer.hpp
gmp::deserialization_options
Definition
options.hpp:35
gmp::serialization_options
Definition
options.hpp:29
traits.hpp
value.hpp
value_archive.hpp
include
gmp
serialization
serialization.hpp
Generated by
1.9.8