[librsvg] gradient: simplify macro



commit b0411b5cd94901caf28cbcfe9690ddcf1a3c98b1
Author: Paolo Borelli <pborelli gnome org>
Date:   Sun Apr 5 11:02:57 2020 +0200

    gradient: simplify macro

 rsvg_internals/src/gradient.rs | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)
---
diff --git a/rsvg_internals/src/gradient.rs b/rsvg_internals/src/gradient.rs
index 083de919..1d176e34 100644
--- a/rsvg_internals/src/gradient.rs
+++ b/rsvg_internals/src/gradient.rs
@@ -664,8 +664,8 @@ impl ElementTrait for RadialGradient {
 }
 
 macro_rules! impl_paint_source {
-    ($gradient:ty, $element_type:pat, $other_gradient:ty, $other_type:pat,) => {
-        impl PaintSource for $gradient {
+    ($gradient_type:ident, $other_type:ident) => {
+        impl PaintSource for $gradient_type {
             type Resolved = Gradient;
 
             fn resolve(
@@ -696,16 +696,14 @@ macro_rules! impl_paint_source {
 
                         let borrowed_node = acquired_node.borrow_element();
                         let unresolved = match borrowed_node.get_type() {
-                            $element_type => {
-                                let a_gradient = borrowed_node.get_impl::<$gradient>();
+                            ElementType::$gradient_type => {
+                                let a_gradient = borrowed_node.get_impl::<$gradient_type>();
                                 a_gradient.get_unresolved(&acquired_node)
                             }
-
-                            $other_type => {
-                                let a_gradient = borrowed_node.get_impl::<$other_gradient>();
+                            ElementType::$other_type => {
+                                let a_gradient = borrowed_node.get_impl::<$other_type>();
                                 a_gradient.get_unresolved(&acquired_node)
                             }
-
                             _ => unreachable!(),
                         };
 
@@ -729,19 +727,9 @@ macro_rules! impl_paint_source {
     };
 }
 
-impl_paint_source!(
-    LinearGradient,
-    ElementType::LinearGradient,
-    RadialGradient,
-    ElementType::RadialGradient,
-);
-
-impl_paint_source!(
-    RadialGradient,
-    ElementType::RadialGradient,
-    LinearGradient,
-    ElementType::LinearGradient,
-);
+impl_paint_source!(LinearGradient, RadialGradient);
+
+impl_paint_source!(RadialGradient, LinearGradient);
 
 impl AsPaintSource for Gradient {
     fn set_as_paint_source(


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