use libp2p_core::Multiaddr;
#[derive(Clone, Debug)]
pub struct PeerInfo {
pub address: Multiaddr,
pub alias: String,
pub relation: PeerRelation,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum PeerRelation {
Known,
Unknown,
}
impl PeerRelation {
pub fn is_known(&self) -> bool {
matches!(self, Self::Known)
}
pub fn is_unknown(&self) -> bool {
matches!(self, Self::Unknown)
}
pub fn set_known(&mut self) {
*self = Self::Known;
}
pub fn set_unknown(&mut self) {
*self = Self::Unknown;
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn is_and_set_api() {
let mut pr = PeerRelation::Unknown;
assert!(pr.is_unknown());
pr.set_known();
assert!(pr.is_known());
pr.set_unknown();
assert!(pr.is_unknown());
}
}