diff --git a/src/back/msl/mod.rs b/src/back/msl/mod.rs index de82096a49..ca7b9682c0 100644 --- a/src/back/msl/mod.rs +++ b/src/back/msl/mod.rs @@ -49,14 +49,11 @@ pub enum BindSamplerTarget { #[derive(Clone, Debug, Default, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] +#[cfg_attr(any(feature = "serialize", feature = "deserialize"), serde(default))] pub struct BindTarget { - #[cfg_attr(feature = "deserialize", serde(default))] pub buffer: Option, - #[cfg_attr(feature = "deserialize", serde(default))] pub texture: Option, - #[cfg_attr(feature = "deserialize", serde(default))] pub sampler: Option, - #[cfg_attr(feature = "deserialize", serde(default))] pub mutable: bool, } @@ -66,29 +63,25 @@ pub type BindingMap = std::collections::BTreeMap, /// The slot of a buffer that contains an array of `u32`, /// one for the size of each bound buffer that contains a runtime array, /// in order of [`crate::GlobalVariable`] declarations. - #[cfg_attr(feature = "deserialize", serde(default))] pub sizes_buffer: Option, } #[derive(Clone, Debug, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] +#[cfg_attr(any(feature = "serialize", feature = "deserialize"), serde(default))] pub struct PerStageMap { - #[cfg_attr(feature = "deserialize", serde(default))] pub vs: PerStageResources, - #[cfg_attr(feature = "deserialize", serde(default))] pub fs: PerStageResources, - #[cfg_attr(feature = "deserialize", serde(default))] pub cs: PerStageResources, }