aboutsummaryrefslogtreecommitdiff
path: root/src/structs/ser.rs
diff options
context:
space:
mode:
authorIgor Tolmachev <me@igorek.dev>2024-07-20 16:52:39 +0900
committerIgor Tolmachev <me@igorek.dev>2024-07-20 16:52:39 +0900
commit7bcdc3b4ca460aec2b98fb2dca6165788c562b05 (patch)
tree63f9616fc1b7f9ca6e414a4d32910720e155690c /src/structs/ser.rs
parent5f4ceda88c7299deb317f8d22a99ab2521c5a380 (diff)
downloadarchivator-7bcdc3b4ca460aec2b98fb2dca6165788c562b05.tar.gz
archivator-7bcdc3b4ca460aec2b98fb2dca6165788c562b05.zip
Partial aes implementation and others improvements
Diffstat (limited to 'src/structs/ser.rs')
-rw-r--r--src/structs/ser.rs47
1 files changed, 20 insertions, 27 deletions
diff --git a/src/structs/ser.rs b/src/structs/ser.rs
index f7e694a..b633dff 100644
--- a/src/structs/ser.rs
+++ b/src/structs/ser.rs
@@ -1,5 +1,4 @@
1use crate::structs::{Settings, StructError, StructResult}; 1use crate::structs::{Settings, StructError, StructResult};
2use crate::ArchiveError;
3use serde::{ser, Serialize}; 2use serde::{ser, Serialize};
4 3
5pub struct ArchiveSerializer { 4pub struct ArchiveSerializer {
@@ -22,7 +21,7 @@ impl ArchiveSerializer {
22 21
23impl ser::Serializer for &mut ArchiveSerializer { 22impl ser::Serializer for &mut ArchiveSerializer {
24 type Ok = (); 23 type Ok = ();
25 type Error = ArchiveError<StructError>; 24 type Error = StructError;
26 25
27 type SerializeSeq = Self; 26 type SerializeSeq = Self;
28 type SerializeTuple = Self; 27 type SerializeTuple = Self;
@@ -89,25 +88,22 @@ impl ser::Serializer for &mut ArchiveSerializer {
89 88
90 #[inline] 89 #[inline]
91 fn serialize_char(self, _v: char) -> StructResult<()> { 90 fn serialize_char(self, _v: char) -> StructResult<()> {
92 Err(StructError::SerializationNotSupported { type_name: "char" }.into()) 91 Err(StructError::SerializationNotSupported("char"))
93 } 92 }
94 93
95 #[inline] 94 #[inline]
96 fn serialize_str(self, _v: &str) -> StructResult<()> { 95 fn serialize_str(self, _v: &str) -> StructResult<()> {
97 Err(StructError::SerializationNotSupported { type_name: "str" }.into()) 96 Err(StructError::SerializationNotSupported("str"))
98 } 97 }
99 98
100 #[inline] 99 #[inline]
101 fn serialize_bytes(self, _v: &[u8]) -> StructResult<()> { 100 fn serialize_bytes(self, _v: &[u8]) -> StructResult<()> {
102 Err(StructError::SerializationNotSupported { type_name: "bytes" }.into()) 101 Err(StructError::SerializationNotSupported("bytes"))
103 } 102 }
104 103
105 #[inline] 104 #[inline]
106 fn serialize_none(self) -> StructResult<()> { 105 fn serialize_none(self) -> StructResult<()> {
107 Err(StructError::SerializationNotSupported { 106 Err(StructError::SerializationNotSupported("optional"))
108 type_name: "optional",
109 }
110 .into())
111 } 107 }
112 108
113 #[inline] 109 #[inline]
@@ -115,10 +111,7 @@ impl ser::Serializer for &mut ArchiveSerializer {
115 where 111 where
116 T: ?Sized + Serialize, 112 T: ?Sized + Serialize,
117 { 113 {
118 Err(StructError::SerializationNotSupported { 114 Err(StructError::SerializationNotSupported("optional"))
119 type_name: "optional",
120 }
121 .into())
122 } 115 }
123 116
124 #[inline] 117 #[inline]
@@ -175,7 +168,7 @@ impl ser::Serializer for &mut ArchiveSerializer {
175 168
176 #[inline] 169 #[inline]
177 fn serialize_seq(self, _len: Option<usize>) -> StructResult<Self::SerializeSeq> { 170 fn serialize_seq(self, _len: Option<usize>) -> StructResult<Self::SerializeSeq> {
178 Err(StructError::SerializationNotSupported { type_name: "seq" }.into()) 171 Err(StructError::SerializationNotSupported("seq"))
179 } 172 }
180 173
181 #[inline] 174 #[inline]
@@ -210,7 +203,7 @@ impl ser::Serializer for &mut ArchiveSerializer {
210 203
211 #[inline] 204 #[inline]
212 fn serialize_map(self, _len: Option<usize>) -> StructResult<Self::SerializeMap> { 205 fn serialize_map(self, _len: Option<usize>) -> StructResult<Self::SerializeMap> {
213 Err(StructError::SerializationNotSupported { type_name: "map" }.into()) 206 Err(StructError::SerializationNotSupported("map"))
214 } 207 }
215 208
216 #[inline] 209 #[inline]
@@ -241,25 +234,25 @@ impl ser::Serializer for &mut ArchiveSerializer {
241 234
242impl ser::SerializeSeq for &mut ArchiveSerializer { 235impl ser::SerializeSeq for &mut ArchiveSerializer {
243 type Ok = (); 236 type Ok = ();
244 type Error = ArchiveError<StructError>; 237 type Error = StructError;
245 238
246 #[inline] 239 #[inline]
247 fn serialize_element<T>(&mut self, _value: &T) -> StructResult<()> 240 fn serialize_element<T>(&mut self, _value: &T) -> StructResult<()>
248 where 241 where
249 T: ?Sized + Serialize, 242 T: ?Sized + Serialize,
250 { 243 {
251 Err(StructError::SerializationNotSupported { type_name: "seq" }.into()) 244 Err(StructError::SerializationNotSupported("seq"))
252 } 245 }
253 246
254 #[inline] 247 #[inline]
255 fn end(self) -> StructResult<()> { 248 fn end(self) -> StructResult<()> {
256 Err(StructError::SerializationNotSupported { type_name: "seq" }.into()) 249 Err(StructError::SerializationNotSupported("seq"))
257 } 250 }
258} 251}
259 252
260impl ser::SerializeTuple for &mut ArchiveSerializer { 253impl ser::SerializeTuple for &mut ArchiveSerializer {
261 type Ok = (); 254 type Ok = ();
262 type Error = ArchiveError<StructError>; 255 type Error = StructError;
263 256
264 #[inline] 257 #[inline]
265 fn serialize_element<T>(&mut self, value: &T) -> StructResult<()> 258 fn serialize_element<T>(&mut self, value: &T) -> StructResult<()>
@@ -277,7 +270,7 @@ impl ser::SerializeTuple for &mut ArchiveSerializer {
277 270
278impl ser::SerializeTupleStruct for &mut ArchiveSerializer { 271impl ser::SerializeTupleStruct for &mut ArchiveSerializer {
279 type Ok = (); 272 type Ok = ();
280 type Error = ArchiveError<StructError>; 273 type Error = StructError;
281 274
282 #[inline] 275 #[inline]
283 fn serialize_field<T>(&mut self, value: &T) -> StructResult<()> 276 fn serialize_field<T>(&mut self, value: &T) -> StructResult<()>
@@ -295,7 +288,7 @@ impl ser::SerializeTupleStruct for &mut ArchiveSerializer {
295 288
296impl ser::SerializeTupleVariant for &mut ArchiveSerializer { 289impl ser::SerializeTupleVariant for &mut ArchiveSerializer {
297 type Ok = (); 290 type Ok = ();
298 type Error = ArchiveError<StructError>; 291 type Error = StructError;
299 292
300 #[inline] 293 #[inline]
301 fn serialize_field<T>(&mut self, value: &T) -> StructResult<()> 294 fn serialize_field<T>(&mut self, value: &T) -> StructResult<()>
@@ -313,14 +306,14 @@ impl ser::SerializeTupleVariant for &mut ArchiveSerializer {
313 306
314impl ser::SerializeMap for &mut ArchiveSerializer { 307impl ser::SerializeMap for &mut ArchiveSerializer {
315 type Ok = (); 308 type Ok = ();
316 type Error = ArchiveError<StructError>; 309 type Error = StructError;
317 310
318 #[inline] 311 #[inline]
319 fn serialize_key<T>(&mut self, _key: &T) -> StructResult<()> 312 fn serialize_key<T>(&mut self, _key: &T) -> StructResult<()>
320 where 313 where
321 T: ?Sized + Serialize, 314 T: ?Sized + Serialize,
322 { 315 {
323 Err(StructError::SerializationNotSupported { type_name: "map" }.into()) 316 Err(StructError::SerializationNotSupported("map"))
324 } 317 }
325 318
326 #[inline] 319 #[inline]
@@ -328,18 +321,18 @@ impl ser::SerializeMap for &mut ArchiveSerializer {
328 where 321 where
329 T: ?Sized + Serialize, 322 T: ?Sized + Serialize,
330 { 323 {
331 Err(StructError::SerializationNotSupported { type_name: "map" }.into()) 324 Err(StructError::SerializationNotSupported("map"))
332 } 325 }
333 326
334 #[inline] 327 #[inline]
335 fn end(self) -> StructResult<()> { 328 fn end(self) -> StructResult<()> {
336 Err(StructError::SerializationNotSupported { type_name: "map" }.into()) 329 Err(StructError::SerializationNotSupported("map"))
337 } 330 }
338} 331}
339 332
340impl ser::SerializeStruct for &mut ArchiveSerializer { 333impl ser::SerializeStruct for &mut ArchiveSerializer {
341 type Ok = (); 334 type Ok = ();
342 type Error = ArchiveError<StructError>; 335 type Error = StructError;
343 336
344 #[inline] 337 #[inline]
345 fn serialize_field<T>(&mut self, _key: &'static str, value: &T) -> StructResult<()> 338 fn serialize_field<T>(&mut self, _key: &'static str, value: &T) -> StructResult<()>
@@ -357,7 +350,7 @@ impl ser::SerializeStruct for &mut ArchiveSerializer {
357 350
358impl ser::SerializeStructVariant for &mut ArchiveSerializer { 351impl ser::SerializeStructVariant for &mut ArchiveSerializer {
359 type Ok = (); 352 type Ok = ();
360 type Error = ArchiveError<StructError>; 353 type Error = StructError;
361 354
362 #[inline] 355 #[inline]
363 fn serialize_field<T>(&mut self, _key: &'static str, value: &T) -> StructResult<()> 356 fn serialize_field<T>(&mut self, _key: &'static str, value: &T) -> StructResult<()>