#![warn(missing_debug_implementations, missing_docs, rust_2018_idioms)]
#![deny(clippy::correctness, unused_must_use)]
#![feature(doc_cfg)]
#[macro_use]
extern crate async_trait;
mod endpoint;
pub mod endpoints;
mod error;
#[macro_use]
mod has_body;
#[macro_use]
mod has_headers;
#[macro_use]
mod has_extensions;
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};
pub use self::endpoint::Endpoint;
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()
}