#![doc(
html_favicon_url = "https://raw.githubusercontent.com/plabayo/rama/main/docs/img/old_logo.png"
)]
#![doc(html_logo_url = "https://raw.githubusercontent.com/plabayo/rama/main/docs/img/old_logo.png")]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(test, allow(clippy::float_cmp))]
use rama_core::extensions::Extension;
use rama_net::uri::Uri;
pub mod body;
pub use body::{
Body, BodyDataStream, BodyExtractExt, BodyLimit, InfiniteReader, StreamingBody, sse,
};
pub mod request;
pub mod response;
#[macro_use]
mod convert;
pub mod method;
pub mod status;
mod error;
#[doc(inline)]
pub use crate::header::{HeaderMap, HeaderName, HeaderValue, IntoOrderedIter, OrderedIter};
#[doc(inline)]
pub use crate::method::Method;
#[doc(inline)]
pub use crate::request::{HttpRequestParts, HttpRequestPartsMut, Request};
#[doc(inline)]
pub use crate::response::Response;
#[doc(inline)]
pub use crate::status::StatusCode;
#[doc(inline)]
pub use error::{Error, Result};
#[doc(inline)]
pub use rama_net::http::Version;
pub mod version {
#[doc(inline)]
pub use rama_net::http::{InvalidVersion, Version};
}
mod input_ext;
pub use input_ext::protocol_from_uri_or_extensions;
pub mod fingerprint;
mod body_limit_layer;
#[doc(inline)]
pub use body_limit_layer::{BodyLimitLayer, BodyLimitService};
pub mod stream {
pub mod matcher;
}
#[derive(Debug, Clone, Extension)]
#[extension(tags(http))]
pub struct OriginalRouterUri(pub Uri);
pub mod proto;
pub mod opentelemetry;
pub mod conn;
pub mod proxy;
pub mod header;
pub mod mime {
#[doc(inline)]
pub use mime::*;
#[doc(inline)]
pub use mime_guess as guess;
}