From afd138dba697976f61e335555b69417c4c84f7f2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 12 Mar 2024 14:47:36 +0100 Subject: Use closures for `Slider::style` and `VerticalSlider::style` --- widget/src/vertical_slider.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'widget/src/vertical_slider.rs') diff --git a/widget/src/vertical_slider.rs b/widget/src/vertical_slider.rs index f7030584..2aa8f4d1 100644 --- a/widget/src/vertical_slider.rs +++ b/widget/src/vertical_slider.rs @@ -51,7 +51,7 @@ pub struct VerticalSlider<'a, T, Message, Theme = crate::Theme> { on_release: Option, width: f32, height: Length, - style: Style, + style: Style<'a, Theme>, } impl<'a, T, Message, Theme> VerticalSlider<'a, T, Message, Theme> @@ -72,7 +72,7 @@ where /// `Message`. pub fn new(range: RangeInclusive, value: T, on_change: F) -> Self where - Theme: DefaultStyle, + Theme: DefaultStyle + 'a, F: 'a + Fn(T) -> Message, { let value = if value >= *range.start() { @@ -97,7 +97,7 @@ where on_release: None, width: Self::DEFAULT_WIDTH, height: Length::Fill, - style: Theme::default_style(), + style: Box::new(Theme::default_style), } } @@ -133,8 +133,11 @@ where } /// Sets the style of the [`VerticalSlider`]. - pub fn style(mut self, style: fn(&Theme, Status) -> Appearance) -> Self { - self.style = style.into(); + pub fn style( + mut self, + style: impl Fn(&Theme, Status) -> Appearance + 'a, + ) -> Self { + self.style = Box::new(style); self } -- cgit