diff options
author | 2021-10-31 17:48:23 +0700 | |
---|---|---|
committer | 2021-10-31 17:48:23 +0700 | |
commit | c9ed15782c3a62fcbfe56a141837b384ada82aaa (patch) | |
tree | 84745b162994db538c561160dc0686c5926459e6 | |
parent | 0d3c9ef7bd3d0a0abecdf8e8b5391e32773ca20e (diff) | |
download | iced-c9ed15782c3a62fcbfe56a141837b384ada82aaa.tar.gz iced-c9ed15782c3a62fcbfe56a141837b384ada82aaa.tar.bz2 iced-c9ed15782c3a62fcbfe56a141837b384ada82aaa.zip |
Introduce state lifetime for `style_sheet` in `Toggler`
-rw-r--r-- | glow/src/widget/toggler.rs | 3 | ||||
-rw-r--r-- | graphics/src/widget/toggler.rs | 4 | ||||
-rw-r--r-- | native/src/widget/toggler.rs | 15 | ||||
-rw-r--r-- | style/src/toggler.rs | 4 | ||||
-rw-r--r-- | 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<Message> = iced_native::widget::Toggler<Message, Renderer>; +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<Message, Backend> = - iced_native::widget::Toggler<Message, Renderer<Backend>>; +pub type Toggler<'a, Message, Backend> = + iced_native::widget::Toggler<'a, Message, Renderer<Backend>>; 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<Message, Renderer: text::Renderer> { +pub struct Toggler<'a, Message, Renderer: text::Renderer> { is_active: bool, on_toggle: Box<dyn Fn(bool) -> Message>, label: Option<String>, @@ -41,10 +41,10 @@ pub struct Toggler<Message, Renderer: text::Renderer> { text_alignment: alignment::Horizontal, spacing: u16, font: Renderer::Font, - style_sheet: Box<dyn StyleSheet>, + style_sheet: Box<dyn StyleSheet + 'a>, } -impl<Message, Renderer: text::Renderer> Toggler<Message, Renderer> { +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<Message, Renderer: text::Renderer> Toggler<Message, Renderer> { /// Sets the style of the [`Toggler`]. pub fn style( mut self, - style_sheet: impl Into<Box<dyn StyleSheet>>, + style_sheet: impl Into<Box<dyn StyleSheet + 'a>>, ) -> Self { self.style_sheet = style_sheet.into(); self } } -impl<Message, Renderer> Widget<Message, Renderer> for Toggler<Message, Renderer> +impl<'a, Message, Renderer> Widget<Message, Renderer> + for Toggler<'a, Message, Renderer> where Renderer: text::Renderer, { @@ -294,14 +295,14 @@ where } } -impl<'a, Message, Renderer> From<Toggler<Message, Renderer>> +impl<'a, Message, Renderer> From<Toggler<'a, Message, Renderer>> for Element<'a, Message, Renderer> where Renderer: 'a + text::Renderer, Message: 'a, { fn from( - toggler: Toggler<Message, Renderer>, + 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<dyn StyleSheet> { } } -impl<T> From<T> for Box<dyn StyleSheet> +impl<'a, T> From<T> for Box<dyn StyleSheet + 'a> 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<Message> = iced_native::widget::Toggler<Message, Renderer>; +pub type Toggler<'a, Message> = + iced_native::widget::Toggler<'a, Message, Renderer>; |