Check for empty input
All checks were successful
timw4mail/json-parser/pipeline/head This commit looks good
All checks were successful
timw4mail/json-parser/pipeline/head This commit looks good
This commit is contained in:
parent
a6d6d1a36c
commit
f229208280
@ -654,6 +654,12 @@ impl JSON {
|
|||||||
/// # assert!(parse_result.is_ok(), "Parse method example failed");
|
/// # assert!(parse_result.is_ok(), "Parse method example failed");
|
||||||
/// ```
|
/// ```
|
||||||
pub fn parse(json: &str) -> JSONResult {
|
pub fn parse(json: &str) -> JSONResult {
|
||||||
|
if json.len() == 0 {
|
||||||
|
return Err(ParseError::UnexpectedEndOfInput(format!(
|
||||||
|
"Empty input"
|
||||||
|
)))
|
||||||
|
}
|
||||||
|
|
||||||
JSON::new(json).parse_value()
|
JSON::new(json).parse_value()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,12 +26,20 @@ fn bad_object_trailing_comma() {
|
|||||||
fn bad_json() {
|
fn bad_json() {
|
||||||
let res = JSON::parse(r#"5eq"#);
|
let res = JSON::parse(r#"5eq"#);
|
||||||
assert!(res.is_err());
|
assert!(res.is_err());
|
||||||
println!("{:#?}", res);
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn empty_json() {
|
||||||
|
let res: JSONResult = JSON::parse("");
|
||||||
|
assert_eq!(
|
||||||
|
res,
|
||||||
|
Err(ParseError::UnexpectedEndOfInput(String::from("Empty input")))
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic]
|
#[should_panic]
|
||||||
fn invalid_unwrap() {
|
fn invalid_unwrap() {
|
||||||
let wrapped = JSONValue::from(5.2f64);
|
let wrapped = JSONValue::from(5.2f64);
|
||||||
let invalid: String = wrapped.unwrap();
|
let _: String = wrapped.unwrap();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user