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