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}