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>;