use calimero_network_primitives::messages::NetworkEvent;
use libp2p::gossipsub::Event;
use libp2p_metrics::Recorder;
use owo_colors::OwoColorize;
use tracing::debug;
use super::{EventHandler, NetworkManager};
impl EventHandler<Event> for NetworkManager {
fn handle(&mut self, event: Event) {
self.metrics.record(&event);
debug!("{}: {:?}", "gossipsub".yellow(), event);
match event {
Event::Message {
message_id: id,
message,
..
} => {
self.event_recipient
.do_send(NetworkEvent::Message { id, message });
}
Event::Subscribed { peer_id, topic } => {
self.event_recipient
.do_send(NetworkEvent::Subscribed { peer_id, topic });
}
Event::Unsubscribed { peer_id, topic } => {
self.event_recipient
.do_send(NetworkEvent::Unsubscribed { peer_id, topic });
}
Event::GossipsubNotSupported { .. } => {}
Event::SlowPeer { .. } => {}
}
}
}