use bytes::Bytes;
use hyper::{Request, Response, StatusCode};
pub use self::mock::Mock;
pub mod handlers;
mod mock;
pub trait Handler: sealed::Sealed {
type Control;
#[doc(hidden)]
fn make(self) -> (HandlerFn, Self::Control);
}
type HandlerFn = Box<dyn FnOnce(Request<Bytes>) -> Response<Bytes> + Send>;
pub mod status {
use super::*;
pub const UNAUTHORIZED: StatusCode = StatusCode::UNAUTHORIZED;
pub const FORBIDDEN: StatusCode = StatusCode::FORBIDDEN;
pub const BAD_REQUEST: StatusCode = StatusCode::BAD_REQUEST;
pub const NOT_FOUND: StatusCode = StatusCode::NOT_FOUND;
pub const PAYLOAD_TOO_LARGE: StatusCode = StatusCode::PAYLOAD_TOO_LARGE;
pub const NOT_IMPLEMENTED: StatusCode = StatusCode::NOT_IMPLEMENTED;
pub const SERVICE_UNAVAILABLE: StatusCode = StatusCode::SERVICE_UNAVAILABLE;
pub const LENGTH_REQUIRED: StatusCode = StatusCode::LENGTH_REQUIRED;
pub const INTERNAL_SERVER_ERROR: StatusCode = StatusCode::INTERNAL_SERVER_ERROR;
}
mod sealed {
pub trait Sealed {}
}