use optic_core::PeerId;
use tokio::sync::mpsc;
#[derive(Debug)]
pub(crate) enum TransportCommand {
SendTo(PeerId, Vec<u8>),
SendAll(Vec<u8>),
SendAllExcept(PeerId, Vec<u8>),
DisconnectPeer(PeerId),
Shutdown,
}
#[derive(Debug)]
pub(crate) enum LifecycleEvent {
Connected(PeerId),
Disconnected(PeerId),
}
pub(crate) fn inbound_data_channel() -> (mpsc::UnboundedSender<(PeerId, Vec<u8>)>, mpsc::UnboundedReceiver<(PeerId, Vec<u8>)>) {
mpsc::unbounded_channel()
}
pub(crate) fn lifecycle_channel() -> (mpsc::UnboundedSender<LifecycleEvent>, mpsc::UnboundedReceiver<LifecycleEvent>) {
mpsc::unbounded_channel()
}
pub(crate) fn outbound_channel() -> (mpsc::UnboundedSender<TransportCommand>, mpsc::UnboundedReceiver<TransportCommand>) {
mpsc::unbounded_channel()
}