summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-03-02 15:45:01 +0100
committerLaurenz <laurmaedje@gmail.com>2021-03-02 15:45:01 +0100
commit45abcf6b2bc247c8c0cba79eb1b0bc36a5d1df43 (patch)
tree3dc454557219d08176d14af052a1c8c68ea82ec0 /src
parent36adbe4b80e57613244adb87301c81c0a23f67f7 (diff)
Remove dependencies on itoa and ryu ⬇️
Diffstat (limited to 'src')
-rw-r--r--src/geom/angle.rs5
-rw-r--r--src/geom/length.rs11
-rw-r--r--src/geom/relative.rs2
-rw-r--r--src/pretty.rs26
4 files changed, 18 insertions, 26 deletions
diff --git a/src/geom/angle.rs b/src/geom/angle.rs
index 07471a02..2392efa5 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 b0ca24df..bc836810 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 0eca911e..9d7b3d3e 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 0899824a..86919ac8 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""#);