#![warn(
missing_debug_implementations,
missing_docs,
rust_2018_idioms,
clippy::pedantic
)]
#![deny(clippy::correctness, unused_must_use)]
#![allow(clippy::module_name_repetitions)]
#![feature(doc_cfg)]
#[macro_use]
extern crate async_trait;
mod endpoint;
pub mod endpoints;
mod entity;
mod error;
mod data;
#[cfg(feature = "from_form")]
#[doc(hidden)]
pub mod from_form;
pub mod middleware;
mod request;
mod response;
mod router;
#[cfg(feature = "sse")]
#[doc(cfg(feature = "sse"))]
pub mod sse;
#[cfg(feature = "cookie")]
#[doc(cfg(feature = "cookie"))]
pub use cookie::{Cookie, CookieBuilder, CookieJar};
#[cfg(feature = "from_form")]
#[doc(cfg(feature = "from_form"))]
pub use from_form::{FromForm, FromFormError, FromFormMultiple, FromFormValue};
#[cfg(feature = "under_derive")]
#[allow(unused_imports)]
#[macro_use]
extern crate under_derive;
#[cfg(feature = "under_derive")]
pub use under_derive::*;
pub use self::data::{DataStream, DataTransfer};
pub use self::endpoint::Endpoint;
pub use self::entity::HttpEntity;
pub use self::error::UnderError;
pub use self::middleware::Middleware;
pub use self::request::fragment::FragmentSelect;
pub use self::request::{RemoteAddress, Request};
pub use self::response::{IntoResponse, Response};
pub use self::router::{Path, Router};
pub use ::http;
pub use hyper::Body;
pub type Result<R = Response, E = anyhow::Error> = std::result::Result<R, E>;
#[must_use]
#[inline]
pub fn http() -> Router {
Router::default()
}