Skip to content

Commit 0f51824

Browse files
committed
Upgrade to serde 1.0
serde 1.0.0 introduces breaking changes. See the release notes for more details: <https://github.com/serde-rs/serde/releases/tag/v1.0.0>. Fixes #50
1 parent 032b03a commit 0f51824

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ expose-test-schema = []
2424
[dependencies]
2525
rustc-serialize = { version = "^0.3.19", optional = true }
2626
iron = { version = "^0.5.1", optional = true }
27-
serde = { version = "^0.9.1", optional = true }
27+
serde = { version = "^1.0.8", optional = true }
2828

2929
[dev-dependencies]
3030
iron = "^0.5.1"

src/integrations/serde.rs

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ impl<'a> ser::Serialize for GraphQLError<'a> {
4949
}
5050
}
5151

52-
impl de::Deserialize for InputValue {
52+
impl<'de> de::Deserialize<'de> for InputValue {
5353
fn deserialize<D>(deserializer: D) -> Result<InputValue, D::Error>
54-
where D: de::Deserializer,
54+
where D: de::Deserializer<'de>,
5555
{
5656
struct InputValueVisitor;
5757

58-
impl de::Visitor for InputValueVisitor {
58+
impl<'de> de::Visitor<'de> for InputValueVisitor {
5959
type Value = InputValue;
6060

6161
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
@@ -98,23 +98,32 @@ impl de::Deserialize for InputValue {
9898
Ok(InputValue::null())
9999
}
100100

101-
fn visit_seq<V>(self, visitor: V) -> Result<InputValue, V::Error>
102-
where V: de::SeqVisitor,
101+
fn visit_seq<V>(self, mut visitor: V) -> Result<InputValue, V::Error>
102+
where V: de::SeqAccess<'de>,
103103
{
104-
let values = try!(de::impls::VecVisitor::new().visit_seq(visitor));
104+
let mut values = Vec::new();
105+
106+
while let Some(el) = try!(visitor.next_element()) {
107+
values.push(el);
108+
}
109+
105110
Ok(InputValue::list(values))
106111
}
107112

108-
fn visit_map<V>(self, visitor: V) -> Result<InputValue, V::Error>
109-
where V: de::MapVisitor,
113+
fn visit_map<V>(self, mut visitor: V) -> Result<InputValue, V::Error>
114+
where V: de::MapAccess<'de>,
110115
{
111-
let values = try!(de::impls::HashMapVisitor::<String, InputValue, _>::new()
112-
.visit_map(visitor));
116+
let mut values: HashMap<String, InputValue> = HashMap::new();
117+
118+
while let Some((key, value)) = try!(visitor.next_entry()) {
119+
values.insert(key, value);
120+
}
121+
113122
Ok(InputValue::object(values))
114123
}
115124
}
116125

117-
deserializer.deserialize(InputValueVisitor)
126+
deserializer.deserialize_any(InputValueVisitor)
118127
}
119128
}
120129

0 commit comments

Comments
 (0)