crystal_api/
errors.rs

1use std::fmt::{Debug, Display};
2
3/// ## Unified error enum
4#[derive(Debug)]
5pub enum GraphicsError {
6    /// Happens on unexpected library error
7    ConnotInitLibrary,
8    /// Happens on software missing support
9    NotSupportedSystem,
10    /// Happens on hardware missing support
11    NotSupportedDevice,
12    /// Happens on hardware missing support or window server missing capability
13    NotSupportedPresent,
14
15    /// Happens on image present error
16    PresentError,
17    /// Happens on unified transfer/compute error
18    TransferError,
19    /// Happens on rendering error
20    RenderingError,
21
22    /// Happens on GPU sync error
23    SyncError,
24    /// Happens on shader compilation/capability error
25    ShaderError,
26    /// Happens on GPU memory error
27    MemoryError,
28    /// Happens on unified shader data error
29    DataError,
30    /// Happens on image error
31    ImageError,
32
33    /// Happens on debug error
34    DebugError,
35}
36
37impl Display for GraphicsError {
38    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
39        f.write_fmt(format_args!("{:?}", self))
40    }
41}
42
43/// Type contains ```Result``` enum with ```GraphicsError``` on ```Err```
44pub type GraphicsResult<T> = Result<T, GraphicsError>;