1 use super::error::ServiceError;
2 use tokio::sync::{oneshot, OwnedSemaphorePermit};
3 
4 /// Message sent over buffer
5 #[derive(Debug)]
6 pub(crate) struct Message<Request, Fut> {
7     pub(crate) request: Request,
8     pub(crate) tx: Tx<Fut>,
9     pub(crate) span: tracing::Span,
10     pub(super) _permit: OwnedSemaphorePermit,
11 }
12 
13 /// Response sender
14 pub(crate) type Tx<Fut> = oneshot::Sender<Result<Fut, ServiceError>>;
15 
16 /// Response receiver
17 pub(crate) type Rx<Fut> = oneshot::Receiver<Result<Fut, ServiceError>>;
18