]> git.lizzy.rs Git - rust.git/commitdiff
serialize: preallocate VecDeque in Decodable::decode
authorljedrz <ljedrz@gmail.com>
Wed, 21 Nov 2018 09:07:33 +0000 (10:07 +0100)
committerljedrz <ljedrz@gmail.com>
Wed, 21 Nov 2018 09:07:33 +0000 (10:07 +0100)
src/libserialize/collection_impls.rs

index 3e028d755c6d4a5dd89634954b8ad836bc1baa16..cbd642dd6ad918a435fb567ac40359b8863afaf3 100644 (file)
@@ -86,7 +86,7 @@ fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> {
 impl<T:Decodable> Decodable for VecDeque<T> {
     fn decode<D: Decoder>(d: &mut D) -> Result<VecDeque<T>, D::Error> {
         d.read_seq(|d, len| {
-            let mut deque: VecDeque<T> = VecDeque::new();
+            let mut deque: VecDeque<T> = VecDeque::with_capacity(len);
             for i in 0..len {
                 deque.push_back(d.read_seq_elt(i, |d| Decodable::decode(d))?);
             }