@@ -10,22 +10,16 @@ pub fn adjust_colors(
10
10
#![ allow( clippy:: match_same_arms) ]
11
11
match shape {
12
12
Shape :: Noop => { }
13
+
13
14
Shape :: Vec ( shapes) => {
14
15
for shape in shapes {
15
16
adjust_colors ( shape, adjust_color) ;
16
17
}
17
18
}
18
- Shape :: LineSegment { stroke, points : _ } => match & stroke. color {
19
- color:: ColorMode :: Solid ( mut col) => adjust_color ( & mut col) ,
20
- color:: ColorMode :: UV ( callback) => {
21
- let callback = callback. clone ( ) ;
22
- stroke. color = color:: ColorMode :: UV ( Arc :: new ( Box :: new ( move |rect, pos| {
23
- let mut col = callback ( rect, pos) ;
24
- adjust_color ( & mut col) ;
25
- col
26
- } ) ) ) ;
27
- }
28
- } ,
19
+
20
+ Shape :: LineSegment { stroke, points : _ } => {
21
+ adjust_color_mode ( & mut stroke. color , adjust_color) ;
22
+ }
29
23
30
24
Shape :: Path ( PathShape {
31
25
points : _,
@@ -46,17 +40,7 @@ pub fn adjust_colors(
46
40
stroke,
47
41
} ) => {
48
42
adjust_color ( fill) ;
49
- match & stroke. color {
50
- color:: ColorMode :: Solid ( mut col) => adjust_color ( & mut col) ,
51
- color:: ColorMode :: UV ( callback) => {
52
- let callback = callback. clone ( ) ;
53
- stroke. color = color:: ColorMode :: UV ( Arc :: new ( Box :: new ( move |rect, pos| {
54
- let mut col = callback ( rect, pos) ;
55
- adjust_color ( & mut col) ;
56
- col
57
- } ) ) ) ;
58
- }
59
- }
43
+ adjust_color_mode ( & mut stroke. color , adjust_color) ;
60
44
}
61
45
62
46
Shape :: Circle ( CircleShape {
@@ -124,3 +108,20 @@ pub fn adjust_colors(
124
108
}
125
109
}
126
110
}
111
+
112
+ fn adjust_color_mode (
113
+ color_mode : & mut ColorMode ,
114
+ adjust_color : impl Fn ( & mut Color32 ) + Send + Sync + Copy + ' static ,
115
+ ) {
116
+ match color_mode {
117
+ color:: ColorMode :: Solid ( color) => adjust_color ( color) ,
118
+ color:: ColorMode :: UV ( callback) => {
119
+ let callback = callback. clone ( ) ;
120
+ * color_mode = color:: ColorMode :: UV ( Arc :: new ( Box :: new ( move |rect, pos| {
121
+ let mut color = callback ( rect, pos) ;
122
+ adjust_color ( & mut color) ;
123
+ color
124
+ } ) ) ) ;
125
+ }
126
+ }
127
+ }
0 commit comments