diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-07-15 15:04:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-07-15 15:04:10 +0900 |
| commit | 43877b3e5079eb5e9131cb7a355642df2d8b3525 (patch) | |
| tree | 9d60e2b54fcab28f2d270e21e5961aeabad0131e /src/lib.rs | |
| parent | 6a7904da395cf4d9383629a85e42b621304b00c7 (diff) | |
| download | reparojson-43877b3e5079eb5e9131cb7a355642df2d8b3525.tar.gz reparojson-43877b3e5079eb5e9131cb7a355642df2d8b3525.tar.zst reparojson-43877b3e5079eb5e9131cb7a355642df2d8b3525.zip | |
fix: object correction
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 27 |
1 files changed, 26 insertions, 1 deletions
@@ -297,7 +297,8 @@ impl Parser { return SyntaxError::InvalidValue.to_result(); } w.write_all(b":")?; - self.walk_element(input, w) + self.walk_ws(input, w)?; + self.walk_value(input, w) } fn walk_array<I: Iterator<Item = std::io::Result<u8>>, W: Write>( @@ -723,5 +724,29 @@ mod tests { assert!(matches!(res, Ok(super::RepairOk::Repaired))); assert_eq!("[1, 2 ]", out); } + { + let s = r#"{ , }"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{ }"#, out); + } + { + let s = r#"{ "a":1 , }"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{ "a":1 }"#, out); + } + { + let s = r#"{"a":1 "b":2 }"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{"a":1, "b":2 }"#, out); + } + { + let s = r#"{"a":1 "b":2 ,}"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{"a":1, "b":2 }"#, out); + } } } |
