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