[librsvg] gradient: simplify macro
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] gradient: simplify macro
- Date: Sun, 5 Apr 2020 09:36:39 +0000 (UTC)
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]