use crate::envelope::EnvelopeRequest;
use crate::reply::Reply;
pub type ReplySender = tokio::sync::mpsc::Sender<Reply>;
pub type ReplyReceiver = tokio::sync::mpsc::Receiver<Reply>;
#[derive(Debug)]
pub enum IncomingMessage {
Request {
request: EnvelopeRequest,
reply_tx: ReplySender,
},
Envelope { envelope: EnvelopeRequest },
}
#[derive(Debug)]
pub enum OutgoingMessage {
Request {
request: EnvelopeRequest,
reply_rx: ReplyReceiver,
},
Envelope { envelope: EnvelopeRequest },
}
impl IncomingMessage {
pub fn envelope(&self) -> &EnvelopeRequest {
match self {
IncomingMessage::Request { request, .. } => request,
IncomingMessage::Envelope { envelope } => envelope,
}
}
}