diff options
| author | Igor Tolmachev <me@igorek.dev> | 2024-07-20 16:52:39 +0900 |
|---|---|---|
| committer | Igor Tolmachev <me@igorek.dev> | 2024-07-20 16:52:39 +0900 |
| commit | 7bcdc3b4ca460aec2b98fb2dca6165788c562b05 (patch) | |
| tree | 63f9616fc1b7f9ca6e414a4d32910720e155690c /src/structs/ser.rs | |
| parent | 5f4ceda88c7299deb317f8d22a99ab2521c5a380 (diff) | |
| download | archivator-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.rs | 47 |
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 @@ | |||
| 1 | use crate::structs::{Settings, StructError, StructResult}; | 1 | use crate::structs::{Settings, StructError, StructResult}; |
| 2 | use crate::ArchiveError; | ||
| 3 | use serde::{ser, Serialize}; | 2 | use serde::{ser, Serialize}; |
| 4 | 3 | ||
| 5 | pub struct ArchiveSerializer { | 4 | pub struct ArchiveSerializer { |
| @@ -22,7 +21,7 @@ impl ArchiveSerializer { | |||
| 22 | 21 | ||
| 23 | impl ser::Serializer for &mut ArchiveSerializer { | 22 | impl 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 | ||
| 242 | impl ser::SerializeSeq for &mut ArchiveSerializer { | 235 | impl 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 | ||
| 260 | impl ser::SerializeTuple for &mut ArchiveSerializer { | 253 | impl 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 | ||
| 278 | impl ser::SerializeTupleStruct for &mut ArchiveSerializer { | 271 | impl 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 | ||
| 296 | impl ser::SerializeTupleVariant for &mut ArchiveSerializer { | 289 | impl 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 | ||
| 314 | impl ser::SerializeMap for &mut ArchiveSerializer { | 307 | impl 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 | ||
| 340 | impl ser::SerializeStruct for &mut ArchiveSerializer { | 333 | impl 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 | ||
| 358 | impl ser::SerializeStructVariant for &mut ArchiveSerializer { | 351 | impl 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<()> |
