diff --git a/Cargo.toml b/Cargo.toml index 1b6989cc3..89bfe4de5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,10 +15,8 @@ fs = ["fontdock/fs"] [dependencies] fontdock = { path = "../fontdock", default-features = false } image = { version = "0.23", default-features = false, features = ["jpeg", "png"] } -itoa = "0.4" miniz_oxide = "0.3" pdf-writer = { path = "../pdf-writer" } -ryu = "1.0" ttf-parser = "0.8.2" unicode-xid = "0.2" anyhow = { version = "1", optional = true } diff --git a/src/geom/angle.rs b/src/geom/angle.rs index 07471a026..2392efa58 100644 --- a/src/geom/angle.rs +++ b/src/geom/angle.rs @@ -58,14 +58,13 @@ impl Display for Angle { fn fmt(&self, f: &mut Formatter) -> fmt::Result { // Format with the unit that yields the shortest output, preferring // degrees when tied. - let mut buf = ryu::Buffer::new(); let unit = [AngularUnit::Deg, AngularUnit::Rad] .iter() .copied() - .min_by_key(|&unit| buf.format(self.to_unit(unit)).len()) + .min_by_key(|&unit| self.to_unit(unit).to_string().len()) .unwrap(); - write!(f, "{}{}", buf.format(self.to_unit(unit)), unit) + write!(f, "{}{}", self.to_unit(unit), unit) } } diff --git a/src/geom/length.rs b/src/geom/length.rs index b0ca24dfa..bc8368105 100644 --- a/src/geom/length.rs +++ b/src/geom/length.rs @@ -108,14 +108,13 @@ impl Display for Length { // Format with the unit that yields the shortest output, preferring // larger / metric units when tied. - let mut buf = ryu::Buffer::new(); let unit = [Cm, Mm, In, Pt] .iter() .copied() - .min_by_key(|&unit| buf.format(self.to_unit(unit)).len()) + .min_by_key(|&unit| self.to_unit(unit).to_string().len()) .unwrap(); - write!(f, "{}{}", buf.format(self.to_unit(unit)), unit) + write!(f, "{}{}", self.to_unit(unit), unit) } } @@ -239,9 +238,9 @@ mod tests { #[test] fn test_length_formatting() { - assert_eq!(Length::pt(23.0).to_string(), "23.0pt"); - assert_eq!(Length::pt(-28.3465).to_string(), "-1.0cm"); + assert_eq!(Length::pt(23.0).to_string(), "23pt"); + assert_eq!(Length::pt(-28.3465).to_string(), "-1cm"); assert_eq!(Length::cm(12.728).to_string(), "12.728cm"); - assert_eq!(Length::cm(4.5).to_string(), "4.5cm"); + assert_eq!(Length::cm(4.5).to_string(), "45mm"); } } diff --git a/src/geom/relative.rs b/src/geom/relative.rs index 0eca911e3..9d7b3d3e1 100644 --- a/src/geom/relative.rs +++ b/src/geom/relative.rs @@ -42,7 +42,7 @@ impl Relative { impl Display for Relative { fn fmt(&self, f: &mut Formatter) -> fmt::Result { - write!(f, "{}%", ryu::Buffer::new().format(100.0 * self.0)) + write!(f, "{}%", 100.0 * self.0) } } diff --git a/src/pretty.rs b/src/pretty.rs index 0899824ac..86919ac8a 100644 --- a/src/pretty.rs +++ b/src/pretty.rs @@ -240,15 +240,9 @@ impl Pretty for LitKind { Self::Bool(v) => v.pretty(p), Self::Int(v) => v.pretty(p), Self::Float(v) => v.pretty(p), - Self::Length(v, u) => { - write!(p, "{}{}", ryu::Buffer::new().format(*v), u).unwrap(); - } - Self::Angle(v, u) => { - write!(p, "{}{}", ryu::Buffer::new().format(*v), u).unwrap(); - } - Self::Percent(v) => { - write!(p, "{}%", ryu::Buffer::new().format(*v)).unwrap(); - } + Self::Length(v, u) => write!(p, "{}{}", v, u).unwrap(), + Self::Angle(v, u) => write!(p, "{}{}", v, u).unwrap(), + Self::Percent(v) => write!(p, "{}%", v).unwrap(), Self::Color(v) => v.pretty(p), Self::Str(v) => v.pretty(p), } @@ -561,13 +555,13 @@ impl Pretty for ValueArg { impl Pretty for i64 { fn pretty(&self, p: &mut Printer) { - p.push_str(itoa::Buffer::new().format(*self)); + write!(p, "{}", self).unwrap(); } } impl Pretty for f64 { fn pretty(&self, p: &mut Printer) { - p.push_str(ryu::Buffer::new().format(*self)); + write!(p, "{}", self).unwrap(); } } @@ -681,9 +675,9 @@ mod tests { roundtrip("{true}"); roundtrip("{10}"); roundtrip("{3.14}"); - roundtrip("{10.0pt}"); + roundtrip("{10pt}"); roundtrip("{14.1deg}"); - roundtrip("{20.0%}"); + roundtrip("{20%}"); roundtrip("{#abcdef}"); roundtrip(r#"{"hi"}"#); test_parse(r#"{"let's \" go"}"#, r#"{"let's \" go"}"#); @@ -749,9 +743,9 @@ mod tests { test_value(12i64, "12"); test_value(3.14, "3.14"); test_value(Length::pt(5.5), "5.5pt"); - test_value(Angle::deg(90.0), "90.0deg"); - test_value(Relative::ONE / 2.0, "50.0%"); - test_value(Relative::new(0.3) + Length::cm(2.0), "30.0% + 2.0cm"); + test_value(Angle::deg(90.0), "90deg"); + test_value(Relative::ONE / 2.0, "50%"); + test_value(Relative::new(0.3) + Length::cm(2.0), "30% + 2cm"); test_value(Color::Rgba(RgbaColor::new(1, 1, 1, 0xff)), "#010101"); test_value("hello", r#""hello""#); test_value("\n", r#""\n""#); diff --git a/tests/ref/repr.png b/tests/ref/repr.png index 951506c4b..874000308 100644 Binary files a/tests/ref/repr.png and b/tests/ref/repr.png differ