#[macro_export]
macro_rules! error {
($($arg:tt)*) => {{
$crate::Error::from(anyhow::anyhow!($($arg)*))
}}
}
#[macro_export]
macro_rules! bail {
($($arg:tt)*) => {{
return Err($crate::error!($($arg)*))
}}
}
#[macro_export]
macro_rules! http_error_bad_request {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::BAD_REQUEST)
}}
}
#[macro_export]
macro_rules! http_error_unauthorized {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::UNAUTHORIZED)
}}
}
#[macro_export]
macro_rules! http_error_payment_required {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::PAYMENT_REQUIRED)
}}
}
#[macro_export]
macro_rules! http_error_forbidden {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::FORBIDDEN)
}}
}
#[macro_export]
macro_rules! http_error_not_found {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::NOT_FOUND)
}}
}
#[macro_export]
macro_rules! http_error_method_not_allowed {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::METHOD_NOT_ALLOWED)
}}
}
#[macro_export]
macro_rules! http_error_not_acceptable {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::NOT_ACCEPTABLE)
}}
}
#[macro_export]
macro_rules! http_error_proxy_authentication_required {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::PROXY_AUTHENTICATION_REQUIRED)
}}
}
#[macro_export]
macro_rules! http_error_request_timeout {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::REQUEST_TIMEOUT)
}}
}
#[macro_export]
macro_rules! http_error_conflict {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::CONFLICT)
}}
}
#[macro_export]
macro_rules! http_error_gone {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::GONE)
}}
}
#[macro_export]
macro_rules! http_error_length_required {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::LENGTH_REQUIRED)
}}
}
#[macro_export]
macro_rules! http_error_precondition_failed {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::PRECONDITION_FAILED)
}}
}
#[macro_export]
macro_rules! http_error_payload_too_large {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::PAYLOAD_TOO_LARGE)
}}
}
#[macro_export]
macro_rules! http_error_uri_too_long {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::URI_TOO_LONG)
}}
}
#[macro_export]
macro_rules! http_error_unsupported_media_type {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::UNSUPPORTED_MEDIA_TYPE)
}}
}
#[macro_export]
macro_rules! http_error_range_not_satisfiable {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::RANGE_NOT_SATISFIABLE)
}}
}
#[macro_export]
macro_rules! http_error_expectation_failed {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::EXPECTATION_FAILED)
}}
}
#[macro_export]
macro_rules! http_error_internal_server_error {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::INTERNAL_SERVER_ERROR)
}}
}
#[macro_export]
macro_rules! http_error_not_implemented {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::NOT_IMPLEMENTED)
}}
}
#[macro_export]
macro_rules! http_error_bad_gateway {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::BAD_GATEWAY)
}}
}
#[macro_export]
macro_rules! http_error_service_unavailable {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::SERVICE_UNAVAILABLE)
}}
}
#[macro_export]
macro_rules! http_error_gateway_timeout {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::GATEWAY_TIMEOUT)
}}
}
#[macro_export]
macro_rules! http_error_http_version_not_supported {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::HTTP_VERSION_NOT_SUPPORTED)
}}
}
#[macro_export]
macro_rules! http_error_variant_also_negotiates {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::VARIANT_ALSO_NEGOTIATES)
}}
}
#[macro_export]
macro_rules! http_error_insufficient_storage {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::INSUFFICIENT_STORAGE)
}}
}
#[macro_export]
macro_rules! http_error_loop_detected {
($($arg:tt)*) => {{
$crate::error!($($arg)*).with_status(StatusCode::LOOP_DETECTED)
}}
}