[librsvg: 40/45] Compress get_unresolved() with a macro
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 40/45] Compress get_unresolved() with a macro
- Date: Tue, 1 Oct 2019 15:10:18 +0000 (UTC)
commit 832be04ce67bfa4a7ebe1f08fc2054f76a5c2b2b
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Sep 30 18:14:15 2019 -0500
Compress get_unresolved() with a macro
rsvg_internals/src/gradient.rs | 51 ++++++++++++++++--------------------------
1 file changed, 19 insertions(+), 32 deletions(-)
---
diff --git a/rsvg_internals/src/gradient.rs b/rsvg_internals/src/gradient.rs
index b7d3465a..20466e7b 100644
--- a/rsvg_internals/src/gradient.rs
+++ b/rsvg_internals/src/gradient.rs
@@ -491,25 +491,6 @@ impl NodeLinearGradient {
}
}
-impl NodeLinearGradient {
- fn get_unresolved(&self, node: &RsvgNode) -> Unresolved {
- let mut gradient = UnresolvedGradient {
- units: self.common.units,
- affine: self.common.affine,
- spread: self.common.spread,
- stops: None,
- variant: self.get_unresolved_variant(),
- };
-
- gradient.add_color_stops_from_node(node);
-
- Unresolved {
- gradient,
- fallback: self.common.fallback.clone(),
- }
- }
-}
-
impl NodeRadialGradient {
fn get_unresolved_variant(&self) -> UnresolvedVariant {
UnresolvedVariant::Radial {
@@ -522,24 +503,30 @@ impl NodeRadialGradient {
}
}
-impl NodeRadialGradient {
- fn get_unresolved(&self, node: &RsvgNode) -> Unresolved {
- let mut gradient = UnresolvedGradient {
- units: self.common.units,
- affine: self.common.affine,
- spread: self.common.spread,
- stops: None,
- variant: self.get_unresolved_variant(),
- };
+macro_rules! impl_get_unresolved {
+ ($gradient:ty) => {
+ impl $gradient {
+ fn get_unresolved(&self, node: &RsvgNode) -> Unresolved {
+ let mut gradient = UnresolvedGradient {
+ units: self.common.units,
+ affine: self.common.affine,
+ spread: self.common.spread,
+ stops: None,
+ variant: self.get_unresolved_variant(),
+ };
- gradient.add_color_stops_from_node(node);
+ gradient.add_color_stops_from_node(node);
- Unresolved {
- gradient,
- fallback: self.common.fallback.clone(),
+ Unresolved {
+ gradient,
+ fallback: self.common.fallback.clone(),
+ }
+ }
}
}
}
+impl_get_unresolved!(NodeLinearGradient);
+impl_get_unresolved!(NodeRadialGradient);
impl Common {
fn set_atts(&mut self, pbag: &PropertyBag<'_>) -> NodeResult {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]