calimero-network 0.8.0

Core Calimero infrastructure and tools
Documentation
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 { .. } => {}
        }
    }
}