Loose lifetime bounds in pure::Widget implementations

This commit is contained in:
Héctor Ramón Jiménez 2022-03-29 18:24:17 +07:00
parent 323a0b9e61
commit d9d6dff550
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
10 changed files with 22 additions and 22 deletions

View file

@ -41,7 +41,7 @@ where
where where
Message: 'a, Message: 'a,
Renderer: 'a, Renderer: 'a,
B: 'static, B: 'a,
{ {
Element { Element {
position: self.position, position: self.position,

View file

@ -33,7 +33,7 @@ pub struct Scrollable<'a, Message, Renderer> {
scrollbar_margin: u16, scrollbar_margin: u16,
scroller_width: u16, scroller_width: u16,
content: Column<'a, Message, Renderer>, content: Column<'a, Message, Renderer>,
on_scroll: Option<Box<dyn Fn(f32) -> Message>>, on_scroll: Option<Box<dyn Fn(f32) -> Message + 'a>>,
style_sheet: Box<dyn StyleSheet + 'a>, style_sheet: Box<dyn StyleSheet + 'a>,
} }
@ -181,7 +181,7 @@ pub fn update<Message>(
scrollbar_width: u16, scrollbar_width: u16,
scrollbar_margin: u16, scrollbar_margin: u16,
scroller_width: u16, scroller_width: u16,
on_scroll: &Option<Box<dyn Fn(f32) -> Message>>, on_scroll: &Option<Box<dyn Fn(f32) -> Message + '_>>,
update_content: impl FnOnce( update_content: impl FnOnce(
Event, Event,
Layout<'_>, Layout<'_>,
@ -597,7 +597,7 @@ fn scrollbar(
fn notify_on_scroll<Message>( fn notify_on_scroll<Message>(
state: &State, state: &State,
on_scroll: &Option<Box<dyn Fn(f32) -> Message>>, on_scroll: &Option<Box<dyn Fn(f32) -> Message + '_>>,
bounds: Rectangle, bounds: Rectangle,
content_bounds: Rectangle, content_bounds: Rectangle,
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,

View file

@ -34,7 +34,7 @@ impl<'a, Message, Renderer> Element<'a, Message, Renderer> {
where where
Message: 'a, Message: 'a,
Renderer: iced_native::Renderer + 'a, Renderer: iced_native::Renderer + 'a,
B: 'static, B: 'a,
{ {
Element::new(Map::new(self.widget, f)) Element::new(Map::new(self.widget, f))
} }
@ -64,7 +64,7 @@ impl<'a, A, B, Renderer> Widget<B, Renderer> for Map<'a, A, B, Renderer>
where where
Renderer: iced_native::Renderer + 'a, Renderer: iced_native::Renderer + 'a,
A: 'a, A: 'a,
B: 'static, B: 'a,
{ {
fn tag(&self) -> tree::Tag { fn tag(&self) -> tree::Tag {
self.widget.tag() self.widget.tag()

View file

@ -23,8 +23,8 @@ pub struct Pure<'a, Message, Renderer> {
impl<'a, Message, Renderer> Pure<'a, Message, Renderer> impl<'a, Message, Renderer> Pure<'a, Message, Renderer>
where where
Message: 'static, Message: 'a,
Renderer: iced_native::Renderer + 'static, Renderer: iced_native::Renderer + 'a,
{ {
pub fn new( pub fn new(
state: &'a mut State, state: &'a mut State,

View file

@ -75,8 +75,8 @@ impl<'a, Message, Renderer> Button<'a, Message, Renderer> {
impl<'a, Message, Renderer> Widget<Message, Renderer> impl<'a, Message, Renderer> Widget<Message, Renderer>
for Button<'a, Message, Renderer> for Button<'a, Message, Renderer>
where where
Message: 'static + Clone, Message: 'a + Clone,
Renderer: 'static + iced_native::Renderer, Renderer: 'a + iced_native::Renderer,
{ {
fn tag(&self) -> tree::Tag { fn tag(&self) -> tree::Tag {
tree::Tag::of::<State>() tree::Tag::of::<State>()
@ -216,8 +216,8 @@ where
impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>
for Button<'a, Message, Renderer> for Button<'a, Message, Renderer>
where where
Message: Clone + 'static, Message: Clone + 'a,
Renderer: iced_native::Renderer + 'static, Renderer: iced_native::Renderer + 'a,
{ {
fn into(self) -> Element<'a, Message, Renderer> { fn into(self) -> Element<'a, Message, Renderer> {
Element::new(self) Element::new(self)

View file

@ -216,8 +216,8 @@ where
impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>
for Column<'a, Message, Renderer> for Column<'a, Message, Renderer>
where where
Message: 'static, Message: 'a,
Renderer: iced_native::Renderer + 'static, Renderer: iced_native::Renderer + 'a,
{ {
fn into(self) -> Element<'a, Message, Renderer> { fn into(self) -> Element<'a, Message, Renderer> {
Element::new(self) Element::new(self)

View file

@ -109,7 +109,7 @@ impl<'a, T: 'a, Message, Renderer> Widget<Message, Renderer>
where where
T: Clone + ToString + Eq + 'static, T: Clone + ToString + Eq + 'static,
[T]: ToOwned<Owned = Vec<T>>, [T]: ToOwned<Owned = Vec<T>>,
Message: 'static, Message: 'a,
Renderer: text::Renderer + 'a, Renderer: text::Renderer + 'a,
{ {
fn tag(&self) -> tree::Tag { fn tag(&self) -> tree::Tag {
@ -226,7 +226,7 @@ where
T: Clone + ToString + Eq + 'static, T: Clone + ToString + Eq + 'static,
[T]: ToOwned<Owned = Vec<T>>, [T]: ToOwned<Owned = Vec<T>>,
Renderer: text::Renderer + 'a, Renderer: text::Renderer + 'a,
Message: 'static, Message: 'a,
{ {
fn into(self) -> Element<'a, Message, Renderer> { fn into(self) -> Element<'a, Message, Renderer> {
Element::new(self) Element::new(self)

View file

@ -203,8 +203,8 @@ where
impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>
for Row<'a, Message, Renderer> for Row<'a, Message, Renderer>
where where
Message: 'static, Message: 'a,
Renderer: iced_native::Renderer + 'static, Renderer: iced_native::Renderer + 'a,
{ {
fn into(self) -> Element<'a, Message, Renderer> { fn into(self) -> Element<'a, Message, Renderer> {
Element::new(self) Element::new(self)

View file

@ -19,7 +19,7 @@ pub struct Scrollable<'a, Message, Renderer> {
scrollbar_width: u16, scrollbar_width: u16,
scrollbar_margin: u16, scrollbar_margin: u16,
scroller_width: u16, scroller_width: u16,
on_scroll: Option<Box<dyn Fn(f32) -> Message>>, on_scroll: Option<Box<dyn Fn(f32) -> Message + 'a>>,
style_sheet: Box<dyn StyleSheet + 'a>, style_sheet: Box<dyn StyleSheet + 'a>,
content: Element<'a, Message, Renderer>, content: Element<'a, Message, Renderer>,
} }
@ -71,7 +71,7 @@ impl<'a, Message, Renderer: iced_native::Renderer>
/// ///
/// The function takes the new relative offset of the [`Scrollable`] /// The function takes the new relative offset of the [`Scrollable`]
/// (e.g. `0` means top, while `1` means bottom). /// (e.g. `0` means top, while `1` means bottom).
pub fn on_scroll(mut self, f: impl Fn(f32) -> Message + 'static) -> Self { pub fn on_scroll(mut self, f: impl Fn(f32) -> Message + 'a) -> Self {
self.on_scroll = Some(Box::new(f)); self.on_scroll = Some(Box::new(f));
self self
} }

View file

@ -53,7 +53,7 @@ where
impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>>
for Text<Renderer> for Text<Renderer>
where where
Renderer: text::Renderer + 'static, Renderer: text::Renderer + 'a,
{ {
fn into(self) -> Element<'a, Message, Renderer> { fn into(self) -> Element<'a, Message, Renderer> {
Element::new(self) Element::new(self)
@ -62,7 +62,7 @@ where
impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for &'a str impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for &'a str
where where
Renderer: text::Renderer + 'static, Renderer: text::Renderer + 'a,
{ {
fn into(self) -> Element<'a, Message, Renderer> { fn into(self) -> Element<'a, Message, Renderer> {
Text::new(self).into() Text::new(self).into()