[librsvg] element: add Element::as_filter_effect()



commit 06a59ac2b02af627b36319d0518ef322fc67d478
Author: Paolo Borelli <pborelli gnome org>
Date:   Sat Apr 4 12:39:22 2020 +0200

    element: add Element::as_filter_effect()
    
    This was the last user of get_element_trait() and makes code
    shorter and clearer

 rsvg_internals/src/element.rs     | 8 ++++----
 rsvg_internals/src/filters/mod.rs | 9 ++-------
 2 files changed, 6 insertions(+), 11 deletions(-)
---
diff --git a/rsvg_internals/src/element.rs b/rsvg_internals/src/element.rs
index 1617225d..c142fab4 100644
--- a/rsvg_internals/src/element.rs
+++ b/rsvg_internals/src/element.rs
@@ -187,10 +187,6 @@ impl Element {
         self.element_type
     }
 
-    pub fn get_element_trait(&self) -> &dyn ElementTrait {
-        self.element_impl.as_ref()
-    }
-
     pub fn get_impl<T: ElementTrait>(&self) -> &T {
         if let Some(t) = (&self.element_impl).downcast_ref::<T>() {
             t
@@ -371,6 +367,10 @@ impl Element {
             Ok(draw_ctx.empty_bbox())
         }
     }
+
+    pub fn as_filter_effect(&self) -> Option<&dyn FilterEffect> {
+        self.element_impl.as_filter_effect()
+    }
 }
 
 impl fmt::Display for Element {
diff --git a/rsvg_internals/src/filters/mod.rs b/rsvg_internals/src/filters/mod.rs
index b6fb027d..c161df56 100644
--- a/rsvg_internals/src/filters/mod.rs
+++ b/rsvg_internals/src/filters/mod.rs
@@ -288,12 +288,7 @@ pub fn render(
             !in_error
         })
         // Keep only filter primitives (those that implement the Filter trait)
-        .filter(|c| {
-            c.borrow_element()
-                .get_element_trait()
-                .as_filter_effect()
-                .is_some()
-        })
+        .filter(|c| c.borrow_element().as_filter_effect().is_some())
         // Check if the node wants linear RGB.
         .map(|c| {
             let linear_rgb = {
@@ -308,7 +303,7 @@ pub fn render(
 
     for (c, linear_rgb) in primitives {
         let elt = c.borrow_element();
-        let filter = elt.get_element_trait().as_filter_effect().unwrap();
+        let filter = elt.as_filter_effect().unwrap();
 
         let mut render = |filter_ctx: &mut FilterContext| {
             if let Err(err) = filter


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