mirror of
https://github.com/serde-rs/serde.git
synced 2025-10-02 23:35:26 +00:00
Map elts shouldn't be tuples, 4267ns vs 4900ns
This commit is contained in:
parent
e4fece35ad
commit
ac3136b2f3
@ -338,7 +338,6 @@ mod deserializer {
|
|||||||
self.stack.push(EndState);
|
self.stack.push(EndState);
|
||||||
let len = value.len();
|
let len = value.len();
|
||||||
for (key, value) in value.move_iter() {
|
for (key, value) in value.move_iter() {
|
||||||
self.stack.push(EndState);
|
|
||||||
match value {
|
match value {
|
||||||
Some(c) => {
|
Some(c) => {
|
||||||
self.stack.push(CharState(c));
|
self.stack.push(CharState(c));
|
||||||
@ -349,7 +348,6 @@ mod deserializer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.stack.push(StringState(key));
|
self.stack.push(StringState(key));
|
||||||
self.stack.push(TupleState(2));
|
|
||||||
}
|
}
|
||||||
Some(Ok(MapStart(len)))
|
Some(Ok(MapStart(len)))
|
||||||
}
|
}
|
||||||
|
9
de.rs
9
de.rs
@ -406,7 +406,8 @@ macro_rules! deserialize_map {
|
|||||||
match d.next() {
|
match d.next() {
|
||||||
Some(Ok(End)) => { break; }
|
Some(Ok(End)) => { break; }
|
||||||
Some(Ok(token)) => {
|
Some(Ok(token)) => {
|
||||||
let (k, v): (K, V) = try!(Deserializable::deserialize_token(d, token));
|
let k = try!(Deserializable::deserialize_token(d, token));
|
||||||
|
let v = try!(Deserializable::deserialize(d));
|
||||||
$seq.insert(k, v);
|
$seq.insert(k, v);
|
||||||
}
|
}
|
||||||
Some(Err(err)) => { return Err(err); }
|
Some(Err(err)) => { return Err(err); }
|
||||||
@ -768,7 +769,6 @@ mod tests {
|
|||||||
|
|
||||||
Str("c"),
|
Str("c"),
|
||||||
MapStart(1),
|
MapStart(1),
|
||||||
TupleStart(2),
|
|
||||||
String("abc".to_strbuf()),
|
String("abc".to_strbuf()),
|
||||||
|
|
||||||
Option(true),
|
Option(true),
|
||||||
@ -777,7 +777,6 @@ mod tests {
|
|||||||
End,
|
End,
|
||||||
End,
|
End,
|
||||||
End,
|
End,
|
||||||
End,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut deserializer = TokenDeserializer::new(tokens);
|
let mut deserializer = TokenDeserializer::new(tokens);
|
||||||
@ -889,18 +888,14 @@ mod tests {
|
|||||||
fn test_tokens_hashmap() {
|
fn test_tokens_hashmap() {
|
||||||
let tokens = vec!(
|
let tokens = vec!(
|
||||||
MapStart(2),
|
MapStart(2),
|
||||||
TupleStart(2),
|
|
||||||
Int(5),
|
Int(5),
|
||||||
|
|
||||||
String("a".to_strbuf()),
|
String("a".to_strbuf()),
|
||||||
End,
|
|
||||||
|
|
||||||
TupleStart(2),
|
|
||||||
Int(6),
|
Int(6),
|
||||||
|
|
||||||
String("b".to_strbuf()),
|
String("b".to_strbuf()),
|
||||||
End,
|
End,
|
||||||
End,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut deserializer = TokenDeserializer::new(tokens);
|
let mut deserializer = TokenDeserializer::new(tokens);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user