Skip to content

Commit

Permalink
write_reserved_fragment() instead of write_all() for Infinity and NaN…
Browse files Browse the repository at this point in the history
…, they are not strings
  • Loading branch information
catherio committed Jan 16, 2025
1 parent de986af commit 1c7e812
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions src/serialize/writer/json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,15 @@ where
{
if value.is_infinite() {
if value.is_sign_positive() {
self.writer.write_all(b"Infinity").map_err(Error::io)
unsafe { self.writer.write_reserved_fragment(b"Infinity").unwrap() };
Ok(())
} else {
self.writer.write_all(b"-Infinity").map_err(Error::io)
unsafe { self.writer.write_reserved_fragment(b"-Infinity").unwrap() };
Ok(())
}
} else if value.is_nan() {
self.writer.write_all(b"NaN").map_err(Error::io)
unsafe { self.writer.write_reserved_fragment(b"NaN").unwrap() };
Ok(())
} else {
self.formatter
.write_f32(&mut self.writer, value)
Expand All @@ -159,12 +162,15 @@ where
{
if value.is_infinite() {
if value.is_sign_positive() {
self.writer.write_all(b"Infinity").map_err(Error::io)
unsafe { self.writer.write_reserved_fragment(b"Infinity").unwrap() };
Ok(())
} else {
self.writer.write_all(b"-Infinity").map_err(Error::io)
unsafe { self.writer.write_reserved_fragment(b"-Infinity").unwrap() };
Ok(())
}
} else if value.is_nan() {
self.writer.write_all(b"NaN").map_err(Error::io)
unsafe { self.writer.write_reserved_fragment(b"NaN").unwrap() };
Ok(())
} else {
self.formatter
.write_f64(&mut self.writer, value)
Expand Down

0 comments on commit 1c7e812

Please sign in to comment.