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) |