[librsvg: 13/20] feGaussianBlur: shorten code by implementing Default and Clone for its parameters
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 13/20] feGaussianBlur: shorten code by implementing Default and Clone for its parameters
- Date: Wed, 17 Mar 2021 19:08:05 +0000 (UTC)
commit b417184e2886b82fb6932e9d5f9cf7be952c88aa
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Mar 16 13:22:38 2021 -0600
feGaussianBlur: shorten code by implementing Default and Clone for its parameters
src/filters/gaussian_blur.rs | 33 +++++++++------------------------
1 file changed, 9 insertions(+), 24 deletions(-)
---
diff --git a/src/filters/gaussian_blur.rs b/src/filters/gaussian_blur.rs
index f26ed204..2b47559f 100644
--- a/src/filters/gaussian_blur.rs
+++ b/src/filters/gaussian_blur.rs
@@ -26,39 +26,28 @@ use super::{FilterEffect, FilterError, Input, Primitive, PrimitiveParams, Resolv
const MAXIMUM_KERNEL_SIZE: usize = 500;
/// The `feGaussianBlur` filter primitive.
+#[derive(Default)]
pub struct FeGaussianBlur {
base: Primitive,
- in1: Input,
- std_deviation: (f64, f64),
+ params: GaussianBlur,
}
/// Resolved `feGaussianBlur` primitive for rendering.
+#[derive(Default, Clone)]
pub struct GaussianBlur {
in1: Input,
std_deviation: (f64, f64),
color_interpolation_filters: ColorInterpolationFilters,
}
-impl Default for FeGaussianBlur {
- /// Constructs a new `GaussianBlur` with empty properties.
- #[inline]
- fn default() -> FeGaussianBlur {
- FeGaussianBlur {
- base: Default::default(),
- in1: Default::default(),
- std_deviation: (0.0, 0.0),
- }
- }
-}
-
impl SetAttributes for FeGaussianBlur {
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() {
if let expanded_name!("", "stdDeviation") = attr.expanded() {
let NumberOptionalNumber(NonNegative(x), NonNegative(y)) = attr.parse(value)?;
- self.std_deviation = (x, y);
+ self.params.std_deviation = (x, y);
}
}
@@ -260,13 +249,9 @@ impl FilterEffect for FeGaussianBlur {
let cascaded = CascadedValues::new_from_node(node);
let values = cascaded.get();
- Ok((
- self.base.clone(),
- PrimitiveParams::GaussianBlur(GaussianBlur {
- in1: self.in1.clone(),
- std_deviation: self.std_deviation,
- color_interpolation_filters: values.color_interpolation_filters(),
- }),
- ))
+ let mut params = self.params.clone();
+ params.color_interpolation_filters = values.color_interpolation_filters();
+
+ Ok((self.base.clone(), PrimitiveParams::GaussianBlur(params)))
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]