[librsvg: 16/20] feOffset: shorten code by implementing Default and Clone for its parameters




commit bd5ededf63093219a76497d00c141a5983bcade9
Author: Federico Mena Quintero <federico gnome org>
Date:   Tue Mar 16 15:21:48 2021 -0600

    feOffset: shorten code by implementing Default and Clone for its parameters

 src/filters/offset.rs | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)
---
diff --git a/src/filters/offset.rs b/src/filters/offset.rs
index d032121e..9f2be567 100644
--- a/src/filters/offset.rs
+++ b/src/filters/offset.rs
@@ -12,42 +12,28 @@ use super::context::{FilterContext, FilterOutput, FilterResult};
 use super::{FilterEffect, FilterError, Input, Primitive, PrimitiveParams, ResolvedPrimitive};
 
 /// The `feOffset` filter primitive.
-#[derive(Clone)]
+#[derive(Default)]
 pub struct FeOffset {
     base: Primitive,
-    in1: Input,
-    dx: f64,
-    dy: f64,
+    params: Offset,
 }
 
 /// Resolved `feOffset` primitive for rendering.
+#[derive(Clone, Default)]
 pub struct Offset {
     in1: Input,
     dx: f64,
     dy: f64,
 }
 
-impl Default for FeOffset {
-    /// Constructs a new `Offset` with empty properties.
-    #[inline]
-    fn default() -> FeOffset {
-        FeOffset {
-            base: Default::default(),
-            in1: Default::default(),
-            dx: 0f64,
-            dy: 0f64,
-        }
-    }
-}
-
 impl SetAttributes for FeOffset {
     fn set_attributes(&mut self, attrs: &Attributes) -> ElementResult {
-        self.in1 = self.base.parse_one_input(attrs)?;
+        self.params.in1 = self.base.parse_one_input(attrs)?;
 
         for (attr, value) in attrs.iter() {
             match attr.expanded() {
-                expanded_name!("", "dx") => self.dx = attr.parse(value)?,
-                expanded_name!("", "dy") => self.dy = attr.parse(value)?,
+                expanded_name!("", "dx") => self.params.dx = attr.parse(value)?,
+                expanded_name!("", "dy") => self.params.dy = attr.parse(value)?,
                 _ => (),
             }
         }
@@ -97,11 +83,7 @@ impl FilterEffect for FeOffset {
     fn resolve(&self, _node: &Node) -> Result<(Primitive, PrimitiveParams), FilterError> {
         Ok((
             self.base.clone(),
-            PrimitiveParams::Offset(Offset {
-                in1: self.in1.clone(),
-                dx: self.dx,
-                dy: self.dy,
-            }),
+            PrimitiveParams::Offset(self.params.clone()),
         ))
     }
 }


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