Skip to main content

webui/
error.rs

1use std::error::Error;
2use std::fmt;
3
4use crate::{get_last_error_message, get_last_error_number};
5
6/// The WebUI error.
7#[derive(Debug)]
8pub struct WebUIError {
9    /// The error code.
10    code: usize,
11    /// The error message.
12    message: String,
13}
14
15impl WebUIError {
16    pub(crate) fn get_last_error() -> Self {
17        Self {
18            code: get_last_error_number(),
19            message: get_last_error_message(),
20        }
21    }
22
23    pub(crate) fn from_bool(value: bool) -> Result<(), WebUIError> {
24        if value {
25            Ok(())
26        } else {
27            Err(WebUIError::get_last_error())
28        }
29    }
30}
31
32// Required 2
33impl fmt::Display for WebUIError {
34    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
35        write!(f, "Error (Code {}): {}", self.code, self.message)
36    }
37}
38
39// Required 3
40impl Error for WebUIError {}