Skip to content

Commit f7d7ab1

Browse files
committed
Remove unnecessary 'static lifetime on Renderer
1 parent e941eab commit f7d7ab1

11 files changed

Lines changed: 44 additions & 34 deletions

File tree

native/src/widget/button.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ impl State {
143143
impl<'a, Message, Renderer> Widget<Message, Renderer>
144144
for Button<'a, Message, Renderer>
145145
where
146-
Renderer: 'static + self::Renderer,
146+
Renderer: self::Renderer,
147147
Message: Clone,
148148
{
149149
fn width(&self) -> Length {
@@ -234,7 +234,8 @@ where
234234
}
235235

236236
fn hash_layout(&self, state: &mut Hasher) {
237-
std::any::TypeId::of::<Button<'_, (), Renderer>>().hash(state);
237+
struct ButtonWidget;
238+
std::any::TypeId::of::<ButtonWidget>().hash(state);
238239

239240
self.width.hash(state);
240241
self.content.hash_layout(state);
@@ -276,7 +277,7 @@ pub trait Renderer: crate::Renderer + Sized {
276277
impl<'a, Message, Renderer> From<Button<'a, Message, Renderer>>
277278
for Element<'a, Message, Renderer>
278279
where
279-
Renderer: 'static + self::Renderer,
280+
Renderer: 'a + self::Renderer,
280281
Message: 'a + Clone,
281282
{
282283
fn from(

native/src/widget/checkbox.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ impl<Message, Renderer: self::Renderer + text::Renderer>
110110
impl<Message, Renderer> Widget<Message, Renderer>
111111
for Checkbox<Message, Renderer>
112112
where
113-
Renderer: 'static + self::Renderer + text::Renderer + row::Renderer,
113+
Renderer: self::Renderer + text::Renderer + row::Renderer,
114114
{
115115
fn width(&self) -> Length {
116116
self.width
@@ -205,7 +205,8 @@ where
205205
}
206206

207207
fn hash_layout(&self, state: &mut Hasher) {
208-
std::any::TypeId::of::<Checkbox<(), Renderer>>().hash(state);
208+
struct CheckboxWidget;
209+
std::any::TypeId::of::<CheckboxWidget>().hash(state);
209210

210211
self.label.hash(state);
211212
}
@@ -254,7 +255,7 @@ pub trait Renderer: crate::Renderer {
254255
impl<'a, Message, Renderer> From<Checkbox<Message, Renderer>>
255256
for Element<'a, Message, Renderer>
256257
where
257-
Renderer: 'static + self::Renderer + text::Renderer + row::Renderer,
258+
Renderer: 'a + self::Renderer + text::Renderer + row::Renderer,
258259
Message: 'a,
259260
{
260261
fn from(

native/src/widget/column.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ impl<'a, Message, Renderer> Column<'a, Message, Renderer> {
124124
impl<'a, Message, Renderer> Widget<Message, Renderer>
125125
for Column<'a, Message, Renderer>
126126
where
127-
Renderer: 'static + self::Renderer,
127+
Renderer: self::Renderer,
128128
{
129129
fn width(&self) -> Length {
130130
self.width
@@ -190,7 +190,8 @@ where
190190
}
191191

192192
fn hash_layout(&self, state: &mut Hasher) {
193-
std::any::TypeId::of::<Column<'_, (), Renderer>>().hash(state);
193+
struct ColumnWidget;
194+
std::any::TypeId::of::<ColumnWidget>().hash(state);
194195

195196
self.width.hash(state);
196197
self.height.hash(state);
@@ -234,7 +235,7 @@ pub trait Renderer: crate::Renderer + Sized {
234235
impl<'a, Message, Renderer> From<Column<'a, Message, Renderer>>
235236
for Element<'a, Message, Renderer>
236237
where
237-
Renderer: 'static + self::Renderer,
238+
Renderer: 'a + self::Renderer,
238239
Message: 'a,
239240
{
240241
fn from(

native/src/widget/container.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ where
132132
impl<'a, Message, Renderer> Widget<Message, Renderer>
133133
for Container<'a, Message, Renderer>
134134
where
135-
Renderer: 'static + self::Renderer,
135+
Renderer: self::Renderer,
136136
{
137137
fn width(&self) -> Length {
138138
self.width
@@ -203,7 +203,8 @@ where
203203
}
204204

205205
fn hash_layout(&self, state: &mut Hasher) {
206-
std::any::TypeId::of::<Container<'_, (), Renderer>>().hash(state);
206+
struct ContainerWidget;
207+
std::any::TypeId::of::<ContainerWidget>().hash(state);
207208

208209
self.padding.hash(state);
209210
self.width.hash(state);
@@ -243,7 +244,7 @@ pub trait Renderer: crate::Renderer {
243244
impl<'a, Message, Renderer> From<Container<'a, Message, Renderer>>
244245
for Element<'a, Message, Renderer>
245246
where
246-
Renderer: 'static + self::Renderer,
247+
Renderer: 'a + self::Renderer,
247248
Message: 'a,
248249
{
249250
fn from(

native/src/widget/pane_grid.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ pub struct KeyPressEvent {
356356
impl<'a, Message, Renderer> Widget<Message, Renderer>
357357
for PaneGrid<'a, Message, Renderer>
358358
where
359-
Renderer: 'static + self::Renderer,
359+
Renderer: self::Renderer,
360360
{
361361
fn width(&self) -> Length {
362362
self.width
@@ -597,8 +597,9 @@ where
597597

598598
fn hash_layout(&self, state: &mut Hasher) {
599599
use std::hash::Hash;
600+
struct PaneGridWidget;
601+
std::any::TypeId::of::<PaneGridWidget>().hash(state);
600602

601-
std::any::TypeId::of::<PaneGrid<'_, (), Renderer>>().hash(state);
602603
self.width.hash(state);
603604
self.height.hash(state);
604605
self.state.hash_layout(state);
@@ -643,7 +644,7 @@ pub trait Renderer: crate::Renderer + Sized {
643644
impl<'a, Message, Renderer> From<PaneGrid<'a, Message, Renderer>>
644645
for Element<'a, Message, Renderer>
645646
where
646-
Renderer: 'static + self::Renderer,
647+
Renderer: 'a + self::Renderer,
647648
Message: 'a,
648649
{
649650
fn from(

native/src/widget/progress_bar.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ impl<Renderer: self::Renderer> ProgressBar<Renderer> {
7272

7373
impl<Message, Renderer> Widget<Message, Renderer> for ProgressBar<Renderer>
7474
where
75-
Renderer: 'static + self::Renderer,
75+
Renderer: self::Renderer,
7676
{
7777
fn width(&self) -> Length {
7878
self.width
@@ -114,7 +114,8 @@ where
114114
}
115115

116116
fn hash_layout(&self, state: &mut Hasher) {
117-
std::any::TypeId::of::<ProgressBar<Renderer>>().hash(state);
117+
struct ProgressBarWidget;
118+
std::any::TypeId::of::<ProgressBarWidget>().hash(state);
118119

119120
self.width.hash(state);
120121
self.height.hash(state);
@@ -159,7 +160,7 @@ pub trait Renderer: crate::Renderer {
159160
impl<'a, Message, Renderer> From<ProgressBar<Renderer>>
160161
for Element<'a, Message, Renderer>
161162
where
162-
Renderer: 'static + self::Renderer,
163+
Renderer: 'a + self::Renderer,
163164
Message: 'a,
164165
{
165166
fn from(

native/src/widget/radio.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ impl<Message, Renderer: self::Renderer> Radio<Message, Renderer> {
8282

8383
impl<Message, Renderer> Widget<Message, Renderer> for Radio<Message, Renderer>
8484
where
85-
Renderer: 'static + self::Renderer + text::Renderer + row::Renderer,
85+
Renderer: self::Renderer + text::Renderer + row::Renderer,
8686
Message: Clone,
8787
{
8888
fn width(&self) -> Length {
@@ -174,7 +174,8 @@ where
174174
}
175175

176176
fn hash_layout(&self, state: &mut Hasher) {
177-
std::any::TypeId::of::<Radio<(), Renderer>>().hash(state);
177+
struct RadioWidget;
178+
std::any::TypeId::of::<RadioWidget>().hash(state);
178179

179180
self.label.hash(state);
180181
}
@@ -218,7 +219,7 @@ pub trait Renderer: crate::Renderer {
218219
impl<'a, Message, Renderer> From<Radio<Message, Renderer>>
219220
for Element<'a, Message, Renderer>
220221
where
221-
Renderer: 'static + self::Renderer + row::Renderer + text::Renderer,
222+
Renderer: 'a + self::Renderer + row::Renderer + text::Renderer,
222223
Message: 'a + Clone,
223224
{
224225
fn from(radio: Radio<Message, Renderer>) -> Element<'a, Message, Renderer> {

native/src/widget/row.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ impl<'a, Message, Renderer> Row<'a, Message, Renderer> {
125125
impl<'a, Message, Renderer> Widget<Message, Renderer>
126126
for Row<'a, Message, Renderer>
127127
where
128-
Renderer: 'static + self::Renderer,
128+
Renderer: self::Renderer,
129129
{
130130
fn width(&self) -> Length {
131131
self.width
@@ -191,7 +191,8 @@ where
191191
}
192192

193193
fn hash_layout(&self, state: &mut Hasher) {
194-
std::any::TypeId::of::<Row<'_, (), Renderer>>().hash(state);
194+
struct RowWidget;
195+
std::any::TypeId::of::<RowWidget>().hash(state);
195196

196197
self.width.hash(state);
197198
self.height.hash(state);
@@ -236,7 +237,7 @@ pub trait Renderer: crate::Renderer + Sized {
236237
impl<'a, Message, Renderer> From<Row<'a, Message, Renderer>>
237238
for Element<'a, Message, Renderer>
238239
where
239-
Renderer: 'static + self::Renderer,
240+
Renderer: 'a + self::Renderer,
240241
Message: 'a,
241242
{
242243
fn from(row: Row<'a, Message, Renderer>) -> Element<'a, Message, Renderer> {

native/src/widget/scrollable.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ impl<'a, Message, Renderer: self::Renderer> Scrollable<'a, Message, Renderer> {
115115
impl<'a, Message, Renderer> Widget<Message, Renderer>
116116
for Scrollable<'a, Message, Renderer>
117117
where
118-
Renderer: 'static + self::Renderer + column::Renderer,
118+
Renderer: self::Renderer + column::Renderer,
119119
{
120120
fn width(&self) -> Length {
121121
Widget::<Message, Renderer>::width(&self.content)
@@ -311,7 +311,8 @@ where
311311
}
312312

313313
fn hash_layout(&self, state: &mut Hasher) {
314-
std::any::TypeId::of::<Scrollable<'_, (), Renderer>>().hash(state);
314+
struct ScrollableWidget;
315+
std::any::TypeId::of::<ScrollableWidget>().hash(state);
315316

316317
self.height.hash(state);
317318
self.max_height.hash(state);
@@ -505,7 +506,7 @@ pub trait Renderer: crate::Renderer + Sized {
505506
impl<'a, Message, Renderer> From<Scrollable<'a, Message, Renderer>>
506507
for Element<'a, Message, Renderer>
507508
where
508-
Renderer: 'static + self::Renderer + column::Renderer,
509+
Renderer: 'a + self::Renderer + column::Renderer,
509510
Message: 'a,
510511
{
511512
fn from(

native/src/widget/slider.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl State {
114114
impl<'a, Message, Renderer> Widget<Message, Renderer>
115115
for Slider<'a, Message, Renderer>
116116
where
117-
Renderer: 'static + self::Renderer,
117+
Renderer: self::Renderer,
118118
{
119119
fn width(&self) -> Length {
120120
self.width
@@ -205,7 +205,8 @@ where
205205
}
206206

207207
fn hash_layout(&self, state: &mut Hasher) {
208-
std::any::TypeId::of::<Slider<'_, (), Renderer>>().hash(state);
208+
struct SliderWidget;
209+
std::any::TypeId::of::<SliderWidget>().hash(state);
209210

210211
self.width.hash(state);
211212
}
@@ -253,7 +254,7 @@ pub trait Renderer: crate::Renderer {
253254
impl<'a, Message, Renderer> From<Slider<'a, Message, Renderer>>
254255
for Element<'a, Message, Renderer>
255256
where
256-
Renderer: 'static + self::Renderer,
257+
Renderer: 'a + self::Renderer,
257258
Message: 'a,
258259
{
259260
fn from(

0 commit comments

Comments
 (0)