diff options
| author | 2024-04-02 09:42:50 +0200 | |
|---|---|---|
| committer | 2024-04-02 09:42:50 +0200 | |
| commit | 6c75836f123eba909154ce517299c3ffcd21b25b (patch) | |
| tree | 46d3f1b92efcc3b815662c23aed292dae722366d /examples/websocket/src | |
| parent | c30b4b0a1c9b191bcb65ae1732581b5c96b8bcfe (diff) | |
| parent | 488cac714896002791f3c7b9a99181310c1d1b5c (diff) | |
| download | iced-6c75836f123eba909154ce517299c3ffcd21b25b.tar.gz iced-6c75836f123eba909154ce517299c3ffcd21b25b.tar.bz2 iced-6c75836f123eba909154ce517299c3ffcd21b25b.zip  | |
Merge pull request #2363 from iced-rs/specialize-text-helper
Specialize `widget::text` helper
Diffstat (limited to 'examples/websocket/src')
| -rw-r--r-- | examples/websocket/src/echo.rs | 23 | ||||
| -rw-r--r-- | examples/websocket/src/main.rs | 6 | 
2 files changed, 18 insertions, 11 deletions
diff --git a/examples/websocket/src/echo.rs b/examples/websocket/src/echo.rs index 281ed4bd..cd32cb66 100644 --- a/examples/websocket/src/echo.rs +++ b/examples/websocket/src/echo.rs @@ -2,6 +2,7 @@ pub mod server;  use iced::futures;  use iced::subscription::{self, Subscription}; +use iced::widget::text;  use futures::channel::mpsc;  use futures::sink::SinkExt; @@ -136,16 +137,24 @@ impl Message {      pub fn disconnected() -> Self {          Message::Disconnected      } + +    pub fn as_str(&self) -> &str { +        match self { +            Message::Connected => "Connected successfully!", +            Message::Disconnected => "Connection lost... Retrying...", +            Message::User(message) => message.as_str(), +        } +    }  }  impl fmt::Display for Message {      fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { -        match self { -            Message::Connected => write!(f, "Connected successfully!"), -            Message::Disconnected => { -                write!(f, "Connection lost... Retrying...") -            } -            Message::User(message) => write!(f, "{message}"), -        } +        f.write_str(self.as_str()) +    } +} + +impl<'a> text::IntoFragment<'a> for &'a Message { +    fn into_fragment(self) -> text::Fragment<'a> { +        text::Fragment::Borrowed(self.as_str())      }  } diff --git a/examples/websocket/src/main.rs b/examples/websocket/src/main.rs index 460d9a08..b479fe89 100644 --- a/examples/websocket/src/main.rs +++ b/examples/websocket/src/main.rs @@ -96,10 +96,8 @@ impl WebSocket {              .into()          } else {              scrollable( -                column( -                    self.messages.iter().cloned().map(text).map(Element::from), -                ) -                .spacing(10), +                column(self.messages.iter().map(text).map(Element::from)) +                    .spacing(10),              )              .id(MESSAGE_LOG.clone())              .height(Length::Fill)  | 
