ouisync/network/
peer_source.rsuse num_enum::{IntoPrimitive, TryFromPrimitive};
use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(
Clone,
Copy,
Debug,
Eq,
PartialEq,
Ord,
PartialOrd,
Serialize,
Deserialize,
IntoPrimitive,
TryFromPrimitive,
)]
#[repr(u8)]
#[serde(into = "u8", try_from = "u8")]
pub enum PeerSource {
UserProvided,
Listener,
LocalDiscovery,
Dht,
PeerExchange,
}
impl fmt::Display for PeerSource {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
PeerSource::Listener => write!(f, "incoming"),
PeerSource::UserProvided => write!(f, "outgoing (user provided)"),
PeerSource::LocalDiscovery => write!(f, "outgoing (locally discovered)"),
PeerSource::Dht => write!(f, "outgoing (found on DHT)"),
PeerSource::PeerExchange => write!(f, "outgoing (found on peer exchange)"),
}
}
}