use crate::{protocols::ReturnableConnection, Pea2Pea};
use tokio::sync::mpsc;
pub trait Handshaking: Pea2Pea {
fn enable_handshaking(&self);
}
pub struct HandshakeHandler(mpsc::Sender<ReturnableConnection>);
impl HandshakeHandler {
pub async fn send(&self, returnable_conn: ReturnableConnection) {
if self.0.send(returnable_conn).await.is_err() {
panic!("HandshakeHandler's Receiver is closed")
}
}
}
impl From<mpsc::Sender<ReturnableConnection>> for HandshakeHandler {
fn from(sender: mpsc::Sender<ReturnableConnection>) -> Self {
Self(sender)
}
}