cfg_http1! {
pub(crate) mod h1;
pub(crate) use self::h1::Conn;
#[cfg(feature = "client")]
pub(crate) use self::h1::dispatch;
#[cfg(feature = "server")]
pub(crate) use self::h1::ServerTransaction;
}
cfg_http2! {
pub(crate) mod h2;
}
#[derive(Debug, Default)]
pub struct MessageHead<S> {
pub version: http::Version,
pub subject: S,
pub headers: http::HeaderMap,
extensions: http::Extensions,
}
#[cfg(feature = "http1")]
pub type RequestHead = MessageHead<RequestLine>;
#[derive(Debug, Default, PartialEq)]
#[cfg(feature = "http1")]
pub struct RequestLine(pub http::Method, pub http::Uri);
#[cfg(feature = "http1")]
#[cfg(feature = "client")]
pub type ResponseHead = MessageHead<http::StatusCode>;
#[derive(Debug)]
#[cfg(feature = "http1")]
pub enum BodyLength {
Known(u64),
Unknown,
}
pub(crate) enum Dispatched {
Shutdown,
#[cfg(feature = "http1")]
Upgrade(crate::upgrade::Pending),
}