#![allow(clippy::match_like_matches_macro)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[macro_use]
extern crate log;
extern crate core;
pub mod body;
pub mod controller;
pub mod cookie;
pub mod error;
pub mod extension;
#[cfg(feature = "file")]
#[cfg_attr(docsrs, doc(cfg(feature = "file")))]
pub mod file;
pub mod guard;
pub mod handler;
pub mod http_context;
#[cfg(feature = "macro")]
#[cfg_attr(docsrs, doc(cfg(feature = "macro")))]
pub mod macros;
pub mod middleware;
#[cfg(feature = "multipart")]
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
pub mod multipart;
#[cfg(feature = "redirect")]
#[cfg_attr(docsrs, doc(cfg(feature = "redirect")))]
pub mod redirect;
pub mod request;
pub mod responder;
pub mod response;
pub mod router;
pub mod server;
pub mod utils;
pub use http;
#[doc(hidden)]
pub use hyper;
#[cfg(feature = "tracing-instrument")]
#[doc(hidden)]
pub use tracing;
pub mod prelude {
pub use crate::body::Body;
pub use crate::body::Bytes;
#[cfg(feature = "form")]
#[cfg_attr(docsrs, doc(cfg(feature = "form")))]
pub use crate::body::Form;
#[cfg(feature = "json")]
#[cfg_attr(docsrs, doc(cfg(feature = "json")))]
pub use crate::body::Json;
pub use crate::controller::Controller;
pub use crate::controller::ControllerEndpoint;
pub use crate::controller::EndpointsBuilder;
pub use crate::cookie::Cookie;
pub use crate::cookie::CookieBuilder;
pub use crate::cookie::CookieJar;
pub use crate::error::SaphirError;
pub use crate::extension::Ext;
pub use crate::extension::Extensions;
#[cfg(feature = "file")]
#[cfg_attr(docsrs, doc(cfg(feature = "file")))]
pub use crate::file::File;
pub use crate::guard::Guard;
pub use crate::handler::Handler;
#[cfg(feature = "operation")]
#[cfg_attr(docsrs, doc(cfg(feature = "operation")))]
pub use crate::http_context::operation::OperationId;
pub use crate::http_context::HttpContext;
#[cfg(feature = "macro")]
#[cfg_attr(docsrs, doc(cfg(feature = "macro")))]
pub use crate::macros::*;
pub use crate::middleware::Middleware;
pub use crate::middleware::MiddlewareChain;
#[cfg(feature = "multipart")]
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
pub use crate::multipart::Multipart;
#[cfg(feature = "redirect")]
#[cfg_attr(docsrs, doc(cfg(feature = "redirect")))]
pub use crate::redirect::Redirect;
pub use crate::request::FromRequest;
pub use crate::request::Request;
pub use crate::responder::Responder;
pub use crate::response::Builder;
pub use crate::response::Response;
pub use crate::server::Server;
pub use crate::server::Stack;
pub use http::header;
pub use http::Method;
pub use http::StatusCode;
pub use http::Uri;
pub use http::Version;
}