Skip to content

Commit 4fbb8ea

Browse files
authored
Merge pull request #73 from jimmycuadra/serde-0.9
Update to Serde 0.9.
2 parents 69086c3 + 649b4af commit 4fbb8ea

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ serde_impl = ["serde", "serde_test"]
2121

2222
[dependencies]
2323
clippy = { version = "0.*", optional = true }
24-
serde = { version = "^0.8", optional = true }
25-
serde_test = { version = "^0.8", optional = true }
24+
serde = { version = "0.9", optional = true }
25+
serde_test = { version = "0.9", optional = true }

src/lib.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -682,10 +682,6 @@ impl<K: Hash + Eq, V: PartialEq, S: BuildHasher> PartialEq for LinkedHashMap<K,
682682
fn eq(&self, other: &Self) -> bool {
683683
self.len() == other.len() && self.iter().eq(other)
684684
}
685-
686-
fn ne(&self, other: &Self) -> bool {
687-
self.len() != other.len() || self.iter().ne(other)
688-
}
689685
}
690686

691687
impl<K: Hash + Eq, V: Eq, S: BuildHasher> Eq for LinkedHashMap<K, V, S> {}

src/serde.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
1010
extern crate serde;
1111

12+
use std::fmt::{Formatter, Result as FmtResult};
1213
use std::marker::PhantomData;
1314
use std::hash::{BuildHasher, Hash};
1415

1516
use super::LinkedHashMap;
1617

1718
use self::serde::{Serialize, Serializer, Deserialize, Deserializer};
19+
use self::serde::ser::SerializeMap;
1820
use self::serde::de::{Visitor, MapVisitor, Error};
1921

2022
impl<K, V, S> Serialize for LinkedHashMap<K, V, S>
@@ -23,15 +25,15 @@ impl<K, V, S> Serialize for LinkedHashMap<K, V, S>
2325
S: BuildHasher
2426
{
2527
#[inline]
26-
fn serialize<T>(&self, serializer: &mut T) -> Result<(), T::Error>
28+
fn serialize<T>(&self, serializer:T) -> Result<T::Ok, T::Error>
2729
where T: Serializer,
2830
{
29-
let mut state = try!(serializer.serialize_map(Some(self.len())));
31+
let mut map_serializer = try!(serializer.serialize_map(Some(self.len())));
3032
for (k, v) in self {
31-
try!(serializer.serialize_map_key(&mut state, k));
32-
try!(serializer.serialize_map_value(&mut state, v));
33+
try!(map_serializer.serialize_key(k));
34+
try!(map_serializer.serialize_value(v));
3335
}
34-
serializer.serialize_map_end(state)
36+
map_serializer.end()
3537
}
3638
}
3739

@@ -55,15 +57,19 @@ impl<K, V> Visitor for LinkedHashMapVisitor<K, V>
5557
{
5658
type Value = LinkedHashMap<K, V>;
5759

60+
fn expecting(&self, formatter: &mut Formatter) -> FmtResult {
61+
write!(formatter, "a map")
62+
}
63+
5864
#[inline]
59-
fn visit_unit<E>(&mut self) -> Result<Self::Value, E>
65+
fn visit_unit<E>(self) -> Result<Self::Value, E>
6066
where E: Error,
6167
{
6268
Ok(LinkedHashMap::new())
6369
}
6470

6571
#[inline]
66-
fn visit_map<Visitor>(&mut self, mut visitor: Visitor) -> Result<Self::Value, Visitor::Error>
72+
fn visit_map<Visitor>(self, mut visitor: Visitor) -> Result<Self::Value, Visitor::Error>
6773
where Visitor: MapVisitor,
6874
{
6975
let mut values = LinkedHashMap::with_capacity(visitor.size_hint().0);
@@ -72,8 +78,6 @@ impl<K, V> Visitor for LinkedHashMapVisitor<K, V>
7278
values.insert(key, value);
7379
}
7480

75-
try!(visitor.end());
76-
7781
Ok(values)
7882
}
7983
}
@@ -82,7 +86,7 @@ impl<K, V> Deserialize for LinkedHashMap<K, V>
8286
where K: Deserialize + Eq + Hash,
8387
V: Deserialize,
8488
{
85-
fn deserialize<D>(deserializer: &mut D) -> Result<LinkedHashMap<K, V>, D::Error>
89+
fn deserialize<D>(deserializer: D) -> Result<LinkedHashMap<K, V>, D::Error>
8690
where D: Deserializer,
8791
{
8892
deserializer.deserialize_map(LinkedHashMapVisitor::new())

0 commit comments

Comments
 (0)