diff options
Diffstat (limited to 'gui/src')
-rw-r--r-- | gui/src/app/message.rs | 2 | ||||
-rw-r--r-- | gui/src/app/mod.rs | 7 | ||||
-rw-r--r-- | gui/src/gossip.rs | 14 |
3 files changed, 14 insertions, 9 deletions
diff --git a/gui/src/app/message.rs b/gui/src/app/message.rs index f19a2dd..60d9433 100644 --- a/gui/src/app/message.rs +++ b/gui/src/app/message.rs @@ -18,6 +18,7 @@ pub enum Message { ToggleLog, + GossipMessage(ipfs::PeerId, GossipMessage), GossipSubscriptionFailed(String), GossipHandled(GossipMessage), @@ -47,6 +48,7 @@ impl Message { Message::ToggleLog => "ToggleLog", + Message::GossipMessage(_, _) => "GossipMessage", Message::GossipSubscriptionFailed(_) => "GossipSubscriptionFailed", Message::GossipHandled(_) => "GossipHandled", diff --git a/gui/src/app/mod.rs b/gui/src/app/mod.rs index a1428cd..ac9e43d 100644 --- a/gui/src/app/mod.rs +++ b/gui/src/app/mod.rs @@ -183,6 +183,13 @@ impl Application for Distrox { iced::Command::none() } + Message::GossipMessage(source, msg) => { + log::trace!("Received Gossip from {}: {:?}", source, msg); + iced::Command::perform(async { + Message::GossipHandled(msg) + }, |m: Message| -> Message { m }) + } + Message::GossipHandled(msg) => { use distrox_lib::gossip::GossipMessage; diff --git a/gui/src/gossip.rs b/gui/src/gossip.rs index c88c29c..ae941f5 100644 --- a/gui/src/gossip.rs +++ b/gui/src/gossip.rs @@ -5,6 +5,8 @@ use tokio::sync::RwLock; use distrox_lib::profile::Profile; use distrox_lib::client::Client; +use distrox_lib::gossip::GossipDeserializer; +use distrox_lib::gossip::LogStrategy; use crate::app::Message; @@ -35,19 +37,13 @@ where } fn stream(self: Box<Self>, _input: futures::stream::BoxStream<'static, I>) -> futures::stream::BoxStream<'static, Self::Output> { - use distrox_lib::gossip::deserializer; - use distrox_lib::gossip::handler; - // TODO: Do "right", whatever this means... let stream = Arc::try_unwrap(self.subscription).unwrap(); Box::pin({ - let stream = deserializer::GossipDeserializer::<deserializer::LogStrategy>::new().run(stream); - let stream = handler::GossipHandler::<handler::LogStrategy>::new(self.profile.clone()).run(stream); - - stream.map(|(gossip_message, _handling_result)| { - Message::GossipHandled(gossip_message) - }) + GossipDeserializer::<LogStrategy>::new() + .run(stream) + .map(|(source, msg)| Message::GossipMessage(source, msg)) }) } } |