we have
pub enum HalfDuplexResponse {
SocketError,
Payload(Vec<u8>),
}
#[derive(Debug)]
pub struct HalfDuplexExchange {
pub request: Vec<u8>,
pub response: HalfDuplexResponse,
}
need to add
pub enum FullDuplexResponse {
SocketError,
Payloads(VecDeque<Vec<u8>>),
}
#[derive(Debug)]
pub struct FullDuplexExchange {
pub request: Vec<u8>,
pub response: FullDuplexResponse,
}
then RecvBuffer probably becomes:
pub trait Exchange {
fn write_to_recv_buffer(self)
}
#[derive(Debug)]
pub struct RecvBuffer<T: Exchange> {
pub queue: Mutex<Option<T>>,
pub cv: Condvar,
}
we have
need to add
then
RecvBufferprobably becomes: