diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-01-18 17:42:11 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-01-18 17:43:58 +0300 |
| commit | 818248457210f5101459ea7d7066d12c456c8a97 (patch) | |
| tree | 942ad497f54a0b59b55938ed1a9b95acb405275b /src/layout/shadow.rs | |
| parent | 0584dd2f1e82417bdabcc0d8cb20fddc2e8cc5e7 (diff) | |
| download | niri-818248457210f5101459ea7d7066d12c456c8a97.tar.gz niri-818248457210f5101459ea7d7066d12c456c8a97.tar.bz2 niri-818248457210f5101459ea7d7066d12c456c8a97.zip | |
Remove Vec from Shadow::render()
Diffstat (limited to 'src/layout/shadow.rs')
| -rw-r--r-- | src/layout/shadow.rs | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/layout/shadow.rs b/src/layout/shadow.rs index 1600e333..3e0605c4 100644 --- a/src/layout/shadow.rs +++ b/src/layout/shadow.rs @@ -157,26 +157,19 @@ impl Shadow { &self, renderer: &mut impl NiriRenderer, location: Point<f64, Logical>, - ) -> impl Iterator<Item = ShadowRenderElement> { - let mut rv = Vec::new(); - + ) -> impl Iterator<Item = ShadowRenderElement> + '_ { if !self.config.on { - return rv.into_iter(); + return None.into_iter().flatten(); } let has_shadow_shader = ShadowRenderElement::has_shader(renderer); if !has_shadow_shader { - return rv.into_iter(); + return None.into_iter().flatten(); } - let mut push = |shader: &ShadowRenderElement, location: Point<f64, Logical>| { - rv.push(shader.clone().with_location(location)); - }; - - for (shader, rect) in zip(&self.shaders, &self.shader_rects) { - push(shader, location + rect.loc); - } + let rv = zip(&self.shaders, &self.shader_rects) + .map(move |(shader, rect)| shader.clone().with_location(location + rect.loc)); - rv.into_iter() + Some(rv).into_iter().flatten() } } |
