mod counting_body;
mod upload_body;
use std::convert::Infallible;
use std::sync::Arc;
use tokio::sync::RwLock;
use http::{HeaderMap, HeaderValue};
use http_body_util::{Empty, combinators::BoxBody};
use hyper::body::Bytes;
use tokio::sync::mpsc;
pub type NqBody = BoxBody<Bytes, Infallible>;
pub fn empty() -> Empty<Bytes> {
Empty::new()
}
use crate::nq_core::{EstablishedConnection, Timestamp, connection::ConnectionTiming};
pub use self::{
counting_body::{BodyEvent, CountingBody},
upload_body::UploadBody,
};
pub struct InflightBody {
pub start: Timestamp,
pub connection: Arc<RwLock<EstablishedConnection>>,
pub timing: Option<ConnectionTiming>,
pub events: mpsc::UnboundedReceiver<BodyEvent>,
pub headers: HeaderMap<HeaderValue>,
}