diff options
author | 2024-03-24 08:04:28 +0100 | |
---|---|---|
committer | 2024-03-24 08:04:28 +0100 | |
commit | 4f5b63f1f4cd7d3ab72289c697f4abc767114eca (patch) | |
tree | 876f9502936b24f63ef21bb2b41e16b222750444 /graphics/src/error.rs | |
parent | 441e9237cd1c9c9b61d9b144b5b4dafa236ace28 (diff) | |
download | iced-4f5b63f1f4cd7d3ab72289c697f4abc767114eca.tar.gz iced-4f5b63f1f4cd7d3ab72289c697f4abc767114eca.tar.bz2 iced-4f5b63f1f4cd7d3ab72289c697f4abc767114eca.zip |
Reintroduce backend selection through `ICED_BACKEND` env var
Diffstat (limited to 'graphics/src/error.rs')
-rw-r--r-- | graphics/src/error.rs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/graphics/src/error.rs b/graphics/src/error.rs index c6ea98a3..6ea1d3a4 100644 --- a/graphics/src/error.rs +++ b/graphics/src/error.rs @@ -1,5 +1,7 @@ +//! See what can go wrong when creating graphical backends. + /// An error that occurred while creating an application's graphical context. -#[derive(Debug, thiserror::Error)] +#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)] pub enum Error { /// The requested backend version is not supported. #[error("the requested backend version is not supported")] @@ -11,9 +13,30 @@ pub enum Error { /// A suitable graphics adapter or device could not be found. #[error("a suitable graphics adapter or device could not be found")] - GraphicsAdapterNotFound, + GraphicsAdapterNotFound { + /// The name of the backend where the error happened + backend: &'static str, + /// The reason why this backend could not be used + reason: Reason, + }, /// An error occurred in the context's internal backend #[error("an error occurred in the context's internal backend")] BackendError(String), + + /// Multiple errors occurred + #[error("multiple errors occurred: {0:?}")] + List(Vec<Self>), +} + +/// The reason why a graphics adapter could not be found +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Reason { + /// The backend did not match the preference + DidNotMatch { + /// The preferred backend + preferred_backend: String, + }, + /// The request to create the backend failed + RequestFailed(String), } |