use tokio::sync::{oneshot, OwnedSemaphorePermit};
use super::error::ServiceError;
#[derive(Debug)]
pub(crate) enum Message<Request, Fut> {
Item {
request: Request,
tx: Tx<Fut>,
span: tracing::Span,
_permit: OwnedSemaphorePermit,
},
Flush {
span: tracing::Span,
_permit: OwnedSemaphorePermit,
},
}
pub(crate) type Tx<Fut> = oneshot::Sender<Result<Fut, ServiceError>>;
pub(crate) type Rx<Fut> = oneshot::Receiver<Result<Fut, ServiceError>>;