5
5
6
6
namespace BUFFI_NAMESPACE {
7
7
8
+ struct CustomType ;
9
+
10
+ // / A custom type that needs to be available in C++ as well
11
+ struct CustomType {
12
+ // / Some content
13
+ int64_t some_content;
14
+ // / A cyclic reference that's a bit more complex
15
+ std::optional<serde::value_ptr<BUFFI_NAMESPACE::CustomType>> itself;
16
+
17
+ friend bool operator ==(const CustomType&, const CustomType&);
18
+ std::vector<uint8_t > bincodeSerialize () const ;
19
+ static CustomType bincodeDeserialize (std::vector<uint8_t >);
20
+ };
21
+
8
22
struct SerializableError {
9
23
std::string message;
10
24
@@ -13,6 +27,31 @@ namespace BUFFI_NAMESPACE {
13
27
static SerializableError bincodeDeserialize (std::vector<uint8_t >);
14
28
};
15
29
30
+ struct Result_CustomType_SerializableError {
31
+
32
+ struct Ok {
33
+ std::tuple<BUFFI_NAMESPACE::CustomType> value;
34
+
35
+ friend bool operator ==(const Ok&, const Ok&);
36
+ std::vector<uint8_t > bincodeSerialize () const ;
37
+ static Ok bincodeDeserialize (std::vector<uint8_t >);
38
+ };
39
+
40
+ struct Err {
41
+ std::tuple<BUFFI_NAMESPACE::SerializableError> value;
42
+
43
+ friend bool operator ==(const Err&, const Err&);
44
+ std::vector<uint8_t > bincodeSerialize () const ;
45
+ static Err bincodeDeserialize (std::vector<uint8_t >);
46
+ };
47
+
48
+ std::variant<Ok, Err> value;
49
+
50
+ friend bool operator ==(const Result_CustomType_SerializableError&, const Result_CustomType_SerializableError&);
51
+ std::vector<uint8_t > bincodeSerialize () const ;
52
+ static Result_CustomType_SerializableError bincodeDeserialize (std::vector<uint8_t >);
53
+ };
54
+
16
55
struct Result_String_SerializableError {
17
56
18
57
struct Ok {
@@ -66,6 +105,169 @@ namespace BUFFI_NAMESPACE {
66
105
} // end of namespace BUFFI_NAMESPACE
67
106
68
107
108
+ namespace BUFFI_NAMESPACE {
109
+
110
+ inline bool operator ==(const CustomType &lhs, const CustomType &rhs) {
111
+ if (!(lhs.some_content == rhs.some_content )) { return false ; }
112
+ if (!(lhs.itself == rhs.itself )) { return false ; }
113
+ return true ;
114
+ }
115
+
116
+ inline std::vector<uint8_t > CustomType::bincodeSerialize () const {
117
+ auto serializer = serde::BincodeSerializer ();
118
+ serde::Serializable<CustomType>::serialize (*this , serializer);
119
+ return std::move (serializer).bytes ();
120
+ }
121
+
122
+ inline CustomType CustomType::bincodeDeserialize (std::vector<uint8_t > input) {
123
+ auto deserializer = serde::BincodeDeserializer (input);
124
+ auto value = serde::Deserializable<CustomType>::deserialize (deserializer);
125
+ if (deserializer.get_buffer_offset () < input.size ()) {
126
+ throw serde::deserialization_error (" Some input bytes were not read" );
127
+ }
128
+ return value;
129
+ }
130
+
131
+ } // end of namespace BUFFI_NAMESPACE
132
+
133
+ template <>
134
+ template <typename Serializer>
135
+ void serde::Serializable<BUFFI_NAMESPACE::CustomType>::serialize(const BUFFI_NAMESPACE::CustomType &obj, Serializer &serializer) {
136
+ serializer.increase_container_depth ();
137
+ serde::Serializable<decltype (obj.some_content )>::serialize (obj.some_content , serializer);
138
+ serde::Serializable<decltype (obj.itself )>::serialize (obj.itself , serializer);
139
+ serializer.decrease_container_depth ();
140
+ }
141
+
142
+ template <>
143
+ template <typename Deserializer>
144
+ BUFFI_NAMESPACE::CustomType serde::Deserializable<BUFFI_NAMESPACE::CustomType>::deserialize(Deserializer &deserializer) {
145
+ deserializer.increase_container_depth ();
146
+ BUFFI_NAMESPACE::CustomType obj;
147
+ obj.some_content = serde::Deserializable<decltype (obj.some_content )>::deserialize (deserializer);
148
+ obj.itself = serde::Deserializable<decltype (obj.itself )>::deserialize (deserializer);
149
+ deserializer.decrease_container_depth ();
150
+ return obj;
151
+ }
152
+
153
+ namespace BUFFI_NAMESPACE {
154
+
155
+ inline bool operator ==(const Result_CustomType_SerializableError &lhs, const Result_CustomType_SerializableError &rhs) {
156
+ if (!(lhs.value == rhs.value )) { return false ; }
157
+ return true ;
158
+ }
159
+
160
+ inline std::vector<uint8_t > Result_CustomType_SerializableError::bincodeSerialize () const {
161
+ auto serializer = serde::BincodeSerializer ();
162
+ serde::Serializable<Result_CustomType_SerializableError>::serialize (*this , serializer);
163
+ return std::move (serializer).bytes ();
164
+ }
165
+
166
+ inline Result_CustomType_SerializableError Result_CustomType_SerializableError::bincodeDeserialize (std::vector<uint8_t > input) {
167
+ auto deserializer = serde::BincodeDeserializer (input);
168
+ auto value = serde::Deserializable<Result_CustomType_SerializableError>::deserialize (deserializer);
169
+ if (deserializer.get_buffer_offset () < input.size ()) {
170
+ throw serde::deserialization_error (" Some input bytes were not read" );
171
+ }
172
+ return value;
173
+ }
174
+
175
+ } // end of namespace BUFFI_NAMESPACE
176
+
177
+ template <>
178
+ template <typename Serializer>
179
+ void serde::Serializable<BUFFI_NAMESPACE::Result_CustomType_SerializableError>::serialize(const BUFFI_NAMESPACE::Result_CustomType_SerializableError &obj, Serializer &serializer) {
180
+ serializer.increase_container_depth ();
181
+ serde::Serializable<decltype (obj.value )>::serialize (obj.value , serializer);
182
+ serializer.decrease_container_depth ();
183
+ }
184
+
185
+ template <>
186
+ template <typename Deserializer>
187
+ BUFFI_NAMESPACE::Result_CustomType_SerializableError serde::Deserializable<BUFFI_NAMESPACE::Result_CustomType_SerializableError>::deserialize(Deserializer &deserializer) {
188
+ deserializer.increase_container_depth ();
189
+ BUFFI_NAMESPACE::Result_CustomType_SerializableError obj;
190
+ obj.value = serde::Deserializable<decltype (obj.value )>::deserialize (deserializer);
191
+ deserializer.decrease_container_depth ();
192
+ return obj;
193
+ }
194
+
195
+ namespace BUFFI_NAMESPACE {
196
+
197
+ inline bool operator ==(const Result_CustomType_SerializableError::Ok &lhs, const Result_CustomType_SerializableError::Ok &rhs) {
198
+ if (!(lhs.value == rhs.value )) { return false ; }
199
+ return true ;
200
+ }
201
+
202
+ inline std::vector<uint8_t > Result_CustomType_SerializableError::Ok::bincodeSerialize () const {
203
+ auto serializer = serde::BincodeSerializer ();
204
+ serde::Serializable<Result_CustomType_SerializableError::Ok>::serialize (*this , serializer);
205
+ return std::move (serializer).bytes ();
206
+ }
207
+
208
+ inline Result_CustomType_SerializableError::Ok Result_CustomType_SerializableError::Ok::bincodeDeserialize (std::vector<uint8_t > input) {
209
+ auto deserializer = serde::BincodeDeserializer (input);
210
+ auto value = serde::Deserializable<Result_CustomType_SerializableError::Ok>::deserialize (deserializer);
211
+ if (deserializer.get_buffer_offset () < input.size ()) {
212
+ throw serde::deserialization_error (" Some input bytes were not read" );
213
+ }
214
+ return value;
215
+ }
216
+
217
+ } // end of namespace BUFFI_NAMESPACE
218
+
219
+ template <>
220
+ template <typename Serializer>
221
+ void serde::Serializable<BUFFI_NAMESPACE::Result_CustomType_SerializableError::Ok>::serialize(const BUFFI_NAMESPACE::Result_CustomType_SerializableError::Ok &obj, Serializer &serializer) {
222
+ serde::Serializable<decltype (obj.value )>::serialize (obj.value , serializer);
223
+ }
224
+
225
+ template <>
226
+ template <typename Deserializer>
227
+ BUFFI_NAMESPACE::Result_CustomType_SerializableError::Ok serde::Deserializable<BUFFI_NAMESPACE::Result_CustomType_SerializableError::Ok>::deserialize(Deserializer &deserializer) {
228
+ BUFFI_NAMESPACE::Result_CustomType_SerializableError::Ok obj;
229
+ obj.value = serde::Deserializable<decltype (obj.value )>::deserialize (deserializer);
230
+ return obj;
231
+ }
232
+
233
+ namespace BUFFI_NAMESPACE {
234
+
235
+ inline bool operator ==(const Result_CustomType_SerializableError::Err &lhs, const Result_CustomType_SerializableError::Err &rhs) {
236
+ if (!(lhs.value == rhs.value )) { return false ; }
237
+ return true ;
238
+ }
239
+
240
+ inline std::vector<uint8_t > Result_CustomType_SerializableError::Err::bincodeSerialize () const {
241
+ auto serializer = serde::BincodeSerializer ();
242
+ serde::Serializable<Result_CustomType_SerializableError::Err>::serialize (*this , serializer);
243
+ return std::move (serializer).bytes ();
244
+ }
245
+
246
+ inline Result_CustomType_SerializableError::Err Result_CustomType_SerializableError::Err::bincodeDeserialize (std::vector<uint8_t > input) {
247
+ auto deserializer = serde::BincodeDeserializer (input);
248
+ auto value = serde::Deserializable<Result_CustomType_SerializableError::Err>::deserialize (deserializer);
249
+ if (deserializer.get_buffer_offset () < input.size ()) {
250
+ throw serde::deserialization_error (" Some input bytes were not read" );
251
+ }
252
+ return value;
253
+ }
254
+
255
+ } // end of namespace BUFFI_NAMESPACE
256
+
257
+ template <>
258
+ template <typename Serializer>
259
+ void serde::Serializable<BUFFI_NAMESPACE::Result_CustomType_SerializableError::Err>::serialize(const BUFFI_NAMESPACE::Result_CustomType_SerializableError::Err &obj, Serializer &serializer) {
260
+ serde::Serializable<decltype (obj.value )>::serialize (obj.value , serializer);
261
+ }
262
+
263
+ template <>
264
+ template <typename Deserializer>
265
+ BUFFI_NAMESPACE::Result_CustomType_SerializableError::Err serde::Deserializable<BUFFI_NAMESPACE::Result_CustomType_SerializableError::Err>::deserialize(Deserializer &deserializer) {
266
+ BUFFI_NAMESPACE::Result_CustomType_SerializableError::Err obj;
267
+ obj.value = serde::Deserializable<decltype (obj.value )>::deserialize (deserializer);
268
+ return obj;
269
+ }
270
+
69
271
namespace BUFFI_NAMESPACE {
70
272
71
273
inline bool operator ==(const Result_String_SerializableError &lhs, const Result_String_SerializableError &rhs) {
0 commit comments