#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[serde(tag = "type", rename_all = "snake_case")]
#[non_exhaustive]
pub enum Event {
PeerDiscovered { peer: String },
ManifestReceived {
name: String,
files: usize,
total_size: u64,
total_pieces: usize,
},
Resumed { pieces: usize, bytes: u64 },
PeerConnected {
peer: String,
pieces: usize,
total: usize,
},
PeerPath {
peer: String,
direct: bool,
rtt_ms: u64,
},
SwarmPeers { connected: usize },
PeerDisconnected { peer: String },
PieceVerified { index: usize, bytes: u64 },
PieceFailed { index: usize, reason: String },
Uploaded { bytes: u64 },
Completed,
}
pub(crate) const EVENT_CAPACITY: usize = 4096;