Map elts shouldn't be tuples, 4267ns vs 4900ns

This commit is contained in:
Erick Tryzelaar 2014-05-26 09:01:22 -07:00
parent e4fece35ad
commit ac3136b2f3
2 changed files with 9 additions and 16 deletions

View File

@ -338,7 +338,6 @@ mod deserializer {
self.stack.push(EndState);
let len = value.len();
for (key, value) in value.move_iter() {
self.stack.push(EndState);
match value {
Some(c) => {
self.stack.push(CharState(c));
@ -349,7 +348,6 @@ mod deserializer {
}
}
self.stack.push(StringState(key));
self.stack.push(TupleState(2));
}
Some(Ok(MapStart(len)))
}

9
de.rs
View File

@ -406,7 +406,8 @@ macro_rules! deserialize_map {
match d.next() {
Some(Ok(End)) => { break; }
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);
}
Some(Err(err)) => { return Err(err); }
@ -768,7 +769,6 @@ mod tests {
Str("c"),
MapStart(1),
TupleStart(2),
String("abc".to_strbuf()),
Option(true),
@ -777,7 +777,6 @@ mod tests {
End,
End,
End,
End,
);
let mut deserializer = TokenDeserializer::new(tokens);
@ -889,18 +888,14 @@ mod tests {
fn test_tokens_hashmap() {
let tokens = vec!(
MapStart(2),
TupleStart(2),
Int(5),
String("a".to_strbuf()),
End,
TupleStart(2),
Int(6),
String("b".to_strbuf()),
End,
End,
);
let mut deserializer = TokenDeserializer::new(tokens);