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}