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` --- glow/src/widget/toggler.rs | 3 ++- graphics/src/widget/toggler.rs | 4 ++-- native/src/widget/toggler.rs | 15 ++++++++------- style/src/toggler.rs | 4 ++-- wgpu/src/widget/toggler.rs | 3 ++- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/glow/src/widget/toggler.rs b/glow/src/widget/toggler.rs index cea48efb..40379025 100644 --- a/glow/src/widget/toggler.rs +++ b/glow/src/widget/toggler.rs @@ -6,4 +6,5 @@ pub use iced_graphics::toggler::{Style, StyleSheet}; /// A toggler that can be toggled. /// /// This is an alias of an `iced_native` checkbox with an `iced_wgpu::Renderer`. -pub type Toggler = iced_native::widget::Toggler; +pub type Toggler<'a, Message> = + iced_native::widget::Toggler<'a, Message, Renderer>; diff --git a/graphics/src/widget/toggler.rs b/graphics/src/widget/toggler.rs index 0cabd027..9053e6ed 100644 --- a/graphics/src/widget/toggler.rs +++ b/graphics/src/widget/toggler.rs @@ -6,5 +6,5 @@ pub use iced_style::toggler::{Style, StyleSheet}; /// A toggler that can be toggled. /// /// This is an alias of an `iced_native` toggler with an `iced_wgpu::Renderer`. -pub type Toggler = - iced_native::widget::Toggler>; +pub type Toggler<'a, Message, Backend> = + iced_native::widget::Toggler<'a, Message, Renderer>; 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) } diff --git a/style/src/toggler.rs b/style/src/toggler.rs index 5a155123..16c014e6 100644 --- a/style/src/toggler.rs +++ b/style/src/toggler.rs @@ -47,9 +47,9 @@ impl std::default::Default for Box { } } -impl From for Box +impl<'a, T> From for Box where - T: 'static + StyleSheet, + T: 'a + StyleSheet, { fn from(style: T) -> Self { Box::new(style) diff --git a/wgpu/src/widget/toggler.rs b/wgpu/src/widget/toggler.rs index 7c3cc430..7ef5e22e 100644 --- a/wgpu/src/widget/toggler.rs +++ b/wgpu/src/widget/toggler.rs @@ -6,4 +6,5 @@ pub use iced_graphics::toggler::{Style, StyleSheet}; /// A toggler that can be toggled /// /// This is an alias of an `iced_native` toggler with an `iced_wgpu::Renderer`. -pub type Toggler = iced_native::widget::Toggler; +pub type Toggler<'a, Message> = + iced_native::widget::Toggler<'a, Message, Renderer>; -- cgit