erupt/generated/extensions/
ext_robustness2.rs

1// DO NOT EDIT: @generated by erupt's generator
2///<s>Vulkan Manual Page</s> · Constant
3#[doc(alias = "VK_EXT_ROBUSTNESS_2_SPEC_VERSION")]
4pub const EXT_ROBUSTNESS_2_SPEC_VERSION: u32 = 1;
5///<s>Vulkan Manual Page</s> · Constant
6#[doc(alias = "VK_EXT_ROBUSTNESS_2_EXTENSION_NAME")]
7pub const EXT_ROBUSTNESS_2_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
8    "VK_EXT_robustness2"
9);
10///Provided by [`crate::extensions::ext_robustness2`]
11impl crate::vk1_0::StructureType {
12    pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: Self = Self(1000286000);
13    pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: Self = Self(1000286001);
14}
15impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceRobustness2FeaturesEXT>
16for crate::vk1_0::DeviceCreateInfoBuilder<'a> {}
17impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceRobustness2FeaturesEXTBuilder<'_>>
18for crate::vk1_0::DeviceCreateInfoBuilder<'a> {}
19impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceRobustness2FeaturesEXT>
20for crate::vk1_1::PhysicalDeviceFeatures2Builder<'a> {}
21impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceRobustness2FeaturesEXTBuilder<'_>>
22for crate::vk1_1::PhysicalDeviceFeatures2Builder<'a> {}
23impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceRobustness2PropertiesEXT>
24for crate::vk1_1::PhysicalDeviceProperties2Builder<'a> {}
25impl<'a> crate::ExtendableFrom<'a, PhysicalDeviceRobustness2PropertiesEXTBuilder<'_>>
26for crate::vk1_1::PhysicalDeviceProperties2Builder<'a> {}
27///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRobustness2FeaturesEXT.html) · Structure
28#[doc(alias = "VkPhysicalDeviceRobustness2FeaturesEXT")]
29#[derive(Copy, Clone)]
30#[repr(C)]
31pub struct PhysicalDeviceRobustness2FeaturesEXT {
32    pub s_type: crate::vk1_0::StructureType,
33    pub p_next: *mut std::ffi::c_void,
34    pub robust_buffer_access2: crate::vk1_0::Bool32,
35    pub robust_image_access2: crate::vk1_0::Bool32,
36    pub null_descriptor: crate::vk1_0::Bool32,
37}
38impl PhysicalDeviceRobustness2FeaturesEXT {
39    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
40}
41impl Default for PhysicalDeviceRobustness2FeaturesEXT {
42    fn default() -> Self {
43        Self {
44            s_type: Self::STRUCTURE_TYPE,
45            p_next: std::ptr::null_mut(),
46            robust_buffer_access2: Default::default(),
47            robust_image_access2: Default::default(),
48            null_descriptor: Default::default(),
49        }
50    }
51}
52impl std::fmt::Debug for PhysicalDeviceRobustness2FeaturesEXT {
53    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
54        f.debug_struct("PhysicalDeviceRobustness2FeaturesEXT")
55            .field("s_type", &self.s_type)
56            .field("p_next", &self.p_next)
57            .field("robust_buffer_access2", &(self.robust_buffer_access2 != 0))
58            .field("robust_image_access2", &(self.robust_image_access2 != 0))
59            .field("null_descriptor", &(self.null_descriptor != 0))
60            .finish()
61    }
62}
63impl PhysicalDeviceRobustness2FeaturesEXT {
64    #[inline]
65    pub fn into_builder<'a>(self) -> PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
66        PhysicalDeviceRobustness2FeaturesEXTBuilder(self, std::marker::PhantomData)
67    }
68}
69#[derive(Copy, Clone)]
70///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRobustness2FeaturesEXT.html) · Builder of [`PhysicalDeviceRobustness2FeaturesEXT`]
71#[repr(transparent)]
72pub struct PhysicalDeviceRobustness2FeaturesEXTBuilder<'a>(
73    PhysicalDeviceRobustness2FeaturesEXT,
74    std::marker::PhantomData<&'a ()>,
75);
76impl<'a> PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
77    #[inline]
78    pub fn new() -> PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
79        PhysicalDeviceRobustness2FeaturesEXTBuilder(
80            Default::default(),
81            std::marker::PhantomData,
82        )
83    }
84    #[inline]
85    #[must_use]
86    pub fn robust_buffer_access2(mut self, robust_buffer_access2: bool) -> Self {
87        self.0.robust_buffer_access2 = robust_buffer_access2 as _;
88        self
89    }
90    #[inline]
91    #[must_use]
92    pub fn robust_image_access2(mut self, robust_image_access2: bool) -> Self {
93        self.0.robust_image_access2 = robust_image_access2 as _;
94        self
95    }
96    #[inline]
97    #[must_use]
98    pub fn null_descriptor(mut self, null_descriptor: bool) -> Self {
99        self.0.null_descriptor = null_descriptor as _;
100        self
101    }
102    #[inline]
103    /// Discards all lifetime information.
104    /// Use the `Deref` and `DerefMut` implementations if possible.
105    pub fn build_dangling(self) -> PhysicalDeviceRobustness2FeaturesEXT {
106        self.0
107    }
108}
109impl<'a> std::default::Default for PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
110    fn default() -> PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
111        Self::new()
112    }
113}
114impl<'a> std::fmt::Debug for PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
115    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
116        std::fmt::Debug::fmt(&self.0, f)
117    }
118}
119impl<'a> std::ops::Deref for PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
120    type Target = PhysicalDeviceRobustness2FeaturesEXT;
121    fn deref(&self) -> &Self::Target {
122        &self.0
123    }
124}
125impl<'a> std::ops::DerefMut for PhysicalDeviceRobustness2FeaturesEXTBuilder<'a> {
126    fn deref_mut(&mut self) -> &mut Self::Target {
127        &mut self.0
128    }
129}
130///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRobustness2PropertiesEXT.html) · Structure
131#[doc(alias = "VkPhysicalDeviceRobustness2PropertiesEXT")]
132#[derive(Copy, Clone)]
133#[repr(C)]
134pub struct PhysicalDeviceRobustness2PropertiesEXT {
135    pub s_type: crate::vk1_0::StructureType,
136    pub p_next: *mut std::ffi::c_void,
137    pub robust_storage_buffer_access_size_alignment: crate::vk1_0::DeviceSize,
138    pub robust_uniform_buffer_access_size_alignment: crate::vk1_0::DeviceSize,
139}
140impl PhysicalDeviceRobustness2PropertiesEXT {
141    pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
142}
143impl Default for PhysicalDeviceRobustness2PropertiesEXT {
144    fn default() -> Self {
145        Self {
146            s_type: Self::STRUCTURE_TYPE,
147            p_next: std::ptr::null_mut(),
148            robust_storage_buffer_access_size_alignment: Default::default(),
149            robust_uniform_buffer_access_size_alignment: Default::default(),
150        }
151    }
152}
153impl std::fmt::Debug for PhysicalDeviceRobustness2PropertiesEXT {
154    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
155        f.debug_struct("PhysicalDeviceRobustness2PropertiesEXT")
156            .field("s_type", &self.s_type)
157            .field("p_next", &self.p_next)
158            .field(
159                "robust_storage_buffer_access_size_alignment",
160                &self.robust_storage_buffer_access_size_alignment,
161            )
162            .field(
163                "robust_uniform_buffer_access_size_alignment",
164                &self.robust_uniform_buffer_access_size_alignment,
165            )
166            .finish()
167    }
168}
169impl PhysicalDeviceRobustness2PropertiesEXT {
170    #[inline]
171    pub fn into_builder<'a>(self) -> PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
172        PhysicalDeviceRobustness2PropertiesEXTBuilder(self, std::marker::PhantomData)
173    }
174}
175#[derive(Copy, Clone)]
176///[Vulkan Manual Page](https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceRobustness2PropertiesEXT.html) · Builder of [`PhysicalDeviceRobustness2PropertiesEXT`]
177#[repr(transparent)]
178pub struct PhysicalDeviceRobustness2PropertiesEXTBuilder<'a>(
179    PhysicalDeviceRobustness2PropertiesEXT,
180    std::marker::PhantomData<&'a ()>,
181);
182impl<'a> PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
183    #[inline]
184    pub fn new() -> PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
185        PhysicalDeviceRobustness2PropertiesEXTBuilder(
186            Default::default(),
187            std::marker::PhantomData,
188        )
189    }
190    #[inline]
191    #[must_use]
192    pub fn robust_storage_buffer_access_size_alignment(
193        mut self,
194        robust_storage_buffer_access_size_alignment: crate::vk1_0::DeviceSize,
195    ) -> Self {
196        self
197            .0
198            .robust_storage_buffer_access_size_alignment = robust_storage_buffer_access_size_alignment
199            as _;
200        self
201    }
202    #[inline]
203    #[must_use]
204    pub fn robust_uniform_buffer_access_size_alignment(
205        mut self,
206        robust_uniform_buffer_access_size_alignment: crate::vk1_0::DeviceSize,
207    ) -> Self {
208        self
209            .0
210            .robust_uniform_buffer_access_size_alignment = robust_uniform_buffer_access_size_alignment
211            as _;
212        self
213    }
214    #[inline]
215    /// Discards all lifetime information.
216    /// Use the `Deref` and `DerefMut` implementations if possible.
217    pub fn build_dangling(self) -> PhysicalDeviceRobustness2PropertiesEXT {
218        self.0
219    }
220}
221impl<'a> std::default::Default for PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
222    fn default() -> PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
223        Self::new()
224    }
225}
226impl<'a> std::fmt::Debug for PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
227    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
228        std::fmt::Debug::fmt(&self.0, f)
229    }
230}
231impl<'a> std::ops::Deref for PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
232    type Target = PhysicalDeviceRobustness2PropertiesEXT;
233    fn deref(&self) -> &Self::Target {
234        &self.0
235    }
236}
237impl<'a> std::ops::DerefMut for PhysicalDeviceRobustness2PropertiesEXTBuilder<'a> {
238    fn deref_mut(&mut self) -> &mut Self::Target {
239        &mut self.0
240    }
241}