use thiserror::Error;
#[allow(unused_macros)]
macro_rules! invalid_param_error {
($param:expr) => {
GraphicsError::InvalidParameter(stringify!($param).to_string(), format!("{:?}", $param).to_string())
};
}
#[allow(unused_macros)]
macro_rules! none_param_error {
($param:expr) => {
GraphicsError::InvalidParameter(stringify!($param).to_string(), stringify!(None).to_string())
};
}
#[allow(unused_macros)]
macro_rules! invalid_handle_error {
($handle:expr) => {
GraphicsError::InvalidHandle(stringify!($handle).to_string())
};
}
#[derive(Clone, Debug, Error)]
pub enum GraphicsError {
#[error("General error: {0}")]
Failed(String),
#[error("Creation failed: {0}")]
CreationFailed(String),
#[error("Invalid handle: {0}")]
InvalidHandle(String),
#[error("Invalid parameter: {0} {1}")]
InvalidParameter(String, String),
#[error("Not implemented")]
NotImplemented,
#[error("Unsupported: {0}")]
Unsupported(String),
}