diff --git a/Cargo.toml b/Cargo.toml index f6b96b44e..6178efaea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,8 +15,8 @@ rust-version = "1.68" indexmap = { version = "2.2.3", optional = true } itoa = "1.0" memchr = { version = "2", default-features = false } -ryu = "1.0" serde_core = { version = "1.0.220", default-features = false } +zmij = "0.1.7" [target.'cfg(any())'.dependencies] serde = { version = "1.0.220", default-features = false } diff --git a/src/error.rs b/src/error.rs index fbf9eb14e..b74f4449e 100644 --- a/src/error.rs +++ b/src/error.rs @@ -471,7 +471,7 @@ impl<'a> Display for JsonUnexpected<'a> { de::Unexpected::Float(value) => write!( formatter, "floating point `{}`", - ryu::Buffer::new().format(value), + zmij::Buffer::new().format(value), ), unexp => Display::fmt(&unexp, formatter), } diff --git a/src/number.rs b/src/number.rs index 8cb0c3b7b..51c2d6df7 100644 --- a/src/number.rs +++ b/src/number.rs @@ -189,7 +189,7 @@ impl Number { } #[cfg(feature = "arbitrary_precision")] { - ryu::Buffer::new().format_finite(f).to_owned() + zmij::Buffer::new().format_finite(f).to_owned() } }; Some(Number { n }) @@ -326,7 +326,7 @@ impl Number { } #[cfg(feature = "arbitrary_precision")] { - ryu::Buffer::new().format_finite(f).to_owned() + zmij::Buffer::new().format_finite(f).to_owned() } }; Some(Number { n }) @@ -350,7 +350,7 @@ impl Display for Number { match self.n { N::PosInt(u) => formatter.write_str(itoa::Buffer::new().format(u)), N::NegInt(i) => formatter.write_str(itoa::Buffer::new().format(i)), - N::Float(f) => formatter.write_str(ryu::Buffer::new().format_finite(f)), + N::Float(f) => formatter.write_str(zmij::Buffer::new().format_finite(f)), } } @@ -556,7 +556,7 @@ macro_rules! deserialize_any { } else if let Some(i) = self.as_i128() { return visitor.visit_i128(i); } else if let Some(f) = self.as_f64() { - if ryu::Buffer::new().format_finite(f) == self.n || f.to_string() == self.n { + if zmij::Buffer::new().format_finite(f) == self.n || f.to_string() == self.n { return visitor.visit_f64(f); } } @@ -704,7 +704,7 @@ impl From for Number { } #[cfg(feature = "arbitrary_precision")] { - ryu::Buffer::new().format_finite(f).to_owned() + zmij::Buffer::new().format_finite(f).to_owned() } } ParserNumber::U64(u) => { diff --git a/src/ser.rs b/src/ser.rs index 50c06f938..053f95a29 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -1692,7 +1692,7 @@ pub trait Formatter { where W: ?Sized + io::Write, { - let mut buffer = ryu::Buffer::new(); + let mut buffer = zmij::Buffer::new(); let s = buffer.format_finite(value); writer.write_all(s.as_bytes()) } @@ -1717,7 +1717,7 @@ pub trait Formatter { where W: ?Sized + io::Write, { - let mut buffer = ryu::Buffer::new(); + let mut buffer = zmij::Buffer::new(); let s = buffer.format_finite(value); writer.write_all(s.as_bytes()) } diff --git a/src/value/ser.rs b/src/value/ser.rs index 1ffe7b7f1..d5e2e84f6 100644 --- a/src/value/ser.rs +++ b/src/value/ser.rs @@ -531,7 +531,7 @@ impl serde::Serializer for MapKeySerializer { fn serialize_f32(self, value: f32) -> Result { if value.is_finite() { - Ok(ryu::Buffer::new().format_finite(value).to_owned()) + Ok(zmij::Buffer::new().format_finite(value).to_owned()) } else { Err(float_key_must_be_finite()) } @@ -539,7 +539,7 @@ impl serde::Serializer for MapKeySerializer { fn serialize_f64(self, value: f64) -> Result { if value.is_finite() { - Ok(ryu::Buffer::new().format_finite(value).to_owned()) + Ok(zmij::Buffer::new().format_finite(value).to_owned()) } else { Err(float_key_must_be_finite()) } diff --git a/tests/debug.rs b/tests/debug.rs index adf475d93..b804d8d57 100644 --- a/tests/debug.rs +++ b/tests/debug.rs @@ -30,7 +30,7 @@ fn value_number() { assert_eq!(format!("{:?}", json!(-1)), "Number(-1)"); assert_eq!(format!("{:?}", json!(1.0)), "Number(1.0)"); assert_eq!(Number::from_f64(1.0).unwrap().to_string(), "1.0"); // not just "1" - assert_eq!(Number::from_f64(12e40).unwrap().to_string(), "1.2e41"); + assert_eq!(Number::from_f64(12e40).unwrap().to_string(), "1.2e+41"); } #[test] diff --git a/tests/test.rs b/tests/test.rs index f608679e6..f371f6f58 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -148,8 +148,8 @@ fn test_write_f64() { (3.1, "3.1"), (-1.5, "-1.5"), (0.5, "0.5"), - (f64::MIN, "-1.7976931348623157e308"), - (f64::MAX, "1.7976931348623157e308"), + (f64::MIN, "-1.7976931348623157e+308"), + (f64::MAX, "1.7976931348623157e+308"), (f64::EPSILON, "2.220446049250313e-16"), ]; test_encode_ok(tests);