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
-2
View File
@@ -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 -14
View File
@@ -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,12 +769,10 @@ mod tests {
Str("c"), Str("c"),
MapStart(1), MapStart(1),
TupleStart(2), String("abc".to_strbuf()),
String("abc".to_strbuf()),
Option(true), Option(true),
Char('c'), Char('c'),
End,
End, End,
End, End,
End, End,
@@ -889,17 +888,13 @@ 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,
); );