| use super::error::ServiceError; | |
| use tokio::sync::{oneshot, OwnedSemaphorePermit}; | |
| /// Message sent over buffer | |
| #[derive(Debug)] | |
| pub(crate) struct Message<Request, Fut> { | |
| pub(crate) request: Request, | |
| pub(crate) tx: Tx<Fut>, | |
| pub(crate) span: tracing::Span, | |
| pub(super) _permit: OwnedSemaphorePermit, | |
| } | |
| /// Response sender | |
| pub(crate) type Tx<Fut> = oneshot::Sender<Result<Fut, ServiceError>>; | |
| /// Response receiver | |
| pub(crate) type Rx<Fut> = oneshot::Receiver<Result<Fut, ServiceError>>; |