summaryrefslogtreecommitdiffstats
path: root/graphics/src/error.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-24 08:04:28 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-24 08:04:28 +0100
commit4f5b63f1f4cd7d3ab72289c697f4abc767114eca (patch)
tree876f9502936b24f63ef21bb2b41e16b222750444 /graphics/src/error.rs
parent441e9237cd1c9c9b61d9b144b5b4dafa236ace28 (diff)
downloadiced-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.rs27
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),
}