summaryrefslogtreecommitdiffstats
path: root/src/error.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-09-08 00:35:17 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-09-08 00:44:59 +0200
commitc1f79b40cf704cafc807250b177fc7d3444fe54f (patch)
tree31c0cf2b8d166976dc819f020e0185f9d8c2bdcd /src/error.rs
parentfaa12382d4d7a44ab60fa5bf2a5024a34dbb2e8d (diff)
downloadiced-c1f79b40cf704cafc807250b177fc7d3444fe54f.tar.gz
iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.tar.bz2
iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.zip
Make `Application` and `Sandbox` return a `Result`
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
new file mode 100644
index 00000000..31b87d17
--- /dev/null
+++ b/src/error.rs
@@ -0,0 +1,34 @@
+use iced_futures::futures;
+
+/// An error that occurred while running an application.
+#[derive(Debug, thiserror::Error)]
+pub enum Error {
+ /// The futures executor could not be created.
+ #[error("the futures executor could not be created")]
+ ExecutorCreationFailed(futures::io::Error),
+
+ /// The application window could not be created.
+ #[error("the application window could not be created")]
+ WindowCreationFailed(Box<dyn std::error::Error>),
+
+ /// A suitable graphics adapter or device could not be found.
+ #[error("a suitable graphics adapter or device could not be found")]
+ GraphicsAdapterNotFound,
+}
+
+#[cfg(not(target_arch = "wasm32"))]
+impl From<iced_winit::Error> for Error {
+ fn from(error: iced_winit::Error) -> Error {
+ match error {
+ iced_winit::Error::ExecutorCreationFailed(error) => {
+ Error::ExecutorCreationFailed(error)
+ }
+ iced_winit::Error::WindowCreationFailed(error) => {
+ Error::WindowCreationFailed(Box::new(error))
+ }
+ iced_winit::Error::GraphicsAdapterNotFound => {
+ Error::GraphicsAdapterNotFound
+ }
+ }
+ }
+}