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