use priv_prelude::*;
use rust_sodium::crypto::box_::{gen_keypair, PublicKey};
#[derive(PartialEq, Eq, Hash, Clone, Debug, Serialize, Deserialize)]
pub struct PeerInfo {
pub addr: SocketAddr,
pub pub_key: PublicKey,
}
impl PeerInfo {
pub fn new(addr: SocketAddr, pub_key: PublicKey) -> Self {
Self { addr, pub_key }
}
pub fn with_rand_key(addr: SocketAddr) -> Self {
let (pub_key, _) = gen_keypair();
Self::new(addr, pub_key)
}
}
impl fmt::Display for PeerInfo {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "({}, {:?})", self.addr, self.pub_key)
}
}