Avoid extra text allocations in websocket example
This commit is contained in:
parent
dee43d5f66
commit
488cac7148
2 changed files with 18 additions and 9 deletions
|
|
@ -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())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ mod echo;
|
|||
|
||||
use iced::alignment::{self, Alignment};
|
||||
use iced::widget::{
|
||||
button, column, container, row, scrollable, text, text_input, value,
|
||||
button, column, container, row, scrollable, text, text_input,
|
||||
};
|
||||
use iced::{color, Command, Element, Length, Subscription};
|
||||
use once_cell::sync::Lazy;
|
||||
|
|
@ -96,7 +96,7 @@ impl WebSocket {
|
|||
.into()
|
||||
} else {
|
||||
scrollable(
|
||||
column(self.messages.iter().map(value).map(Element::from))
|
||||
column(self.messages.iter().map(text).map(Element::from))
|
||||
.spacing(10),
|
||||
)
|
||||
.id(MESSAGE_LOG.clone())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue