[librsvg: 14/35] Extract function to get the natural geometry of a document




commit d07c43cc6781ccaae97b91b439a316632b1d603d
Author: Federico Mena Quintero <federico gnome org>
Date:   Mon Jun 14 17:23:43 2021 -0500

    Extract function to get the natural geometry of a document
    
    Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/547>

 src/bin/rsvg-convert.rs | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)
---
diff --git a/src/bin/rsvg-convert.rs b/src/bin/rsvg-convert.rs
index 624ae9ce..558aacde 100644
--- a/src/bin/rsvg-convert.rs
+++ b/src/bin/rsvg-convert.rs
@@ -505,7 +505,7 @@ impl Converter {
                 .with_dpi(self.dpi.0, self.dpi.1)
                 .with_language(&self.language);
 
-            let geometry = self.natural_geometry(&renderer, input)?;
+            let geometry = natural_geometry(&renderer, input, self.export_id.as_deref())?;
             let natural_size = Size::new(geometry.width, geometry.height);
 
             let strategy = match (self.width, self.height) {
@@ -547,26 +547,6 @@ impl Converter {
         Ok(())
     }
 
-    fn natural_geometry(
-        &self,
-        renderer: &CairoRenderer,
-        input: &Input,
-    ) -> Result<cairo::Rectangle, Error> {
-        match self.export_id {
-            None => renderer.legacy_layer_geometry(None),
-            Some(ref id) => renderer.geometry_for_element(Some(&id)),
-        }
-        .map(|(ink_r, _)| ink_r)
-        .map_err(|e| match e {
-            RenderingError::IdNotFound => error!(
-                "File {} does not have an object with id \"{}\")",
-                input,
-                self.export_id.as_deref().unwrap()
-            ),
-            _ => error!("Error rendering SVG {}: {}", input, e),
-        })
-    }
-
     fn final_size(
         &self,
         strategy: &ResizeStrategy,
@@ -600,6 +580,26 @@ impl Converter {
     }
 }
 
+fn natural_geometry(
+    renderer: &CairoRenderer,
+    input: &Input,
+    export_id: Option<&str>,
+) -> Result<cairo::Rectangle, Error> {
+    match export_id {
+        None => renderer.legacy_layer_geometry(None),
+        Some(ref id) => renderer.geometry_for_element(Some(&id)),
+    }
+    .map(|(ink_r, _)| ink_r)
+    .map_err(|e| match e {
+        RenderingError::IdNotFound => error!(
+            "File {} does not have an object with id \"{}\")",
+            input,
+            export_id.unwrap()
+        ),
+        _ => error!("Error rendering SVG {}: {}", input, e),
+    })
+}
+
 fn parse_args() -> Result<Converter, Error> {
     let supported_formats = vec![
         "Png",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]