Make BufferAccessError (de)serializable

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
sagudev 2024-07-19 15:50:48 +02:00 committed by Connor Fitzgerald
parent d03b7e239d
commit fc87033b30
2 changed files with 11 additions and 0 deletions

View File

@ -364,6 +364,8 @@ fn map_buffer<A: HalApi>(
} }
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(bound(deserialize = "'de: 'static")))]
pub struct DeviceMismatch { pub struct DeviceMismatch {
pub(super) res: ResourceErrorIdent, pub(super) res: ResourceErrorIdent,
pub(super) res_device: ResourceErrorIdent, pub(super) res_device: ResourceErrorIdent,
@ -388,6 +390,8 @@ impl std::fmt::Display for DeviceMismatch {
impl std::error::Error for DeviceMismatch {} impl std::error::Error for DeviceMismatch {}
#[derive(Clone, Debug, Error)] #[derive(Clone, Debug, Error)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(bound(deserialize = "'de: 'static")))]
#[non_exhaustive] #[non_exhaustive]
pub enum DeviceError { pub enum DeviceError {
#[error("{0} is invalid.")] #[error("{0} is invalid.")]

View File

@ -76,6 +76,7 @@ impl TrackingData {
} }
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct ResourceErrorIdent { pub struct ResourceErrorIdent {
r#type: &'static str, r#type: &'static str,
label: String, label: String,
@ -341,6 +342,8 @@ pub struct BufferMapOperation {
} }
#[derive(Clone, Debug, Error)] #[derive(Clone, Debug, Error)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(bound(deserialize = "'de: 'static")))]
#[non_exhaustive] #[non_exhaustive]
pub enum BufferAccessError { pub enum BufferAccessError {
#[error(transparent)] #[error(transparent)]
@ -389,6 +392,8 @@ pub enum BufferAccessError {
} }
#[derive(Clone, Debug, Error)] #[derive(Clone, Debug, Error)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(bound(deserialize = "'de: 'static")))]
#[error("Usage flags {actual:?} of {res} do not contain required usage flags {expected:?}")] #[error("Usage flags {actual:?} of {res} do not contain required usage flags {expected:?}")]
pub struct MissingBufferUsageError { pub struct MissingBufferUsageError {
pub(crate) res: ResourceErrorIdent, pub(crate) res: ResourceErrorIdent,
@ -405,6 +410,8 @@ pub struct MissingTextureUsageError {
} }
#[derive(Clone, Debug, Error)] #[derive(Clone, Debug, Error)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(bound(deserialize = "'de: 'static")))]
#[error("{0} has been destroyed")] #[error("{0} has been destroyed")]
pub struct DestroyedResourceError(pub ResourceErrorIdent); pub struct DestroyedResourceError(pub ResourceErrorIdent);