]> git.lizzy.rs Git - rust.git/commitdiff
Delete Decoder::read_map
authorMark Rousskov <mark.simulacrum@gmail.com>
Wed, 9 Feb 2022 23:19:18 +0000 (18:19 -0500)
committerMark Rousskov <mark.simulacrum@gmail.com>
Sun, 20 Feb 2022 23:58:23 +0000 (18:58 -0500)
compiler/rustc_serialize/src/collection_impls.rs
compiler/rustc_serialize/src/serialize.rs

index 41faf4f70ac633970fb662bdb97a6815a9a3f9c2..dee6dc010feef8046769ec2f4b1b7fca54cf23cf 100644 (file)
@@ -81,15 +81,14 @@ impl<D: Decoder, K, V> Decodable<D> for BTreeMap<K, V>
     V: Decodable<D>,
 {
     fn decode(d: &mut D) -> BTreeMap<K, V> {
-        d.read_map(|d, len| {
-            let mut map = BTreeMap::new();
-            for _ in 0..len {
-                let key = Decodable::decode(d);
-                let val = Decodable::decode(d);
-                map.insert(key, val);
-            }
-            map
-        })
+        let len = d.read_usize();
+        let mut map = BTreeMap::new();
+        for _ in 0..len {
+            let key = Decodable::decode(d);
+            let val = Decodable::decode(d);
+            map.insert(key, val);
+        }
+        map
     }
 }
 
@@ -145,16 +144,15 @@ impl<D: Decoder, K, V, S> Decodable<D> for HashMap<K, V, S>
     S: BuildHasher + Default,
 {
     fn decode(d: &mut D) -> HashMap<K, V, S> {
-        d.read_map(|d, len| {
-            let state = Default::default();
-            let mut map = HashMap::with_capacity_and_hasher(len, state);
-            for _ in 0..len {
-                let key = Decodable::decode(d);
-                let val = Decodable::decode(d);
-                map.insert(key, val);
-            }
-            map
-        })
+        let len = d.read_usize();
+        let state = Default::default();
+        let mut map = HashMap::with_capacity_and_hasher(len, state);
+        for _ in 0..len {
+            let key = Decodable::decode(d);
+            let val = Decodable::decode(d);
+            map.insert(key, val);
+        }
+        map
     }
 }
 
@@ -223,16 +221,15 @@ impl<D: Decoder, K, V, S> Decodable<D> for indexmap::IndexMap<K, V, S>
     S: BuildHasher + Default,
 {
     fn decode(d: &mut D) -> indexmap::IndexMap<K, V, S> {
-        d.read_map(|d, len| {
-            let state = Default::default();
-            let mut map = indexmap::IndexMap::with_capacity_and_hasher(len, state);
-            for _ in 0..len {
-                let key = Decodable::decode(d);
-                let val = Decodable::decode(d);
-                map.insert(key, val);
-            }
-            map
-        })
+        let len = d.read_usize();
+        let state = Default::default();
+        let mut map = indexmap::IndexMap::with_capacity_and_hasher(len, state);
+        for _ in 0..len {
+            let key = Decodable::decode(d);
+            let val = Decodable::decode(d);
+            map.insert(key, val);
+        }
+        map
     }
 }
 
index e36e3033fcc891598a5a93e02a71652587b8f992..a012be2857e1eb802aa1a7e0d004617663c6df6b 100644 (file)
@@ -200,14 +200,6 @@ pub trait Decoder {
     fn read_char(&mut self) -> char;
     fn read_str(&mut self) -> Cow<'_, str>;
     fn read_raw_bytes_into(&mut self, s: &mut [u8]);
-
-    fn read_map<T, F>(&mut self, f: F) -> T
-    where
-        F: FnOnce(&mut Self, usize) -> T,
-    {
-        let len = self.read_usize();
-        f(self, len)
-    }
 }
 
 /// Trait for types that can be serialized