diff options
author | Sam Scott <sam@osohq.com> | 2021-06-09 15:32:07 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-09 15:32:07 -0400 |
commit | e369232e36d6fda5df3d2e533b2cdc5c5d2a23bb (patch) | |
tree | c04efbee5807cca63c99d96dbba8645f5b96bc99 /src/de/parse.rs | |
parent | 5bfaa7aa9f38806436e15928917cbd841a61e0f2 (diff) |
Support deserializing sequences to a hashmap with keys. (#51)
Diffstat (limited to 'src/de/parse.rs')
-rw-r--r-- | src/de/parse.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/de/parse.rs b/src/de/parse.rs index 75ae134..a466e5a 100644 --- a/src/de/parse.rs +++ b/src/de/parse.rs @@ -80,8 +80,7 @@ impl<'a> Level<'a> { if let Level::Sequence(ref mut seq) = *self { seq.push(Level::Flat(value)); } else if let Level::Uninitialised = *self { - let mut seq = Vec::new(); - seq.push(Level::Flat(value)); + let seq = vec![Level::Flat(value)]; *self = Level::Sequence(seq); } else { *self = Level::Invalid( @@ -306,8 +305,7 @@ impl<'a> Parser<'a> { // First character is an integer, attempt to parse it as an integer key b'0'..=b'9' => { let key = self.parse_key(b']', true)?; - let key = - usize::from_str_radix(&key, 10).map_err(Error::from)?; + let key = key.parse().map_err(Error::from)?; self.parse_ord_seq_value(key, node)?; return Ok(true); } |