Skip to content

Commit e757a3d

Browse files
committed
Switch from ryu -> zmij for float formatting
1 parent 75ad7e6 commit e757a3d

File tree

7 files changed

+14
-14
lines changed

7 files changed

+14
-14
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ rust-version = "1.68"
1515
indexmap = { version = "2.2.3", optional = true }
1616
itoa = "1.0"
1717
memchr = { version = "2", default-features = false }
18-
ryu = "1.0"
1918
serde_core = { version = "1.0.220", default-features = false }
19+
zmij = "0.1.7"
2020

2121
[target.'cfg(any())'.dependencies]
2222
serde = { version = "1.0.220", default-features = false }

src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ impl<'a> Display for JsonUnexpected<'a> {
471471
de::Unexpected::Float(value) => write!(
472472
formatter,
473473
"floating point `{}`",
474-
ryu::Buffer::new().format(value),
474+
zmij::Buffer::new().format(value),
475475
),
476476
unexp => Display::fmt(&unexp, formatter),
477477
}

src/number.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ impl Number {
189189
}
190190
#[cfg(feature = "arbitrary_precision")]
191191
{
192-
ryu::Buffer::new().format_finite(f).to_owned()
192+
zmij::Buffer::new().format_finite(f).to_owned()
193193
}
194194
};
195195
Some(Number { n })
@@ -326,7 +326,7 @@ impl Number {
326326
}
327327
#[cfg(feature = "arbitrary_precision")]
328328
{
329-
ryu::Buffer::new().format_finite(f).to_owned()
329+
zmij::Buffer::new().format_finite(f).to_owned()
330330
}
331331
};
332332
Some(Number { n })
@@ -350,7 +350,7 @@ impl Display for Number {
350350
match self.n {
351351
N::PosInt(u) => formatter.write_str(itoa::Buffer::new().format(u)),
352352
N::NegInt(i) => formatter.write_str(itoa::Buffer::new().format(i)),
353-
N::Float(f) => formatter.write_str(ryu::Buffer::new().format_finite(f)),
353+
N::Float(f) => formatter.write_str(zmij::Buffer::new().format_finite(f)),
354354
}
355355
}
356356

@@ -556,7 +556,7 @@ macro_rules! deserialize_any {
556556
} else if let Some(i) = self.as_i128() {
557557
return visitor.visit_i128(i);
558558
} else if let Some(f) = self.as_f64() {
559-
if ryu::Buffer::new().format_finite(f) == self.n || f.to_string() == self.n {
559+
if zmij::Buffer::new().format_finite(f) == self.n || f.to_string() == self.n {
560560
return visitor.visit_f64(f);
561561
}
562562
}
@@ -704,7 +704,7 @@ impl From<ParserNumber> for Number {
704704
}
705705
#[cfg(feature = "arbitrary_precision")]
706706
{
707-
ryu::Buffer::new().format_finite(f).to_owned()
707+
zmij::Buffer::new().format_finite(f).to_owned()
708708
}
709709
}
710710
ParserNumber::U64(u) => {

src/ser.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1692,7 +1692,7 @@ pub trait Formatter {
16921692
where
16931693
W: ?Sized + io::Write,
16941694
{
1695-
let mut buffer = ryu::Buffer::new();
1695+
let mut buffer = zmij::Buffer::new();
16961696
let s = buffer.format_finite(value);
16971697
writer.write_all(s.as_bytes())
16981698
}
@@ -1717,7 +1717,7 @@ pub trait Formatter {
17171717
where
17181718
W: ?Sized + io::Write,
17191719
{
1720-
let mut buffer = ryu::Buffer::new();
1720+
let mut buffer = zmij::Buffer::new();
17211721
let s = buffer.format_finite(value);
17221722
writer.write_all(s.as_bytes())
17231723
}

src/value/ser.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,15 +531,15 @@ impl serde::Serializer for MapKeySerializer {
531531

532532
fn serialize_f32(self, value: f32) -> Result<String> {
533533
if value.is_finite() {
534-
Ok(ryu::Buffer::new().format_finite(value).to_owned())
534+
Ok(zmij::Buffer::new().format_finite(value).to_owned())
535535
} else {
536536
Err(float_key_must_be_finite())
537537
}
538538
}
539539

540540
fn serialize_f64(self, value: f64) -> Result<String> {
541541
if value.is_finite() {
542-
Ok(ryu::Buffer::new().format_finite(value).to_owned())
542+
Ok(zmij::Buffer::new().format_finite(value).to_owned())
543543
} else {
544544
Err(float_key_must_be_finite())
545545
}

tests/debug.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fn value_number() {
3030
assert_eq!(format!("{:?}", json!(-1)), "Number(-1)");
3131
assert_eq!(format!("{:?}", json!(1.0)), "Number(1.0)");
3232
assert_eq!(Number::from_f64(1.0).unwrap().to_string(), "1.0"); // not just "1"
33-
assert_eq!(Number::from_f64(12e40).unwrap().to_string(), "1.2e41");
33+
assert_eq!(Number::from_f64(12e40).unwrap().to_string(), "1.2e+41");
3434
}
3535

3636
#[test]

tests/test.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ fn test_write_f64() {
148148
(3.1, "3.1"),
149149
(-1.5, "-1.5"),
150150
(0.5, "0.5"),
151-
(f64::MIN, "-1.7976931348623157e308"),
152-
(f64::MAX, "1.7976931348623157e308"),
151+
(f64::MIN, "-1.7976931348623157e+308"),
152+
(f64::MAX, "1.7976931348623157e+308"),
153153
(f64::EPSILON, "2.220446049250313e-16"),
154154
];
155155
test_encode_ok(tests);

0 commit comments

Comments
 (0)