diff --git a/crates/usvg/src/tree/mod.rs b/crates/usvg/src/tree/mod.rs index f2f9b6e34..70916da30 100644 --- a/crates/usvg/src/tree/mod.rs +++ b/crates/usvg/src/tree/mod.rs @@ -73,6 +73,15 @@ pub(crate) enum Units { // `Units` cannot have a default value, because it changes depending on an element. +impl std::fmt::Display for Units { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Units::UserSpaceOnUse => write!(f, "userSpaceOnUse"), + Units::ObjectBoundingBox => write!(f, "objectBoundingBox"), + } + } +} + /// A visibility property. /// /// `visibility` attribute in the SVG. diff --git a/crates/usvg/src/writer.rs b/crates/usvg/src/writer.rs index 96444043d..231f84467 100644 --- a/crates/usvg/src/writer.rs +++ b/crates/usvg/src/writer.rs @@ -987,16 +987,9 @@ impl XmlWriterExt for XmlWriter { }); } - // TODO: simplify fn write_units(&mut self, id: AId, units: Units, def: Units) { if units != def { - self.write_attribute( - id.to_str(), - match units { - Units::UserSpaceOnUse => "userSpaceOnUse", - Units::ObjectBoundingBox => "objectBoundingBox", - }, - ); + self.write_attribute(id.to_str(), &units); } }