Add elided lifetimes to view helpers in examples

This commit is contained in:
Héctor Ramón Jiménez 2025-06-24 14:29:36 +02:00
parent bde4572bc5
commit 5ca5000cdc
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
50 changed files with 95 additions and 84 deletions

View file

@ -36,7 +36,7 @@ impl Arc {
self.cache.clear(); self.cache.clear();
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
Canvas::new(self).width(Fill).height(Fill).into() Canvas::new(self).width(Fill).height(Fill).into()
} }

View file

@ -34,7 +34,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
container(hover( container(hover(
self.bezier.view(&self.curves).map(Message::AddCurve), self.bezier.view(&self.curves).map(Message::AddCurve),
if self.curves.is_empty() { if self.curves.is_empty() {

View file

@ -217,7 +217,7 @@ impl Generator {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
match self { match self {
Self::Loading => center("Loading...").into(), Self::Loading => center("Loading...").into(),
Self::Done => center( Self::Done => center(

View file

@ -38,7 +38,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let default_checkbox = checkbox("Default", self.default) let default_checkbox = checkbox("Default", self.default)
.on_toggle(Message::DefaultToggled); .on_toggle(Message::DefaultToggled);

View file

@ -48,7 +48,7 @@ impl Clock {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let canvas = canvas(self as &Self).width(Fill).height(Fill); let canvas = canvas(self as &Self).width(Fill).height(Fill);
container(canvas).padding(20).into() container(canvas).padding(20).into()

View file

@ -56,7 +56,7 @@ impl ColorPalette {
self.theme = Theme::new(to_color(srgb)); self.theme = Theme::new(to_color(srgb));
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let base = self.theme.base; let base = self.theme.base;
let srgb = to_rgb(base); let srgb = to_rgb(base);
@ -149,7 +149,7 @@ impl Theme {
.chain(self.higher.iter()) .chain(self.higher.iter())
} }
pub fn view(&self) -> Element<Message> { pub fn view(&self) -> Element<'_, Message> {
Canvas::new(self).width(Fill).height(Fill).into() Canvas::new(self).width(Fill).height(Fill).into()
} }
@ -296,7 +296,7 @@ trait ColorSpace: Sized {
} }
impl<C: ColorSpace + Copy> ColorPicker<C> { impl<C: ColorSpace + Copy> ColorPicker<C> {
fn view(&self, color: C) -> Element<C> { fn view(&self, color: C) -> Element<'_, C> {
let [c1, c2, c3] = color.components(); let [c1, c2, c3] = color.components();
let [cr1, cr2, cr3] = C::COMPONENT_RANGES; let [cr1, cr2, cr3] = C::COMPONENT_RANGES;

View file

@ -47,7 +47,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let combo_box = combo_box( let combo_box = combo_box(
&self.languages, &self.languages,
"Type a language...", "Type a language...",

View file

@ -28,7 +28,7 @@ impl Counter {
} }
} }
fn view(&self) -> Column<Message> { fn view(&self) -> Column<'_, Message> {
column![ column![
button("Increment").on_press(Message::Increment), button("Increment").on_press(Message::Increment),
text(self.value).size(50), text(self.value).size(50),

View file

@ -74,7 +74,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let border::Radius { let border::Radius {
top_left, top_left,
top_right, top_right,

View file

@ -103,7 +103,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let content = column![ let content = column![
circle(self.radius), circle(self.radius),
text!("Radius: {:.2}", self.radius), text!("Radius: {:.2}", self.radius),

View file

@ -61,7 +61,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let downloads = let downloads =
Column::with_children(self.downloads.iter().map(Download::view)) Column::with_children(self.downloads.iter().map(Download::view))
.push( .push(
@ -152,7 +152,7 @@ impl Download {
} }
} }
pub fn view(&self) -> Element<Message> { pub fn view(&self) -> Element<'_, Message> {
let current_progress = match &self.state { let current_progress = match &self.state {
State::Idle => 0.0, State::Idle => 0.0,
State::Downloading { progress, .. } => *progress, State::Downloading { progress, .. } => *progress,

View file

@ -144,7 +144,7 @@ impl Editor {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let controls = row![ let controls = row![
action(new_icon(), "New file", Some(Message::NewFile)), action(new_icon(), "New file", Some(Message::NewFile)),
action( action(

View file

@ -55,7 +55,7 @@ impl Events {
event::listen().map(Message::EventOccurred) event::listen().map(Message::EventOccurred)
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let events = Column::with_children( let events = Column::with_children(
self.last self.last
.iter() .iter()

View file

@ -29,7 +29,7 @@ impl Exit {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let content = if self.show_confirm { let content = if self.show_confirm {
column![ column![
"Are you sure you want to exit?", "Are you sure you want to exit?",

View file

@ -91,7 +91,7 @@ impl Image {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let i_am_ferris = column![ let i_am_ferris = column![
"Hello!", "Hello!",
Element::from( Element::from(

View file

@ -111,7 +111,7 @@ impl GameOfLife {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let version = self.version; let version = self.version;
let selected_speed = self.next_speed.unwrap_or(self.speed); let selected_speed = self.next_speed.unwrap_or(self.speed);
let controls = view_controls( let controls = view_controls(
@ -320,7 +320,7 @@ mod grid {
} }
} }
pub fn view(&self) -> Element<Message> { pub fn view(&self) -> Element<'_, Message> {
Canvas::new(self).width(Fill).height(Fill).into() Canvas::new(self).width(Fill).height(Fill).into()
} }

View file

@ -51,7 +51,7 @@ impl Gradient {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let Self { let Self {
start, start,
end, end,

View file

@ -38,7 +38,7 @@ impl Controls {
} }
} }
pub fn view(&self) -> Element<Message, Theme, Renderer> { pub fn view(&self) -> Element<'_, Message, Theme, Renderer> {
let background_color = self.background_color; let background_color = self.background_color;
let sliders = row![ let sliders = row![

View file

@ -68,7 +68,7 @@ impl Layout {
}) })
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let header = row![ let header = row![
text(self.example.title).size(20).font(Font::MONOSPACE), text(self.example.title).size(20).font(Font::MONOSPACE),
horizontal_space(), horizontal_space(),
@ -121,7 +121,7 @@ impl Layout {
} }
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, Eq)]
struct Example { struct Example {
title: &'static str, title: &'static str,
view: fn() -> Element<'static, Message>, view: fn() -> Element<'static, Message>,
@ -190,7 +190,7 @@ impl Example {
Self::LIST.get(index + 1).copied().unwrap_or(self) Self::LIST.get(index + 1).copied().unwrap_or(self)
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
(self.view)() (self.view)()
} }
} }
@ -201,6 +201,12 @@ impl Default for Example {
} }
} }
impl PartialEq for Example {
fn eq(&self, other: &Self) -> bool {
self.title == other.title
}
}
fn centered<'a>() -> Element<'a, Message> { fn centered<'a>() -> Element<'a, Message> {
center(text("I am centered!").size(50)).into() center(text("I am centered!").size(50)).into()
} }

View file

@ -154,7 +154,7 @@ impl App {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let options = lazy(self.version, |_| { let options = lazy(self.version, |_| {
let mut items: Vec<_> = self.items.iter().cloned().collect(); let mut items: Vec<_> = self.items.iter().cloned().collect();

View file

@ -37,7 +37,7 @@ impl LoadingSpinners {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let column = [ let column = [
&easing::EMPHASIZED, &easing::EMPHASIZED,
&easing::EMPHASIZED_DECELERATE, &easing::EMPHASIZED_DECELERATE,

View file

@ -30,7 +30,7 @@ impl Loupe {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
center(loupe( center(loupe(
3.0, 3.0,
column![ column![

View file

@ -34,7 +34,7 @@ Now, let's show the actual counter by putting it all together in our __view logi
use iced::widget::{button, column, text, Column}; use iced::widget::{button, column, text, Column};
impl Counter { impl Counter {
pub fn view(&self) -> Column<Message> { pub fn view(&self) -> Column<'_, Message> {
// We use a column: a simple vertical layout // We use a column: a simple vertical layout
column![ column![
// The increment button. We tell it to produce an // The increment button. We tell it to produce an

View file

@ -174,7 +174,7 @@ impl Markdown {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let editor = text_editor(&self.raw) let editor = text_editor(&self.raw)
.placeholder("Type your Markdown here...") .placeholder("Type your Markdown here...")
.on_action(Message::Edit) .on_action(Message::Edit)

View file

@ -92,7 +92,7 @@ impl App {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let content = container( let content = container(
column![ column![
row![text("Top Left"), horizontal_space(), text("Top Right")] row![text("Top Left"), horizontal_space(), text("Top Right")]

View file

@ -130,7 +130,7 @@ impl Example {
} }
} }
fn view(&self, window_id: window::Id) -> Element<Message> { fn view(&self, window_id: window::Id) -> Element<'_, Message> {
if let Some(window) = self.windows.get(&window_id) { if let Some(window) = self.windows.get(&window_id) {
center(window.view(window_id)).into() center(window.view(window_id)).into()
} else { } else {
@ -168,7 +168,7 @@ impl Window {
} }
} }
fn view(&self, id: window::Id) -> Element<Message> { fn view(&self, id: window::Id) -> Element<'_, Message> {
let scale_input = column![ let scale_input = column![
text("Window scale factor:"), text("Window scale factor:"),
text_input("Window Scale", &self.scale_input) text_input("Window Scale", &self.scale_input)

View file

@ -43,7 +43,7 @@ impl Multitouch {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
Canvas::new(self).width(Fill).height(Fill).into() Canvas::new(self).width(Fill).height(Fill).into()
} }
} }

View file

@ -129,7 +129,7 @@ impl Example {
}) })
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let focus = self.focus; let focus = self.focus;
let total_panes = self.panes.len(); let total_panes = self.panes.len();

View file

@ -24,7 +24,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let pick_list = pick_list( let pick_list = pick_list(
&Language::ALL[..], &Language::ALL[..],
self.selected_language, self.selected_language,

View file

@ -63,7 +63,7 @@ impl Pokedex {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let content: Element<_> = match self { let content: Element<_> = match self {
Pokedex::Loading => { Pokedex::Loading => {
text("Searching for Pokémon...").size(40).into() text("Searching for Pokémon...").size(40).into()
@ -100,7 +100,7 @@ struct Pokemon {
impl Pokemon { impl Pokemon {
const TOTAL: u16 = 807; const TOTAL: u16 = 807;
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
row![ row![
image::viewer(self.image.clone()), image::viewer(self.image.clone()),
column![ column![

View file

@ -30,7 +30,7 @@ impl Progress {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let bar = progress_bar(0.0..=100.0, self.value); let bar = progress_bar(0.0..=100.0, self.value);
column![ column![

View file

@ -63,7 +63,7 @@ impl QRGenerator {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let title = text("QR Code Generator").size(70); let title = text("QR Code Generator").size(70);
let input = let input =

View file

@ -118,7 +118,7 @@ impl ScrollableDemo {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let scrollbar_width_slider = slider( let scrollbar_width_slider = slider(
0..=15, 0..=15,
self.scrollbar_width, self.scrollbar_width,

View file

@ -1,7 +1,9 @@
use iced::mouse; use iced::mouse;
use iced::widget::canvas::{self, Canvas, Event, Geometry}; use iced::widget::canvas::{self, Canvas, Event, Geometry};
use iced::widget::{column, row, slider, text}; use iced::widget::{column, row, slider, text};
use iced::{Center, Color, Fill, Point, Rectangle, Renderer, Size, Theme}; use iced::{
Center, Color, Element, Fill, Point, Rectangle, Renderer, Size, Theme,
};
use rand::Rng; use rand::Rng;
use std::fmt::Debug; use std::fmt::Debug;
@ -46,7 +48,7 @@ impl SierpinskiEmulator {
self.graph.redraw(); self.graph.redraw();
} }
fn view(&self) -> iced::Element<'_, Message> { fn view(&self) -> Element<'_, Message> {
column![ column![
Canvas::new(&self.graph).width(Fill).height(Fill), Canvas::new(&self.graph).width(Fill).height(Fill),
row![ row![

View file

@ -27,7 +27,7 @@ impl Slider {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let h_slider = container( let h_slider = container(
slider(1..=100, self.value, Message::SliderChanged) slider(1..=100, self.value, Message::SliderChanged)
.default(50) .default(50)

View file

@ -55,7 +55,7 @@ impl SolarSystem {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
canvas(&self.state).width(Fill).height(Fill).into() canvas(&self.state).width(Fill).height(Fill).into()
} }

View file

@ -83,7 +83,7 @@ impl Stopwatch {
Subscription::batch(vec![tick, keyboard::on_key_press(handle_hotkey)]) Subscription::batch(vec![tick, keyboard::on_key_press(handle_hotkey)])
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
const MINUTE: u64 = 60; const MINUTE: u64 = 60;
const HOUR: u64 = 60 * MINUTE; const HOUR: u64 = 60 * MINUTE;

View file

@ -65,7 +65,7 @@ impl Styling {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let choose_theme = column![ let choose_theme = column![
text("Theme:"), text("Theme:"),
pick_list(Theme::ALL, Some(&self.theme), Message::ThemeChanged) pick_list(Theme::ALL, Some(&self.theme), Message::ThemeChanged)

View file

@ -24,7 +24,7 @@ impl Tiger {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let handle = svg::Handle::from_path(format!( let handle = svg::Handle::from_path(format!(
"{}/resources/tiger.svg", "{}/resources/tiger.svg",
env!("CARGO_MANIFEST_DIR") env!("CARGO_MANIFEST_DIR")

View file

@ -47,7 +47,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
use bytesize::ByteSize; use bytesize::ByteSize;
let content: Element<_> = match self { let content: Element<_> = match self {

View file

@ -34,7 +34,7 @@ impl TheMatrix {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
canvas(self).width(Fill).height(Fill).into() canvas(self).width(Fill).height(Fill).into()
} }

View file

@ -182,7 +182,7 @@ impl Todos {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
match self { match self {
Todos::Loading => loading_message(), Todos::Loading => loading_message(),
Todos::Loaded(State { Todos::Loaded(State {
@ -334,7 +334,7 @@ impl Task {
} }
} }
fn view(&self, i: usize) -> Element<TaskMessage> { fn view(&self, i: usize) -> Element<'_, TaskMessage> {
match &self.state { match &self.state {
TaskState::Idle => { TaskState::Idle => {
let checkbox = checkbox(&self.description, self.completed) let checkbox = checkbox(&self.description, self.completed)
@ -381,7 +381,10 @@ impl Task {
} }
} }
fn view_controls(tasks: &[Task], current_filter: Filter) -> Element<Message> { fn view_controls(
tasks: &[Task],
current_filter: Filter,
) -> Element<'_, Message> {
let tasks_left = tasks.iter().filter(|task| !task.completed).count(); let tasks_left = tasks.iter().filter(|task| !task.completed).count();
let filter_button = |label, filter, current_filter| { let filter_button = |label, filter, current_filter| {
@ -580,7 +583,7 @@ mod tests {
use iced_test::selector::id; use iced_test::selector::id;
use iced_test::{Error, Simulator}; use iced_test::{Error, Simulator};
fn simulator(todos: &Todos) -> Simulator<Message> { fn simulator(todos: &Todos) -> Simulator<'_, Message> {
Simulator::with_settings( Simulator::with_settings(
Settings { Settings {
fonts: vec![Todos::ICON_FONT.into()], fonts: vec![Todos::ICON_FONT.into()],

View file

@ -33,7 +33,7 @@ impl Tooltip {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let tooltip = tooltip( let tooltip = tooltip(
button("Press to change position") button("Press to change position")
.on_press(Message::ChangePosition), .on_press(Message::ChangePosition),

View file

@ -141,7 +141,7 @@ impl Tour {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let controls = let controls =
row![] row![]
.push_maybe(self.screen.previous().is_some().then(|| { .push_maybe(self.screen.previous().is_some().then(|| {
@ -197,7 +197,7 @@ impl Tour {
} }
} }
fn welcome(&self) -> Column<Message> { fn welcome(&self) -> Column<'_, Message> {
Self::container("Welcome!") Self::container("Welcome!")
.push( .push(
"This is a simple tour meant to showcase a bunch of \ "This is a simple tour meant to showcase a bunch of \
@ -244,7 +244,7 @@ impl Tour {
) )
} }
fn slider(&self) -> Column<Message> { fn slider(&self) -> Column<'_, Message> {
Self::container("Slider") Self::container("Slider")
.push( .push(
"A slider allows you to smoothly select a value from a range \ "A slider allows you to smoothly select a value from a range \
@ -258,7 +258,7 @@ impl Tour {
.push(text(self.slider.to_string()).width(Fill).align_x(Center)) .push(text(self.slider.to_string()).width(Fill).align_x(Center))
} }
fn rows_and_columns(&self) -> Column<Message> { fn rows_and_columns(&self) -> Column<'_, Message> {
let row_radio = radio( let row_radio = radio(
"Row", "Row",
Layout::Row, Layout::Row,
@ -303,7 +303,7 @@ impl Tour {
.push(spacing_section) .push(spacing_section)
} }
fn text(&self) -> Column<Message> { fn text(&self) -> Column<'_, Message> {
let size = self.text_size; let size = self.text_size;
let color = self.text_color; let color = self.text_color;
@ -339,7 +339,7 @@ impl Tour {
.push(color_section) .push(color_section)
} }
fn radio(&self) -> Column<Message> { fn radio(&self) -> Column<'_, Message> {
let question = column![ let question = column![
text("Iced is written in...").size(24), text("Iced is written in...").size(24),
column( column(
@ -374,7 +374,7 @@ impl Tour {
) )
} }
fn toggler(&self) -> Column<Message> { fn toggler(&self) -> Column<'_, Message> {
Self::container("Toggler") Self::container("Toggler")
.push("A toggler is mostly used to enable or disable something.") .push("A toggler is mostly used to enable or disable something.")
.push( .push(
@ -387,7 +387,7 @@ impl Tour {
) )
} }
fn image(&self) -> Column<Message> { fn image(&self) -> Column<'_, Message> {
let width = self.image_width; let width = self.image_width;
let filter_method = self.image_filter_method; let filter_method = self.image_filter_method;
@ -406,7 +406,7 @@ impl Tour {
.align_x(Center) .align_x(Center)
} }
fn scrollable(&self) -> Column<Message> { fn scrollable(&self) -> Column<'_, Message> {
Self::container("Scrollable") Self::container("Scrollable")
.push( .push(
"Iced supports scrollable content. Try it out! Find the \ "Iced supports scrollable content. Try it out! Find the \
@ -428,7 +428,7 @@ impl Tour {
.push(text("You made it!").width(Fill).size(50).align_x(Center)) .push(text("You made it!").width(Fill).size(50).align_x(Center))
} }
fn text_input(&self) -> Column<Message> { fn text_input(&self) -> Column<'_, Message> {
let value = &self.input_value; let value = &self.input_value;
let is_secure = self.input_is_secure; let is_secure = self.input_is_secure;
let is_showing_icon = self.input_is_showing_icon; let is_showing_icon = self.input_is_showing_icon;
@ -474,7 +474,7 @@ impl Tour {
) )
} }
fn debugger(&self) -> Column<Message> { fn debugger(&self) -> Column<'_, Message> {
Self::container("Debugger") Self::container("Debugger")
.push( .push(
"You can ask Iced to visually explain the layouting of the \ "You can ask Iced to visually explain the layouting of the \
@ -491,7 +491,7 @@ impl Tour {
.push("Feel free to go back and take a look.") .push("Feel free to go back and take a look.")
} }
fn end(&self) -> Column<Message> { fn end(&self) -> Column<'_, Message> {
Self::container("You reached the end!") Self::container("You reached the end!")
.push("This tour will be updated as more features are added.") .push("This tour will be updated as more features are added.")
.push("Make sure to keep an eye on it!") .push("Make sure to keep an eye on it!")

View file

@ -31,7 +31,7 @@ impl App {
event::listen_url().map(Message::UrlReceived) event::listen_url().map(Message::UrlReceived)
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let content = match &self.url { let content = match &self.url {
Some(url) => text(url), Some(url) => text(url),
None => text("No URL received yet!"), None => text("No URL received yet!"),

View file

@ -48,7 +48,7 @@ impl VectorialText {
self.state.cache.clear(); self.state.cache.clear();
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let slider_with_label = |label, range, value, message: fn(f32) -> _| { let slider_with_label = |label, range, value, message: fn(f32) -> _| {
column![ column![
row![text(label), horizontal_space(), text!("{:.2}", value)], row![text(label), horizontal_space(), text!("{:.2}", value)],

View file

@ -59,7 +59,7 @@ impl Example {
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let data_row = |label, value, color| { let data_row = |label, value, color| {
row![ row![
text(label), text(label),

View file

@ -90,7 +90,7 @@ impl WebSocket {
Subscription::run(echo::connect).map(Message::Echo) Subscription::run(echo::connect).map(Message::Echo)
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<'_, Message> {
let message_log: Element<_> = if self.messages.is_empty() { let message_log: Element<_> = if self.messages.is_empty() {
center( center(
text("Your messages will appear here...") text("Your messages will appear here...")

View file

@ -34,7 +34,7 @@
//! iced::run(update, view) //! iced::run(update, view)
//! } //! }
//! # fn update(state: &mut (), message: ()) {} //! # fn update(state: &mut (), message: ()) {}
//! # fn view(state: &()) -> iced::Element<()> { iced::widget::text("").into() } //! # fn view(state: &()) -> iced::Element<'_, ()> { iced::widget::text("").into() }
//! ``` //! ```
//! //!
//! Define an `update` function to __change__ your state: //! Define an `update` function to __change__ your state:
@ -55,7 +55,7 @@
//! use iced::widget::{button, text}; //! use iced::widget::{button, text};
//! use iced::Element; //! use iced::Element;
//! //!
//! fn view(counter: &u64) -> Element<Message> { //! fn view(counter: &u64) -> Element<'_, Message> {
//! button(text(counter)).on_press(Message::Increment).into() //! button(text(counter)).on_press(Message::Increment).into()
//! } //! }
//! # #[derive(Clone)] //! # #[derive(Clone)]
@ -95,7 +95,7 @@
//! } //! }
//! } //! }
//! //!
//! fn view(counter: &Counter) -> Element<Message> { //! fn view(counter: &Counter) -> Element<'_, Message> {
//! button(text(counter.value)).on_press(Message::Increment).into() //! button(text(counter.value)).on_press(Message::Increment).into()
//! } //! }
//! ``` //! ```
@ -115,7 +115,7 @@
//! use iced::widget::{button, column, text}; //! use iced::widget::{button, column, text};
//! use iced::Element; //! use iced::Element;
//! //!
//! fn view(counter: &Counter) -> Element<Message> { //! fn view(counter: &Counter) -> Element<'_, Message> {
//! column![ //! column![
//! text(counter.value).size(20), //! text(counter.value).size(20),
//! button("Increment").on_press(Message::Increment), //! button("Increment").on_press(Message::Increment),
@ -144,7 +144,7 @@
//! use iced::widget::{column, container, row}; //! use iced::widget::{column, container, row};
//! use iced::{Fill, Element}; //! use iced::{Fill, Element};
//! //!
//! fn view(state: &State) -> Element<Message> { //! fn view(state: &State) -> Element<'_, Message> {
//! container( //! container(
//! column![ //! column![
//! "Top", //! "Top",
@ -187,7 +187,7 @@
//! use iced::widget::container; //! use iced::widget::container;
//! use iced::Element; //! use iced::Element;
//! //!
//! fn view(state: &State) -> Element<Message> { //! fn view(state: &State) -> Element<'_, Message> {
//! container("I am 300px tall!").height(300).into() //! container("I am 300px tall!").height(300).into()
//! } //! }
//! ``` //! ```
@ -216,7 +216,7 @@
//! Theme::TokyoNight //! Theme::TokyoNight
//! } //! }
//! # fn update(state: &mut State, message: ()) {} //! # fn update(state: &mut State, message: ()) {}
//! # fn view(state: &State) -> iced::Element<()> { iced::widget::text("").into() } //! # fn view(state: &State) -> iced::Element<'_, ()> { iced::widget::text("").into() }
//! ``` //! ```
//! //!
//! The `theme` function takes the current state of the application, allowing the //! The `theme` function takes the current state of the application, allowing the
@ -237,7 +237,7 @@
//! use iced::widget::container; //! use iced::widget::container;
//! use iced::Element; //! use iced::Element;
//! //!
//! fn view(state: &State) -> Element<Message> { //! fn view(state: &State) -> Element<'_, Message> {
//! container("I am a rounded box!").style(container::rounded_box).into() //! container("I am a rounded box!").style(container::rounded_box).into()
//! } //! }
//! ``` //! ```
@ -252,7 +252,7 @@
//! use iced::widget::button; //! use iced::widget::button;
//! use iced::{Element, Theme}; //! use iced::{Element, Theme};
//! //!
//! fn view(state: &State) -> Element<Message> { //! fn view(state: &State) -> Element<'_, Message> {
//! button("I am a styled button!").style(|theme: &Theme, status| { //! button("I am a styled button!").style(|theme: &Theme, status| {
//! let palette = theme.extended_palette(); //! let palette = theme.extended_palette();
//! //!
@ -359,7 +359,7 @@
//! } //! }
//! # fn new() -> State { State } //! # fn new() -> State { State }
//! # fn update(state: &mut State, message: Message) {} //! # fn update(state: &mut State, message: Message) {}
//! # fn view(state: &State) -> iced::Element<Message> { iced::widget::text("").into() } //! # fn view(state: &State) -> iced::Element<'_, Message> { iced::widget::text("").into() }
//! ``` //! ```
//! //!
//! A [`Subscription`] is [a _declarative_ builder of streams](Subscription#the-lifetime-of-a-subscription) //! A [`Subscription`] is [a _declarative_ builder of streams](Subscription#the-lifetime-of-a-subscription)
@ -452,7 +452,7 @@
//! } //! }
//! } //! }
//! //!
//! fn view(state: &State) -> Element<Message> { //! fn view(state: &State) -> Element<'_, Message> {
//! match &state.screen { //! match &state.screen {
//! Screen::Contacts(contacts) => contacts.view().map(Message::Contacts), //! Screen::Contacts(contacts) => contacts.view().map(Message::Contacts),
//! Screen::Conversation(conversation) => conversation.view().map(Message::Conversation), //! Screen::Conversation(conversation) => conversation.view().map(Message::Conversation),

View file

@ -339,8 +339,8 @@ impl Span {
/// ///
/// fn view(&self) -> Element<'_, Message> { /// fn view(&self) -> Element<'_, Message> {
/// markdown::view(&self.markdown, Theme::TokyoNight) /// markdown::view(&self.markdown, Theme::TokyoNight)
/// .map(Message::LinkClicked) /// .map(Message::LinkClicked)
/// .into() /// .into()
/// } /// }
/// ///
/// fn update(state: &mut State, message: Message) { /// fn update(state: &mut State, message: Message) {