erupt/generated/extensions/
ext_memory_priority.rs

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