]> git.proxmox.com Git - rustc.git/blobdiff - vendor/generic-array-0.12.3/src/impl_serde.rs
Merge tag 'debian/1.52.1+dfsg1-1_exp2' into proxmox/buster
[rustc.git] / vendor / generic-array-0.12.3 / src / impl_serde.rs
diff --git a/vendor/generic-array-0.12.3/src/impl_serde.rs b/vendor/generic-array-0.12.3/src/impl_serde.rs
deleted file mode 100644 (file)
index 7bf20ba..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-//! Serde serialization/deserialization implementation\r
-\r
-use core::fmt;\r
-use core::marker::PhantomData;\r
-use serde::de::{self, SeqAccess, Visitor};\r
-use serde::{ser::SerializeTuple, Deserialize, Deserializer, Serialize, Serializer};\r
-use {ArrayLength, GenericArray};\r
-\r
-impl<T, N> Serialize for GenericArray<T, N>\r
-where\r
-    T: Serialize,\r
-    N: ArrayLength<T>,\r
-{\r
-    #[inline]\r
-    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>\r
-    where\r
-        S: Serializer,\r
-    {\r
-        let mut tup = serializer.serialize_tuple(N::to_usize())?;\r
-        for el in self {\r
-            tup.serialize_element(el)?;\r
-        }\r
-\r
-        tup.end()\r
-    }\r
-}\r
-\r
-struct GAVisitor<T, N> {\r
-    _t: PhantomData<T>,\r
-    _n: PhantomData<N>,\r
-}\r
-\r
-impl<'de, T, N> Visitor<'de> for GAVisitor<T, N>\r
-where\r
-    T: Deserialize<'de> + Default,\r
-    N: ArrayLength<T>,\r
-{\r
-    type Value = GenericArray<T, N>;\r
-\r
-    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\r
-        formatter.write_str("struct GenericArray")\r
-    }\r
-\r
-    fn visit_seq<A>(self, mut seq: A) -> Result<GenericArray<T, N>, A::Error>\r
-    where\r
-        A: SeqAccess<'de>,\r
-    {\r
-        let mut result = GenericArray::default();\r
-        for i in 0..N::to_usize() {\r
-            result[i] = seq\r
-                .next_element()?\r
-                .ok_or_else(|| de::Error::invalid_length(i, &self))?;\r
-        }\r
-        Ok(result)\r
-    }\r
-}\r
-\r
-impl<'de, T, N> Deserialize<'de> for GenericArray<T, N>\r
-where\r
-    T: Deserialize<'de> + Default,\r
-    N: ArrayLength<T>,\r
-{\r
-    fn deserialize<D>(deserializer: D) -> Result<GenericArray<T, N>, D::Error>\r
-    where\r
-        D: Deserializer<'de>,\r
-    {\r
-        let visitor = GAVisitor {\r
-            _t: PhantomData,\r
-            _n: PhantomData,\r
-        };\r
-        deserializer.deserialize_tuple(N::to_usize(), visitor)\r
-    }\r
-}\r
-\r
-#[cfg(test)]\r
-mod tests {\r
-    use super::*;\r
-    use bincode;\r
-    use typenum;\r
-\r
-    #[test]\r
-    fn test_serialize() {\r
-        let array = GenericArray::<u8, typenum::U2>::default();\r
-        let serialized = bincode::serialize(&array);\r
-        assert!(serialized.is_ok());\r
-    }\r
-\r
-    #[test]\r
-    fn test_deserialize() {\r
-        let mut array = GenericArray::<u8, typenum::U2>::default();\r
-        array[0] = 1;\r
-        array[1] = 2;\r
-        let serialized = bincode::serialize(&array).unwrap();\r
-        let deserialized = bincode::deserialize::<GenericArray<u8, typenum::U2>>(&array);\r
-        assert!(deserialized.is_ok());\r
-        let array = deserialized.unwrap();\r
-        assert_eq!(array[0], 1);\r
-        assert_eq!(array[1], 2);\r
-    }\r
-\r
-    #[test]\r
-    fn test_serialized_size() {\r
-        let array = GenericArray::<u8, typenum::U1>::default();\r
-        let size = bincode::serialized_size(&array).unwrap();\r
-        assert_eq!(size, 1);\r
-    }\r
-\r
-}\r