router: re-export HttpError
from proxmox-http-error
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
This commit is contained in:
parent
779c45eaad
commit
add38769f8
@ -26,6 +26,7 @@ rustyline = { version = "9", optional = true }
|
||||
libc = { workspace = true, optional = true }
|
||||
|
||||
proxmox-lang.workspace = true
|
||||
proxmox-http-error.workspace = true
|
||||
proxmox-schema.workspace = true
|
||||
proxmox-async.workspace = true
|
||||
|
||||
|
@ -1,44 +1,4 @@
|
||||
use std::fmt;
|
||||
pub use proxmox_http_error::{http_bail, http_err, HttpError};
|
||||
|
||||
#[doc(hidden)]
|
||||
pub use http::StatusCode;
|
||||
|
||||
/// HTTP error including `StatusCode` and message.
|
||||
#[derive(Debug)]
|
||||
pub struct HttpError {
|
||||
pub code: StatusCode,
|
||||
pub message: String,
|
||||
}
|
||||
|
||||
impl std::error::Error for HttpError {}
|
||||
|
||||
impl HttpError {
|
||||
pub fn new(code: StatusCode, message: String) -> Self {
|
||||
HttpError { code, message }
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for HttpError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "{}", self.message)
|
||||
}
|
||||
}
|
||||
|
||||
/// Macro to create a HttpError inside a anyhow::Error
|
||||
#[macro_export]
|
||||
macro_rules! http_err {
|
||||
($status:ident, $($fmt:tt)+) => {{
|
||||
::anyhow::Error::from($crate::HttpError::new(
|
||||
$crate::error::StatusCode::$status,
|
||||
format!($($fmt)+)
|
||||
))
|
||||
}};
|
||||
}
|
||||
|
||||
/// Bail with an error generated with the `http_err!` macro.
|
||||
#[macro_export]
|
||||
macro_rules! http_bail {
|
||||
($status:ident, $($fmt:tt)+) => {{
|
||||
return Err($crate::http_err!($status, $($fmt)+));
|
||||
}};
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ mod serializable_return;
|
||||
|
||||
#[doc(inline)]
|
||||
#[cfg(feature = "server")]
|
||||
pub use error::HttpError;
|
||||
pub use error::*;
|
||||
|
||||
pub use permission::*;
|
||||
pub use router::*;
|
||||
|
Loading…
x
Reference in New Issue
Block a user