#![cfg_attr(feature = "docs", feature(doc_cfg))]
#![forbid(unsafe_code)]
#![deny(missing_debug_implementations, nonstandard_style)]
#![warn(missing_docs, unreachable_pub, future_incompatible, rust_2018_idioms)]
#![allow(clippy::len_without_is_empty)]
#![doc(test(attr(deny(warnings))))]
#![doc(test(attr(allow(unused_extern_crates, unused_variables))))]
#![doc(html_favicon_url = "https://yoshuawuyts.com/assets/http-rs/favicon.ico")]
#![doc(html_logo_url = "https://yoshuawuyts.com/assets/http-rs/logo-rounded.png")]
mod context;
mod endpoint;
mod error;
mod middleware;
mod route;
mod router;
mod server;
pub use context::Context;
pub use endpoint::Endpoint;
pub use error::Error;
pub use middleware::{Middleware, Next};
pub use route::Route;
pub use server::Server;
pub use hyper::{body, http, Body, HeaderMap, Method, Request, Response, StatusCode, Uri, Version};
#[must_use]
pub fn new() -> server::Server {
Server::new()
}
pub type Result<T = Response<Body>> = std::result::Result<T, crate::Error>;