Allow Vecs, BTreeMaps, and HashMaps to be deserialized from a unit

Closes #36
This commit is contained in:
Erick Tryzelaar
2015-03-20 08:47:33 -07:00
parent d17846eff1
commit 09de237033
3 changed files with 58 additions and 2 deletions
+28
View File
@@ -499,6 +499,9 @@ declare_tests! {
],
}
test_vec {
Vec::<isize>::new() => vec![
Token::Unit,
],
Vec::<isize>::new() => vec![
Token::SeqStart(0),
Token::SeqEnd,
@@ -525,6 +528,15 @@ declare_tests! {
Token::SeqEnd,
Token::SeqEnd,
],
Vec::<isize>::new() => vec![
Token::Name("Anything"),
Token::Unit,
],
Vec::<isize>::new() => vec![
Token::Name("Anything"),
Token::SeqStart(0),
Token::SeqEnd,
],
}
test_tuple {
(1,) => vec![
@@ -547,6 +559,13 @@ declare_tests! {
],
}
test_btreemap {
BTreeMap::<isize, isize>::new() => vec![
Token::Unit,
],
BTreeMap::<isize, isize>::new() => vec![
Token::MapStart(0),
Token::MapEnd,
],
btreemap![1 => 2] => vec![
Token::MapStart(1),
Token::MapSep(true),
@@ -585,6 +604,15 @@ declare_tests! {
Token::MapEnd,
Token::MapEnd,
],
BTreeMap::<isize, isize>::new() => vec![
Token::Name("Anything"),
Token::Unit,
],
BTreeMap::<isize, isize>::new() => vec![
Token::Name("Anything"),
Token::MapStart(0),
Token::MapEnd,
],
}
test_named_map {
NamedMap { a: 1, b: 2, c: 3 } => vec![
+9 -2
View File
@@ -861,8 +861,8 @@ fn test_parse_object() {
#[test]
fn test_parse_struct() {
test_parse_err::<Outer>(vec![
("[]", Error::SyntaxError(ErrorCode::ExpectedSomeValue, 0, 0)),
("{}", Error::SyntaxError(ErrorCode::ExpectedSomeValue, 0, 0)),
("5", Error::SyntaxError(ErrorCode::ExpectedSomeValue, 0, 0)),
("\"hello\"", Error::SyntaxError(ErrorCode::ExpectedSomeValue, 0, 0)),
("{\"inner\": true}", Error::SyntaxError(ErrorCode::ExpectedSomeValue, 0, 0)),
]);
@@ -888,6 +888,13 @@ fn test_parse_struct() {
},
)
]);
assert_eq!(
from_str("{}"),
Ok(Outer {
inner: vec![],
})
);
}
#[test]