From c9ed15782c3a62fcbfe56a141837b384ada82aaa Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sun, 31 Oct 2021 17:48:23 +0700 Subject: Introduce state lifetime for `style_sheet` in `Toggler` --- native/src/widget/toggler.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'native/src/widget/toggler.rs') diff --git a/native/src/widget/toggler.rs b/native/src/widget/toggler.rs index e5229d52..961d2936 100644 --- a/native/src/widget/toggler.rs +++ b/native/src/widget/toggler.rs @@ -31,7 +31,7 @@ pub use iced_style::toggler::{Style, StyleSheet}; /// Toggler::new(is_active, String::from("Toggle me!"), |b| Message::TogglerToggled(b)); /// ``` #[allow(missing_debug_implementations)] -pub struct Toggler { +pub struct Toggler<'a, Message, Renderer: text::Renderer> { is_active: bool, on_toggle: Box Message>, label: Option, @@ -41,10 +41,10 @@ pub struct Toggler { text_alignment: alignment::Horizontal, spacing: u16, font: Renderer::Font, - style_sheet: Box, + style_sheet: Box, } -impl Toggler { +impl<'a, Message, Renderer: text::Renderer> Toggler<'a, Message, Renderer> { /// The default size of a [`Toggler`]. pub const DEFAULT_SIZE: u16 = 20; @@ -117,14 +117,15 @@ impl Toggler { /// Sets the style of the [`Toggler`]. pub fn style( mut self, - style_sheet: impl Into>, + style_sheet: impl Into>, ) -> Self { self.style_sheet = style_sheet.into(); self } } -impl Widget for Toggler +impl<'a, Message, Renderer> Widget + for Toggler<'a, Message, Renderer> where Renderer: text::Renderer, { @@ -294,14 +295,14 @@ where } } -impl<'a, Message, Renderer> From> +impl<'a, Message, Renderer> From> for Element<'a, Message, Renderer> where Renderer: 'a + text::Renderer, Message: 'a, { fn from( - toggler: Toggler, + toggler: Toggler<'a, Message, Renderer>, ) -> Element<'a, Message, Renderer> { Element::new(toggler) } -- cgit