use crate::{
message::Message,
streams::{error::RecvError, mpsc},
};
use async_trait::async_trait;
use super::queues;
#[async_trait]
pub trait Receiver {
async fn recv_msg(&mut self) -> Result<Message, RecvError>;
}
#[async_trait]
pub trait Sender {
async fn send_msg(&self, data: Vec<u8>, lenth: u64) -> bool;
}
#[async_trait]
impl Receiver for mpsc::StreamReader<Message> {
async fn recv_msg(&mut self) -> Result<Message, RecvError> {
self.recv().await
}
}
#[async_trait]
impl Sender for queues::Sender {
async fn send_msg(&self, data: Vec<u8>, length: u64) -> bool {
self.send(data, length).await
}
}