summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-08-04 21:45:38 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-08-04 21:52:02 +0700
commit3e03a42bc69562639784a1b560978bf184576824 (patch)
tree9155f31fba9b98b47acbc515c3b3782f5a237aa6 /graphics
parentb629a8025426afd5a6a03a5d17f4e28a6bed6e30 (diff)
downloadiced-3e03a42bc69562639784a1b560978bf184576824.tar.gz
iced-3e03a42bc69562639784a1b560978bf184576824.tar.bz2
iced-3e03a42bc69562639784a1b560978bf184576824.zip
Use `thiserror` to derive `Error` for `SwapChainError`
Diffstat (limited to 'graphics')
-rw-r--r--graphics/src/window/compositor.rs26
1 files changed, 12 insertions, 14 deletions
diff --git a/graphics/src/window/compositor.rs b/graphics/src/window/compositor.rs
index e6633293..de2a6990 100644
--- a/graphics/src/window/compositor.rs
+++ b/graphics/src/window/compositor.rs
@@ -1,6 +1,9 @@
use crate::{Color, Error, Viewport};
+
use iced_native::mouse;
+
use raw_window_handle::HasRawWindowHandle;
+use thiserror::Error;
/// A graphics compositor that can draw to windows.
pub trait Compositor: Sized {
@@ -56,27 +59,22 @@ pub trait Compositor: Sized {
}
/// Result of an unsuccessful call to [`Compositor::draw`].
-#[derive(Clone, PartialEq, Eq, Debug)]
+#[derive(Clone, PartialEq, Eq, Debug, Error)]
pub enum SwapChainError {
/// A timeout was encountered while trying to acquire the next frame.
+ #[error(
+ "A timeout was encountered while trying to acquire the next frame"
+ )]
Timeout,
/// The underlying surface has changed, and therefore the swap chain must be updated.
+ #[error(
+ "The underlying surface has changed, and therefore the swap chain must be updated."
+ )]
Outdated,
/// The swap chain has been lost and needs to be recreated.
+ #[error("The swap chain has been lost and needs to be recreated")]
Lost,
/// There is no more memory left to allocate a new frame.
+ #[error("There is no more memory left to allocate a new frame")]
OutOfMemory,
}
-
-impl std::error::Error for SwapChainError {}
-
-impl std::fmt::Display for SwapChainError {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- write!(f, "{}", match self {
- Self::Timeout => "A timeout was encountered while trying to acquire the next frame",
- Self::Outdated => "The underlying surface has changed, and therefore the swap chain must be updated",
- Self::Lost => "The swap chain has been lost and needs to be recreated",
- Self::OutOfMemory => "There is no more memory left to allocate a new frame",
- })
- }
-}