mirror of
https://github.com/serde-rs/serde.git
synced 2025-10-02 15:25:38 +00:00
Simpify bench_struct
This commit is contained in:
parent
73b9a8cf74
commit
be34aefe78
@ -22,16 +22,26 @@ impl Deserializable for Inner {
|
||||
E
|
||||
>(d: &mut D, token: Token) -> Result<Inner, E> {
|
||||
match token {
|
||||
de::StructStart("Inner", _) |
|
||||
de::MapStart(_) => {
|
||||
de::StructStart("Inner", _) | de::MapStart(_) => { }
|
||||
_ => { return d.syntax_error(); }
|
||||
}
|
||||
|
||||
let mut a = None;
|
||||
let mut b = None;
|
||||
let mut c = None;
|
||||
|
||||
loop {
|
||||
match try!(d.expect_token()) {
|
||||
let token = match try!(d.expect_token()) {
|
||||
de::End => { break; }
|
||||
de::Str(name) => {
|
||||
token => token,
|
||||
};
|
||||
|
||||
let name = match token {
|
||||
de::Str(name) => name,
|
||||
de::String(ref name) => name.as_slice(),
|
||||
_ => { return d.syntax_error(); }
|
||||
};
|
||||
|
||||
match name {
|
||||
"a" => {
|
||||
a = Some(try!(de::Deserializable::deserialize(d)));
|
||||
@ -45,23 +55,6 @@ impl Deserializable for Inner {
|
||||
_ => { }
|
||||
}
|
||||
}
|
||||
de::String(ref name) => {
|
||||
match name.as_slice() {
|
||||
"a" => {
|
||||
a = Some(try!(de::Deserializable::deserialize(d)));
|
||||
}
|
||||
"b" => {
|
||||
b = Some(try!(de::Deserializable::deserialize(d)));
|
||||
}
|
||||
"c" => {
|
||||
c = Some(try!(de::Deserializable::deserialize(d)));
|
||||
}
|
||||
_ => { }
|
||||
}
|
||||
}
|
||||
_ => { return d.syntax_error(); }
|
||||
}
|
||||
}
|
||||
|
||||
match (a, b, c) {
|
||||
(Some(a), Some(b), Some(c)) => {
|
||||
@ -70,9 +63,6 @@ impl Deserializable for Inner {
|
||||
_ => d.syntax_error(),
|
||||
}
|
||||
}
|
||||
_ => d.syntax_error(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@ -89,14 +79,24 @@ impl Deserializable for Outer {
|
||||
E
|
||||
>(d: &mut D, token: Token) -> Result<Outer, E> {
|
||||
match token {
|
||||
de::StructStart("Outer", _) |
|
||||
de::MapStart(_) => {
|
||||
de::StructStart("Outer", _) | de::MapStart(_) => { }
|
||||
_ => { return d.syntax_error(); }
|
||||
}
|
||||
|
||||
let mut inner = None;
|
||||
|
||||
loop {
|
||||
match try!(d.expect_token()) {
|
||||
let token = match try!(d.expect_token()) {
|
||||
de::End => { break; }
|
||||
de::Str(name) => {
|
||||
token => token,
|
||||
};
|
||||
|
||||
let name = match token {
|
||||
de::Str(name) => name,
|
||||
de::String(ref name) => name.as_slice(),
|
||||
_ => { return d.syntax_error(); }
|
||||
};
|
||||
|
||||
match name {
|
||||
"inner" => {
|
||||
inner = Some(try!(de::Deserializable::deserialize(d)));
|
||||
@ -104,17 +104,6 @@ impl Deserializable for Outer {
|
||||
_ => { }
|
||||
}
|
||||
}
|
||||
de::String(ref name) => {
|
||||
match name.as_slice() {
|
||||
"inner" => {
|
||||
inner = Some(try!(de::Deserializable::deserialize(d)));
|
||||
}
|
||||
_ => { }
|
||||
}
|
||||
}
|
||||
_ => { return d.syntax_error(); }
|
||||
}
|
||||
}
|
||||
|
||||
match inner {
|
||||
Some(inner) => {
|
||||
@ -123,9 +112,6 @@ impl Deserializable for Outer {
|
||||
_ => d.syntax_error(),
|
||||
}
|
||||
}
|
||||
_ => d.syntax_error(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user