//! Event types for typed callback integration. //! //! Alternative to `Box` callbacks. Applications //! can receive events via `std::sync::mpsc::Receiver`. use crate::id::NodeId; use crate::rdp::{RdpAddr, RdpEvent}; /// Events emitted by a Node. #[derive(Debug, Clone)] pub enum NodeEvent { /// Datagram received from a peer. DgramReceived { data: Vec, from: NodeId }, /// RDP event on a connection. Rdp { desc: i32, addr: RdpAddr, event: RdpEvent, }, /// Peer added to routing table. PeerAdded(NodeId), /// Value stored via DHT STORE. ValueStored { key: Vec }, /// Node shutdown initiated. Shutdown, }