Skip to main content

graphics/
error.rs

1use core::fmt::Display;
2use internationalization::translate;
3
4pub type Result<T> = core::result::Result<T, Error>;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7#[repr(u8)]
8pub enum Error {
9    InvalidReference,
10    AlreadyInitialized,
11    NotInitialized,
12    OutOfMemory,
13    AlreadyInUse,
14    FailedToRegister,
15    FailedToGetResolution,
16    NotRegistered,
17    NotAvailable,
18    FailedToCreateObject,
19    InvalidWindowIdentifier,
20}
21
22impl Display for Error {
23    fn fmt(&self, formatter: &mut core::fmt::Formatter) -> core::fmt::Result {
24        let string = match self {
25            Error::InvalidReference => translate!("Invalid reference"),
26            Error::AlreadyInitialized => translate!("Already initialized"),
27            Error::NotInitialized => translate!("Not initialized"),
28            Error::OutOfMemory => translate!("Out of memory"),
29            Error::AlreadyInUse => translate!("Already in use"),
30            Error::FailedToRegister => translate!("Failed to register"),
31            Error::FailedToGetResolution => translate!("Failed to get resolution"),
32            Error::NotRegistered => translate!("Not registered"),
33            Error::NotAvailable => translate!("Not available"),
34            Error::FailedToCreateObject => translate!("Failed to create object"),
35            Error::InvalidWindowIdentifier => translate!("Invalid window identifier"),
36        };
37
38        write!(formatter, "{string}")
39    }
40}