x_graphics/
error.rs

1use thiserror::Error;
2
3#[allow(unused_macros)]
4macro_rules! invalid_param_error {
5    ($param:expr) => {
6        GraphicsError::InvalidParameter(stringify!($param).to_string(), format!("{:?}", $param).to_string())
7    };
8}
9
10#[allow(unused_macros)]
11macro_rules! none_param_error {
12    ($param:expr) => {
13        GraphicsError::InvalidParameter(stringify!($param).to_string(), stringify!(None).to_string())
14    };
15}
16
17#[allow(unused_macros)]
18macro_rules! invalid_handle_error {
19    ($handle:expr) => {
20        GraphicsError::InvalidHandle(stringify!($handle).to_string())
21    };
22}
23
24#[derive(Clone, Debug, Error)]
25pub enum GraphicsError {
26    #[error("General error: {0}")]
27    Failed(String),
28    #[error("Creation failed: {0}")]
29    CreationFailed(String),
30    #[error("Invalid handle: {0}")]
31    InvalidHandle(String),
32    #[error("Invalid parameter: {0} {1}")]
33    InvalidParameter(String, String),
34    #[error("Not implemented")]
35    NotImplemented,
36    #[error("Unsupported: {0}")]
37    Unsupported(String),
38}