erupt/generated/extensions/
ext_validation_features.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_EXT_VALIDATION_FEATURES_SPEC_VERSION")]
4pub const EXT_VALIDATION_FEATURES_SPEC_VERSION: u32 = 5;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME")]
7pub const EXT_VALIDATION_FEATURES_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_EXT_validation_features"
9);
10///Provided by [`crate::extensions::ext_validation_features`]
11impl crate::vk1_0::StructureType {
12    pub const VALIDATION_FEATURES_EXT: Self = Self(1000247000);
13}
14///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeatureEnableEXT.html) · Enum
15#[doc(alias = "VkValidationFeatureEnableEXT")]
16#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
17#[repr(transparent)]
18pub struct ValidationFeatureEnableEXT(pub i32);
19impl std::fmt::Debug for ValidationFeatureEnableEXT {
20    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
21        f.write_str(
22            match self {
23                &Self::GPU_ASSISTED_EXT => "GPU_ASSISTED_EXT",
24                &Self::GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT => {
25                    "GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"
26                }
27                &Self::BEST_PRACTICES_EXT => "BEST_PRACTICES_EXT",
28                &Self::DEBUG_PRINTF_EXT => "DEBUG_PRINTF_EXT",
29                &Self::SYNCHRONIZATION_VALIDATION_EXT => "SYNCHRONIZATION_VALIDATION_EXT",
30                _ => "(unknown variant)",
31            },
32        )
33    }
34}
35///Provided by [`crate::extensions::ext_validation_features`]
36impl crate::extensions::ext_validation_features::ValidationFeatureEnableEXT {
37    pub const GPU_ASSISTED_EXT: Self = Self(0);
38    pub const GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT: Self = Self(1);
39    pub const BEST_PRACTICES_EXT: Self = Self(2);
40    pub const DEBUG_PRINTF_EXT: Self = Self(3);
41    pub const SYNCHRONIZATION_VALIDATION_EXT: Self = Self(4);
42}
43///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeatureDisableEXT.html) · Enum
44#[doc(alias = "VkValidationFeatureDisableEXT")]
45#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Ord, PartialOrd)]
46#[repr(transparent)]
47pub struct ValidationFeatureDisableEXT(pub i32);
48impl std::fmt::Debug for ValidationFeatureDisableEXT {
49    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
50        f.write_str(
51            match self {
52                &Self::ALL_EXT => "ALL_EXT",
53                &Self::SHADERS_EXT => "SHADERS_EXT",
54                &Self::THREAD_SAFETY_EXT => "THREAD_SAFETY_EXT",
55                &Self::API_PARAMETERS_EXT => "API_PARAMETERS_EXT",
56                &Self::OBJECT_LIFETIMES_EXT => "OBJECT_LIFETIMES_EXT",
57                &Self::CORE_CHECKS_EXT => "CORE_CHECKS_EXT",
58                &Self::UNIQUE_HANDLES_EXT => "UNIQUE_HANDLES_EXT",
59                &Self::SHADER_VALIDATION_CACHE_EXT => "SHADER_VALIDATION_CACHE_EXT",
60                _ => "(unknown variant)",
61            },
62        )
63    }
64}
65///Provided by [`crate::extensions::ext_validation_features`]
66impl crate::extensions::ext_validation_features::ValidationFeatureDisableEXT {
67    pub const ALL_EXT: Self = Self(0);
68    pub const SHADERS_EXT: Self = Self(1);
69    pub const THREAD_SAFETY_EXT: Self = Self(2);
70    pub const API_PARAMETERS_EXT: Self = Self(3);
71    pub const OBJECT_LIFETIMES_EXT: Self = Self(4);
72    pub const CORE_CHECKS_EXT: Self = Self(5);
73    pub const UNIQUE_HANDLES_EXT: Self = Self(6);
74    pub const SHADER_VALIDATION_CACHE_EXT: Self = Self(7);
75}
76impl<'a> crate::ExtendableFrom<'a, ValidationFeaturesEXT>
77for crate::vk1_0::InstanceCreateInfoBuilder<'a> {}
78impl<'a> crate::ExtendableFrom<'a, ValidationFeaturesEXTBuilder<'_>>
79for crate::vk1_0::InstanceCreateInfoBuilder<'a> {}
80///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeaturesEXT.html) · Structure
81#[doc(alias = "VkValidationFeaturesEXT")]
82#[derive(Copy, Clone)]
83#[repr(C)]
84pub struct ValidationFeaturesEXT {
85    pub s_type: crate::vk1_0::StructureType,
86    pub p_next: *const std::ffi::c_void,
87    pub enabled_validation_feature_count: u32,
88    pub p_enabled_validation_features: *const crate::extensions::ext_validation_features::ValidationFeatureEnableEXT,
89    pub disabled_validation_feature_count: u32,
90    pub p_disabled_validation_features: *const crate::extensions::ext_validation_features::ValidationFeatureDisableEXT,
91}
92impl ValidationFeaturesEXT {
93    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::VALIDATION_FEATURES_EXT;
94}
95impl Default for ValidationFeaturesEXT {
96    fn default() -> Self {
97        Self {
98            s_type: Self::STRUCTURE_TYPE,
99            p_next: std::ptr::null(),
100            enabled_validation_feature_count: Default::default(),
101            p_enabled_validation_features: std::ptr::null(),
102            disabled_validation_feature_count: Default::default(),
103            p_disabled_validation_features: std::ptr::null(),
104        }
105    }
106}
107impl std::fmt::Debug for ValidationFeaturesEXT {
108    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
109        f.debug_struct("ValidationFeaturesEXT")
110            .field("s_type", &self.s_type)
111            .field("p_next", &self.p_next)
112            .field(
113                "enabled_validation_feature_count",
114                &self.enabled_validation_feature_count,
115            )
116            .field("p_enabled_validation_features", &self.p_enabled_validation_features)
117            .field(
118                "disabled_validation_feature_count",
119                &self.disabled_validation_feature_count,
120            )
121            .field(
122                "p_disabled_validation_features",
123                &self.p_disabled_validation_features,
124            )
125            .finish()
126    }
127}
128impl ValidationFeaturesEXT {
129    #[inline]
130    pub fn into_builder<'a>(self) -> ValidationFeaturesEXTBuilder<'a> {
131        ValidationFeaturesEXTBuilder(self, std::marker::PhantomData)
132    }
133}
134#[derive(Copy, Clone)]
135///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeaturesEXT.html) · Builder of [`ValidationFeaturesEXT`]
136#[repr(transparent)]
137pub struct ValidationFeaturesEXTBuilder<'a>(
138    ValidationFeaturesEXT,
139    std::marker::PhantomData<&'a ()>,
140);
141impl<'a> ValidationFeaturesEXTBuilder<'a> {
142    #[inline]
143    pub fn new() -> ValidationFeaturesEXTBuilder<'a> {
144        ValidationFeaturesEXTBuilder(Default::default(), std::marker::PhantomData)
145    }
146    #[inline]
147    #[must_use]
148    pub fn enabled_validation_features(
149        mut self,
150        enabled_validation_features: &'a [crate::extensions::ext_validation_features::ValidationFeatureEnableEXT],
151    ) -> Self {
152        self.0.p_enabled_validation_features = enabled_validation_features.as_ptr() as _;
153        self.0.enabled_validation_feature_count = enabled_validation_features.len() as _;
154        self
155    }
156    #[inline]
157    #[must_use]
158    pub fn disabled_validation_features(
159        mut self,
160        disabled_validation_features: &'a [crate::extensions::ext_validation_features::ValidationFeatureDisableEXT],
161    ) -> Self {
162        self
163            .0
164            .p_disabled_validation_features = disabled_validation_features.as_ptr() as _;
165        self
166            .0
167            .disabled_validation_feature_count = disabled_validation_features.len() as _;
168        self
169    }
170    #[inline]
171    /// Discards all lifetime information.
172    /// Use the `Deref` and `DerefMut` implementations if possible.
173    pub fn build_dangling(self) -> ValidationFeaturesEXT {
174        self.0
175    }
176}
177impl<'a> std::default::Default for ValidationFeaturesEXTBuilder<'a> {
178    fn default() -> ValidationFeaturesEXTBuilder<'a> {
179        Self::new()
180    }
181}
182impl<'a> std::fmt::Debug for ValidationFeaturesEXTBuilder<'a> {
183    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
184        std::fmt::Debug::fmt(&self.0, f)
185    }
186}
187impl<'a> std::ops::Deref for ValidationFeaturesEXTBuilder<'a> {
188    type Target = ValidationFeaturesEXT;
189    fn deref(&self) -> &Self::Target {
190        &self.0
191    }
192}
193impl<'a> std::ops::DerefMut for ValidationFeaturesEXTBuilder<'a> {
194    fn deref_mut(&mut self) -> &mut Self::Target {
195        &mut self.0
196    }
197}