From 0539cd1b85d00a2accca200184a5980527851539 Mon Sep 17 00:00:00 2001 From: Théo Gaillard Date: Mon, 30 Mar 2020 06:30:22 +0800 Subject: refactor: remove not mandatory static lifetime --- native/src/widget/pane_grid.rs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'native/src/widget/pane_grid.rs') diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs index a88f591a..9699abfc 100644 --- a/native/src/widget/pane_grid.rs +++ b/native/src/widget/pane_grid.rs @@ -187,10 +187,10 @@ impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { /// Panes can be dragged using `Modifier keys + Left click`. /// /// [`PaneGrid`]: struct.PaneGrid.html - pub fn on_drag( - mut self, - f: impl Fn(DragEvent) -> Message + 'static, - ) -> Self { + pub fn on_drag(mut self, f: F) -> Self + where + F: 'static + Fn(DragEvent) -> Message, + { self.on_drag = Some(Box::new(f)); self } @@ -201,10 +201,10 @@ impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { /// Panes can be resized using `Modifier keys + Right click`. /// /// [`PaneGrid`]: struct.PaneGrid.html - pub fn on_resize( - mut self, - f: impl Fn(ResizeEvent) -> Message + 'static, - ) -> Self { + pub fn on_resize(mut self, f: F) -> Self + where + F: 'static + Fn(ResizeEvent) -> Message, + { self.on_resize = Some(Box::new(f)); self } @@ -226,10 +226,10 @@ impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { /// /// [`PaneGrid`]: struct.PaneGrid.html /// [`Pane`]: struct.Pane.html - pub fn on_key_press( - mut self, - f: impl Fn(KeyPressEvent) -> Option + 'static, - ) -> Self { + pub fn on_key_press(mut self, f: F) -> Self + where + F: 'static + Fn(KeyPressEvent) -> Option, + { self.on_key_press = Some(Box::new(f)); self } @@ -348,7 +348,7 @@ pub struct KeyPressEvent { impl<'a, Message, Renderer> Widget for PaneGrid<'a, Message, Renderer> where - Renderer: self::Renderer + 'static, + Renderer: 'static + self::Renderer, Message: 'static, { fn width(&self) -> Length { @@ -636,7 +636,7 @@ pub trait Renderer: crate::Renderer + Sized { impl<'a, Message, Renderer> From> for Element<'a, Message, Renderer> where - Renderer: self::Renderer + 'static, + Renderer: 'static + self::Renderer, Message: 'static, { fn from( -- cgit From d07304fb85c4ea7293b61c5d0a366ffbbc511de2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 30 Mar 2020 17:28:55 +0200 Subject: Hash type ids in `Widget::hash_layout` impls --- native/src/widget/pane_grid.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'native/src/widget/pane_grid.rs') diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs index 9699abfc..2eca68d3 100644 --- a/native/src/widget/pane_grid.rs +++ b/native/src/widget/pane_grid.rs @@ -80,9 +80,9 @@ pub struct PaneGrid<'a, Message, Renderer> { height: Length, spacing: u16, modifier_keys: keyboard::ModifiersState, - on_drag: Option Message>>, - on_resize: Option Message>>, - on_key_press: Option Option>>, + on_drag: Option Message + 'a>>, + on_resize: Option Message + 'a>>, + on_key_press: Option Option + 'a>>, } impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { @@ -189,7 +189,7 @@ impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { /// [`PaneGrid`]: struct.PaneGrid.html pub fn on_drag(mut self, f: F) -> Self where - F: 'static + Fn(DragEvent) -> Message, + F: 'a + Fn(DragEvent) -> Message, { self.on_drag = Some(Box::new(f)); self @@ -203,7 +203,7 @@ impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { /// [`PaneGrid`]: struct.PaneGrid.html pub fn on_resize(mut self, f: F) -> Self where - F: 'static + Fn(ResizeEvent) -> Message, + F: 'a + Fn(ResizeEvent) -> Message, { self.on_resize = Some(Box::new(f)); self @@ -228,7 +228,7 @@ impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> { /// [`Pane`]: struct.Pane.html pub fn on_key_press(mut self, f: F) -> Self where - F: 'static + Fn(KeyPressEvent) -> Option, + F: 'a + Fn(KeyPressEvent) -> Option, { self.on_key_press = Some(Box::new(f)); self @@ -349,7 +349,6 @@ impl<'a, Message, Renderer> Widget for PaneGrid<'a, Message, Renderer> where Renderer: 'static + self::Renderer, - Message: 'static, { fn width(&self) -> Length { self.width @@ -591,7 +590,7 @@ where fn hash_layout(&self, state: &mut Hasher) { use std::hash::Hash; - std::any::TypeId::of::>().hash(state); + std::any::TypeId::of::>().hash(state); self.width.hash(state); self.height.hash(state); self.state.hash_layout(state); @@ -637,7 +636,7 @@ impl<'a, Message, Renderer> From> for Element<'a, Message, Renderer> where Renderer: 'static + self::Renderer, - Message: 'static, + Message: 'a, { fn from( pane_grid: PaneGrid<'a, Message, Renderer>, -- cgit