diff --git a/Changelog.md b/Changelog.md index f64a5ccd..2db7f43a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `get_pipeline_executable_statistics()`. The expected length of this array can be queried with the respective `*_len()` variant of these functions. - `push_next()` has been renamed to `extend()` and marked as `unsafe`. Users are encouraged to call `push()` for singular structs instead. (#909) +- All `Extends{Root}` traits have been replaced with a single `Extends` trait using generics. (#971) ### Removed diff --git a/ash/src/lib.rs b/ash/src/lib.rs index 05dd68a6..4a983dba 100644 --- a/ash/src/lib.rs +++ b/ash/src/lib.rs @@ -214,4 +214,18 @@ mod tests { }; assert_eq!(chain, chain2); } + #[test] + fn test_dynamic_add_to_ptr_chain() { + let mut variable_pointers = vk::PhysicalDeviceVariablePointerFeatures::default(); + let variable_pointers: &mut dyn vk::Extends> = + &mut variable_pointers; + let chain = alloc::vec![<*mut _>::cast(variable_pointers)]; + let mut device_create_info = vk::DeviceCreateInfo::default().push(variable_pointers); + let chain2: Vec<*mut vk::BaseOutStructure<'_>> = unsafe { + vk::ptr_chain_iter(&mut device_create_info) + .skip(1) + .collect() + }; + assert_eq!(chain, chain2); + } } diff --git a/ash/src/vk/definitions.rs b/ash/src/vk/definitions.rs index 928bceea..033c7a34 100644 --- a/ash/src/vk/definitions.rs +++ b/ash/src/vk/definitions.rs @@ -1260,7 +1260,6 @@ impl ::core::default::Default for DeviceQueueCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceQueueCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_CREATE_INFO; } -pub unsafe trait ExtendsDeviceQueueCreateInfo {} impl<'a> DeviceQueueCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DeviceQueueCreateFlags) -> Self { @@ -1287,7 +1286,7 @@ impl<'a> DeviceQueueCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -1311,10 +1310,7 @@ impl<'a> DeviceQueueCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -1322,10 +1318,7 @@ impl<'a> DeviceQueueCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -1373,7 +1366,6 @@ impl ::core::default::Default for DeviceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_CREATE_INFO; } -pub unsafe trait ExtendsDeviceCreateInfo {} impl<'a> DeviceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DeviceCreateFlags) -> Self { @@ -1417,7 +1409,7 @@ impl<'a> DeviceCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -1441,7 +1433,7 @@ impl<'a> DeviceCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -1449,7 +1441,7 @@ impl<'a> DeviceCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -1490,7 +1482,6 @@ impl ::core::default::Default for InstanceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for InstanceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO; } -pub unsafe trait ExtendsInstanceCreateInfo {} impl<'a> InstanceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: InstanceCreateFlags) -> Self { @@ -1523,7 +1514,7 @@ impl<'a> InstanceCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -1547,7 +1538,7 @@ impl<'a> InstanceCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -1555,7 +1546,7 @@ impl<'a> InstanceCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -1678,7 +1669,6 @@ impl ::core::default::Default for MemoryAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_INFO; } -pub unsafe trait ExtendsMemoryAllocateInfo {} impl<'a> MemoryAllocateInfo<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -1699,7 +1689,7 @@ impl<'a> MemoryAllocateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -1723,7 +1713,7 @@ impl<'a> MemoryAllocateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -1731,7 +1721,7 @@ impl<'a> MemoryAllocateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2079,7 +2069,6 @@ impl ::core::default::Default for WriteDescriptorSet<'_> { unsafe impl<'a> TaggedStructure for WriteDescriptorSet<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET; } -pub unsafe trait ExtendsWriteDescriptorSet {} impl<'a> WriteDescriptorSet<'a> { #[inline] pub fn dst_set(mut self, dst_set: DescriptorSet) -> Self { @@ -2133,7 +2122,7 @@ impl<'a> WriteDescriptorSet<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -2157,7 +2146,7 @@ impl<'a> WriteDescriptorSet<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -2165,7 +2154,7 @@ impl<'a> WriteDescriptorSet<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2272,10 +2261,10 @@ impl ::core::default::Default for BufferUsageFlags2CreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BufferUsageFlags2CreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR; } -unsafe impl ExtendsBufferViewCreateInfo for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsBufferCreateInfo for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsPhysicalDeviceExternalBufferInfo for BufferUsageFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsDescriptorBufferBindingInfoEXT for BufferUsageFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for BufferUsageFlags2CreateInfoKHR<'_> {} impl<'a> BufferUsageFlags2CreateInfoKHR<'a> { #[inline] pub fn usage(mut self, usage: BufferUsageFlags2KHR) -> Self { @@ -2320,7 +2309,6 @@ impl ::core::default::Default for BufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_CREATE_INFO; } -pub unsafe trait ExtendsBufferCreateInfo {} impl<'a> BufferCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferCreateFlags) -> Self { @@ -2357,7 +2345,7 @@ impl<'a> BufferCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -2381,7 +2369,7 @@ impl<'a> BufferCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -2389,7 +2377,7 @@ impl<'a> BufferCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2428,7 +2416,6 @@ impl ::core::default::Default for BufferViewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_VIEW_CREATE_INFO; } -pub unsafe trait ExtendsBufferViewCreateInfo {} impl<'a> BufferViewCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferViewCreateFlags) -> Self { @@ -2464,7 +2451,7 @@ impl<'a> BufferViewCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -2488,10 +2475,7 @@ impl<'a> BufferViewCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -2499,10 +2483,7 @@ impl<'a> BufferViewCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2685,7 +2666,6 @@ impl ::core::default::Default for BufferMemoryBarrier<'_> { unsafe impl<'a> TaggedStructure for BufferMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER; } -pub unsafe trait ExtendsBufferMemoryBarrier {} impl<'a> BufferMemoryBarrier<'a> { #[inline] pub fn src_access_mask(mut self, src_access_mask: AccessFlags) -> Self { @@ -2731,7 +2711,7 @@ impl<'a> BufferMemoryBarrier<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -2755,10 +2735,7 @@ impl<'a> BufferMemoryBarrier<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -2766,7 +2743,7 @@ impl<'a> BufferMemoryBarrier<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2811,7 +2788,6 @@ impl ::core::default::Default for ImageMemoryBarrier<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryBarrier<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER; } -pub unsafe trait ExtendsImageMemoryBarrier {} impl<'a> ImageMemoryBarrier<'a> { #[inline] pub fn src_access_mask(mut self, src_access_mask: AccessFlags) -> Self { @@ -2862,7 +2838,7 @@ impl<'a> ImageMemoryBarrier<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -2886,7 +2862,7 @@ impl<'a> ImageMemoryBarrier<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -2894,7 +2870,7 @@ impl<'a> ImageMemoryBarrier<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2949,7 +2925,6 @@ impl ::core::default::Default for ImageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_CREATE_INFO; } -pub unsafe trait ExtendsImageCreateInfo {} impl<'a> ImageCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ImageCreateFlags) -> Self { @@ -3021,7 +2996,7 @@ impl<'a> ImageCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -3045,7 +3020,7 @@ impl<'a> ImageCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -3053,7 +3028,7 @@ impl<'a> ImageCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -3133,7 +3108,6 @@ impl ::core::default::Default for ImageViewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageViewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_CREATE_INFO; } -pub unsafe trait ExtendsImageViewCreateInfo {} impl<'a> ImageViewCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ImageViewCreateFlags) -> Self { @@ -3174,7 +3148,7 @@ impl<'a> ImageViewCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -3198,10 +3172,7 @@ impl<'a> ImageViewCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -3209,7 +3180,7 @@ impl<'a> ImageViewCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -3480,7 +3451,6 @@ impl ::core::default::Default for BindSparseInfo<'_> { unsafe impl<'a> TaggedStructure for BindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_SPARSE_INFO; } -pub unsafe trait ExtendsBindSparseInfo {} impl<'a> BindSparseInfo<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -3524,7 +3494,7 @@ impl<'a> BindSparseInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -3548,7 +3518,7 @@ impl<'a> BindSparseInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -3556,7 +3526,7 @@ impl<'a> BindSparseInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -3830,8 +3800,7 @@ impl ::core::default::Default for ShaderModuleCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ShaderModuleCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO; } -unsafe impl ExtendsPipelineShaderStageCreateInfo for ShaderModuleCreateInfo<'_> {} -pub unsafe trait ExtendsShaderModuleCreateInfo {} +unsafe impl Extends> for ShaderModuleCreateInfo<'_> {} impl<'a> ShaderModuleCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: ShaderModuleCreateFlags) -> Self { @@ -3853,7 +3822,7 @@ impl<'a> ShaderModuleCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -3877,10 +3846,7 @@ impl<'a> ShaderModuleCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -3888,10 +3854,7 @@ impl<'a> ShaderModuleCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -3982,7 +3945,6 @@ impl ::core::default::Default for DescriptorSetLayoutCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO; } -pub unsafe trait ExtendsDescriptorSetLayoutCreateInfo {} impl<'a> DescriptorSetLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DescriptorSetLayoutCreateFlags) -> Self { @@ -4004,10 +3966,7 @@ impl<'a> DescriptorSetLayoutCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4031,10 +3990,7 @@ impl<'a> DescriptorSetLayoutCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4042,10 +3998,7 @@ impl<'a> DescriptorSetLayoutCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -4103,7 +4056,6 @@ impl ::core::default::Default for DescriptorPoolCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_CREATE_INFO; } -pub unsafe trait ExtendsDescriptorPoolCreateInfo {} impl<'a> DescriptorPoolCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: DescriptorPoolCreateFlags) -> Self { @@ -4130,7 +4082,7 @@ impl<'a> DescriptorPoolCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4154,10 +4106,7 @@ impl<'a> DescriptorPoolCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4165,10 +4114,7 @@ impl<'a> DescriptorPoolCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -4203,7 +4149,6 @@ impl ::core::default::Default for DescriptorSetAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_ALLOCATE_INFO; } -pub unsafe trait ExtendsDescriptorSetAllocateInfo {} impl<'a> DescriptorSetAllocateInfo<'a> { #[inline] pub fn descriptor_pool(mut self, descriptor_pool: DescriptorPool) -> Self { @@ -4225,7 +4170,7 @@ impl<'a> DescriptorSetAllocateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4249,10 +4194,7 @@ impl<'a> DescriptorSetAllocateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4260,10 +4202,7 @@ impl<'a> DescriptorSetAllocateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -4369,7 +4308,6 @@ impl ::core::default::Default for PipelineShaderStageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineShaderStageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineShaderStageCreateInfo {} impl<'a> PipelineShaderStageCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineShaderStageCreateFlags) -> Self { @@ -4413,10 +4351,7 @@ impl<'a> PipelineShaderStageCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4440,10 +4375,7 @@ impl<'a> PipelineShaderStageCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4451,10 +4383,7 @@ impl<'a> PipelineShaderStageCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -4493,7 +4422,6 @@ impl ::core::default::Default for ComputePipelineCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ComputePipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_CREATE_INFO; } -pub unsafe trait ExtendsComputePipelineCreateInfo {} impl<'a> ComputePipelineCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -4529,7 +4457,7 @@ impl<'a> ComputePipelineCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4553,10 +4481,7 @@ impl<'a> ComputePipelineCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4564,10 +4489,7 @@ impl<'a> ComputePipelineCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -4602,7 +4524,7 @@ impl ::core::default::Default for ComputePipelineIndirectBufferInfoNV<'_> { unsafe impl<'a> TaggedStructure for ComputePipelineIndirectBufferInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV; } -unsafe impl ExtendsComputePipelineCreateInfo for ComputePipelineIndirectBufferInfoNV<'_> {} +unsafe impl Extends> for ComputePipelineIndirectBufferInfoNV<'_> {} impl<'a> ComputePipelineIndirectBufferInfoNV<'a> { #[inline] pub fn device_address(mut self, device_address: DeviceAddress) -> Self { @@ -4650,10 +4572,10 @@ impl ::core::default::Default for PipelineCreateFlags2CreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PipelineCreateFlags2CreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR; } -unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineCreateFlags2CreateInfoKHR<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineCreateFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} +unsafe impl Extends> for PipelineCreateFlags2CreateInfoKHR<'_> {} impl<'a> PipelineCreateFlags2CreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags2KHR) -> Self { @@ -4756,7 +4678,6 @@ impl ::core::default::Default for PipelineVertexInputStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineVertexInputStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineVertexInputStateCreateInfo {} impl<'a> PipelineVertexInputStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineVertexInputStateCreateFlags) -> Self { @@ -4790,10 +4711,7 @@ impl<'a> PipelineVertexInputStateCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4817,10 +4735,7 @@ impl<'a> PipelineVertexInputStateCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4828,10 +4743,7 @@ impl<'a> PipelineVertexInputStateCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -4912,7 +4824,6 @@ impl ::core::default::Default for PipelineTessellationStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineTessellationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineTessellationStateCreateInfo {} impl<'a> PipelineTessellationStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineTessellationStateCreateFlags) -> Self { @@ -4933,10 +4844,7 @@ impl<'a> PipelineTessellationStateCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -4960,10 +4868,7 @@ impl<'a> PipelineTessellationStateCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -4971,10 +4876,7 @@ impl<'a> PipelineTessellationStateCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -5013,7 +4915,6 @@ impl ::core::default::Default for PipelineViewportStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineViewportStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineViewportStateCreateInfo {} impl<'a> PipelineViewportStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineViewportStateCreateFlags) -> Self { @@ -5051,10 +4952,7 @@ impl<'a> PipelineViewportStateCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -5078,10 +4976,7 @@ impl<'a> PipelineViewportStateCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -5089,10 +4984,7 @@ impl<'a> PipelineViewportStateCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -5143,7 +5035,6 @@ impl ::core::default::Default for PipelineRasterizationStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineRasterizationStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineRasterizationStateCreateInfo {} impl<'a> PipelineRasterizationStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineRasterizationStateCreateFlags) -> Self { @@ -5209,10 +5100,7 @@ impl<'a> PipelineRasterizationStateCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -5236,10 +5124,7 @@ impl<'a> PipelineRasterizationStateCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -5247,10 +5132,7 @@ impl<'a> PipelineRasterizationStateCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -5293,7 +5175,6 @@ impl ::core::default::Default for PipelineMultisampleStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineMultisampleStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineMultisampleStateCreateInfo {} impl<'a> PipelineMultisampleStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineMultisampleStateCreateFlags) -> Self { @@ -5348,10 +5229,7 @@ impl<'a> PipelineMultisampleStateCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -5375,10 +5253,7 @@ impl<'a> PipelineMultisampleStateCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -5386,10 +5261,7 @@ impl<'a> PipelineMultisampleStateCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -5487,7 +5359,6 @@ impl ::core::default::Default for PipelineColorBlendStateCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineColorBlendStateCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; } -pub unsafe trait ExtendsPipelineColorBlendStateCreateInfo {} impl<'a> PipelineColorBlendStateCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineColorBlendStateCreateFlags) -> Self { @@ -5524,10 +5395,7 @@ impl<'a> PipelineColorBlendStateCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -5551,10 +5419,7 @@ impl<'a> PipelineColorBlendStateCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -5562,10 +5427,7 @@ impl<'a> PipelineColorBlendStateCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -5820,7 +5682,6 @@ impl ::core::default::Default for GraphicsPipelineCreateInfo<'_> { unsafe impl<'a> TaggedStructure for GraphicsPipelineCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_CREATE_INFO; } -pub unsafe trait ExtendsGraphicsPipelineCreateInfo {} impl<'a> GraphicsPipelineCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -5936,7 +5797,7 @@ impl<'a> GraphicsPipelineCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -5960,10 +5821,7 @@ impl<'a> GraphicsPipelineCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -5971,10 +5829,7 @@ impl<'a> GraphicsPipelineCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -6335,9 +6190,9 @@ impl ::core::default::Default for PipelineBinaryInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PipelineBinaryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineBinaryInfoKHR<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineBinaryInfoKHR<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineBinaryInfoKHR<'_> {} +unsafe impl Extends> for PipelineBinaryInfoKHR<'_> {} +unsafe impl Extends> for PipelineBinaryInfoKHR<'_> {} +unsafe impl Extends> for PipelineBinaryInfoKHR<'_> {} impl<'a> PipelineBinaryInfoKHR<'a> { #[inline] pub fn pipeline_binaries(mut self, pipeline_binaries: &'a [PipelineBinaryKHR]) -> Self { @@ -6475,13 +6330,16 @@ impl ::core::default::Default for PipelineLayoutCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineLayoutCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LAYOUT_CREATE_INFO; } -unsafe impl ExtendsBindDescriptorSetsInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsPushConstantsInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsPushDescriptorSetInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsPushDescriptorSetWithTemplateInfoKHR for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsSetDescriptorBufferOffsetsInfoEXT for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT for PipelineLayoutCreateInfo<'_> {} -unsafe impl ExtendsIndirectCommandsLayoutCreateInfoEXT for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} +unsafe impl Extends> + for PipelineLayoutCreateInfo<'_> +{ +} +unsafe impl Extends> for PipelineLayoutCreateInfo<'_> {} impl<'a> PipelineLayoutCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: PipelineLayoutCreateFlags) -> Self { @@ -6558,7 +6416,6 @@ impl ::core::default::Default for SamplerCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CREATE_INFO; } -pub unsafe trait ExtendsSamplerCreateInfo {} impl<'a> SamplerCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: SamplerCreateFlags) -> Self { @@ -6649,7 +6506,7 @@ impl<'a> SamplerCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -6673,7 +6530,7 @@ impl<'a> SamplerCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -6681,7 +6538,7 @@ impl<'a> SamplerCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -6811,7 +6668,6 @@ impl ::core::default::Default for CommandBufferInheritanceInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferInheritanceInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_INFO; } -pub unsafe trait ExtendsCommandBufferInheritanceInfo {} impl<'a> CommandBufferInheritanceInfo<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -6852,10 +6708,7 @@ impl<'a> CommandBufferInheritanceInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -6879,10 +6732,7 @@ impl<'a> CommandBufferInheritanceInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -6890,10 +6740,7 @@ impl<'a> CommandBufferInheritanceInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -6926,7 +6773,6 @@ impl ::core::default::Default for CommandBufferBeginInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_BEGIN_INFO; } -pub unsafe trait ExtendsCommandBufferBeginInfo {} impl<'a> CommandBufferBeginInfo<'a> { #[inline] pub fn flags(mut self, flags: CommandBufferUsageFlags) -> Self { @@ -6950,7 +6796,7 @@ impl<'a> CommandBufferBeginInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -6974,10 +6820,7 @@ impl<'a> CommandBufferBeginInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -6985,10 +6828,7 @@ impl<'a> CommandBufferBeginInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -7040,7 +6880,6 @@ impl ::core::default::Default for RenderPassBeginInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_BEGIN_INFO; } -pub unsafe trait ExtendsRenderPassBeginInfo {} impl<'a> RenderPassBeginInfo<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -7072,7 +6911,7 @@ impl<'a> RenderPassBeginInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -7096,10 +6935,7 @@ impl<'a> RenderPassBeginInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -7107,7 +6943,7 @@ impl<'a> RenderPassBeginInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -7451,7 +7287,6 @@ impl ::core::default::Default for RenderPassCreateInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO; } -pub unsafe trait ExtendsRenderPassCreateInfo {} impl<'a> RenderPassCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderPassCreateFlags) -> Self { @@ -7485,7 +7320,7 @@ impl<'a> RenderPassCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -7509,10 +7344,7 @@ impl<'a> RenderPassCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -7520,10 +7352,7 @@ impl<'a> RenderPassCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -7554,7 +7383,6 @@ impl ::core::default::Default for EventCreateInfo<'_> { unsafe impl<'a> TaggedStructure for EventCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EVENT_CREATE_INFO; } -pub unsafe trait ExtendsEventCreateInfo {} impl<'a> EventCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: EventCreateFlags) -> Self { @@ -7570,7 +7398,7 @@ impl<'a> EventCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -7594,7 +7422,7 @@ impl<'a> EventCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -7602,7 +7430,7 @@ impl<'a> EventCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -7633,7 +7461,6 @@ impl ::core::default::Default for FenceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FENCE_CREATE_INFO; } -pub unsafe trait ExtendsFenceCreateInfo {} impl<'a> FenceCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: FenceCreateFlags) -> Self { @@ -7649,7 +7476,7 @@ impl<'a> FenceCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -7673,7 +7500,7 @@ impl<'a> FenceCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -7681,7 +7508,7 @@ impl<'a> FenceCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -9027,7 +8854,6 @@ impl ::core::default::Default for SemaphoreCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_CREATE_INFO; } -pub unsafe trait ExtendsSemaphoreCreateInfo {} impl<'a> SemaphoreCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: SemaphoreCreateFlags) -> Self { @@ -9043,7 +8869,7 @@ impl<'a> SemaphoreCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -9067,10 +8893,7 @@ impl<'a> SemaphoreCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -9078,7 +8901,7 @@ impl<'a> SemaphoreCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -9115,7 +8938,6 @@ impl ::core::default::Default for QueryPoolCreateInfo<'_> { unsafe impl<'a> TaggedStructure for QueryPoolCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_CREATE_INFO; } -pub unsafe trait ExtendsQueryPoolCreateInfo {} impl<'a> QueryPoolCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: QueryPoolCreateFlags) -> Self { @@ -9146,7 +8968,7 @@ impl<'a> QueryPoolCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -9170,10 +8992,7 @@ impl<'a> QueryPoolCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -9181,7 +9000,7 @@ impl<'a> QueryPoolCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -9224,7 +9043,6 @@ impl ::core::default::Default for FramebufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FramebufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_CREATE_INFO; } -pub unsafe trait ExtendsFramebufferCreateInfo {} impl<'a> FramebufferCreateInfo<'a> { #[inline] pub fn flags(mut self, flags: FramebufferCreateFlags) -> Self { @@ -9271,7 +9089,7 @@ impl<'a> FramebufferCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -9295,10 +9113,7 @@ impl<'a> FramebufferCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -9306,10 +9121,7 @@ impl<'a> FramebufferCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -9499,7 +9311,6 @@ impl ::core::default::Default for SubmitInfo<'_> { unsafe impl<'a> TaggedStructure for SubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO; } -pub unsafe trait ExtendsSubmitInfo {} impl<'a> SubmitInfo<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -9534,7 +9345,7 @@ impl<'a> SubmitInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -9558,7 +9369,7 @@ impl<'a> SubmitInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -9566,7 +9377,7 @@ impl<'a> SubmitInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -9928,7 +9739,7 @@ impl ::core::default::Default for DisplayPresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for DisplayPresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_PRESENT_INFO_KHR; } -unsafe impl ExtendsPresentInfoKHR for DisplayPresentInfoKHR<'_> {} +unsafe impl Extends> for DisplayPresentInfoKHR<'_> {} impl<'a> DisplayPresentInfoKHR<'a> { #[inline] pub fn src_rect(mut self, src_rect: Rect2D) -> Self { @@ -10548,7 +10359,6 @@ impl ::core::default::Default for SwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for SwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_KHR; } -pub unsafe trait ExtendsSwapchainCreateInfoKHR {} impl<'a> SwapchainCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: SwapchainCreateFlagsKHR) -> Self { @@ -10635,7 +10445,7 @@ impl<'a> SwapchainCreateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -10659,10 +10469,7 @@ impl<'a> SwapchainCreateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -10670,10 +10477,7 @@ impl<'a> SwapchainCreateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -10714,7 +10518,6 @@ impl ::core::default::Default for PresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_INFO_KHR; } -pub unsafe trait ExtendsPresentInfoKHR {} impl<'a> PresentInfoKHR<'a> { #[inline] pub fn wait_semaphores(mut self, wait_semaphores: &'a [Semaphore]) -> Self { @@ -10749,7 +10552,7 @@ impl<'a> PresentInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -10773,7 +10576,7 @@ impl<'a> PresentInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -10781,7 +10584,7 @@ impl<'a> PresentInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -10827,7 +10630,7 @@ impl ::core::default::Default for DebugReportCallbackCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DebugReportCallbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for DebugReportCallbackCreateInfoEXT<'_> {} +unsafe impl Extends> for DebugReportCallbackCreateInfoEXT<'_> {} impl<'a> DebugReportCallbackCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugReportFlagsEXT) -> Self { @@ -10874,7 +10677,7 @@ impl ::core::default::Default for ValidationFlagsEXT<'_> { unsafe impl<'a> TaggedStructure for ValidationFlagsEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FLAGS_EXT; } -unsafe impl ExtendsInstanceCreateInfo for ValidationFlagsEXT<'_> {} +unsafe impl Extends> for ValidationFlagsEXT<'_> {} impl<'a> ValidationFlagsEXT<'a> { #[inline] pub fn disabled_validation_checks( @@ -10919,9 +10722,9 @@ impl ::core::default::Default for ValidationFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for ValidationFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT; } -unsafe impl ExtendsInstanceCreateInfo for ValidationFeaturesEXT<'_> {} -unsafe impl ExtendsShaderModuleCreateInfo for ValidationFeaturesEXT<'_> {} -unsafe impl ExtendsShaderCreateInfoEXT for ValidationFeaturesEXT<'_> {} +unsafe impl Extends> for ValidationFeaturesEXT<'_> {} +unsafe impl Extends> for ValidationFeaturesEXT<'_> {} +unsafe impl Extends> for ValidationFeaturesEXT<'_> {} impl<'a> ValidationFeaturesEXT<'a> { #[inline] pub fn enabled_validation_features( @@ -10971,7 +10774,7 @@ impl ::core::default::Default for LayerSettingsCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for LayerSettingsCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LAYER_SETTINGS_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for LayerSettingsCreateInfoEXT<'_> {} +unsafe impl Extends> for LayerSettingsCreateInfoEXT<'_> {} impl<'a> LayerSettingsCreateInfoEXT<'a> { #[inline] pub fn settings(mut self, settings: &'a [LayerSettingEXT<'a>]) -> Self { @@ -11075,7 +10878,7 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationStateRasterizationOrder const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo +unsafe impl Extends> for PipelineRasterizationStateRasterizationOrderAMD<'_> { } @@ -11276,7 +11079,7 @@ impl ::core::default::Default for DedicatedAllocationImageCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for DedicatedAllocationImageCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV; } -unsafe impl ExtendsImageCreateInfo for DedicatedAllocationImageCreateInfoNV<'_> {} +unsafe impl Extends> for DedicatedAllocationImageCreateInfoNV<'_> {} impl<'a> DedicatedAllocationImageCreateInfoNV<'a> { #[inline] pub fn dedicated_allocation(mut self, dedicated_allocation: bool) -> Self { @@ -11311,7 +11114,7 @@ impl ::core::default::Default for DedicatedAllocationBufferCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for DedicatedAllocationBufferCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV; } -unsafe impl ExtendsBufferCreateInfo for DedicatedAllocationBufferCreateInfoNV<'_> {} +unsafe impl Extends> for DedicatedAllocationBufferCreateInfoNV<'_> {} impl<'a> DedicatedAllocationBufferCreateInfoNV<'a> { #[inline] pub fn dedicated_allocation(mut self, dedicated_allocation: bool) -> Self { @@ -11349,7 +11152,7 @@ unsafe impl<'a> TaggedStructure for DedicatedAllocationMemoryAllocateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for DedicatedAllocationMemoryAllocateInfoNV<'_> {} +unsafe impl Extends> for DedicatedAllocationMemoryAllocateInfoNV<'_> {} impl<'a> DedicatedAllocationMemoryAllocateInfoNV<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -11434,7 +11237,7 @@ impl ::core::default::Default for ExternalMemoryImageCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryImageCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV; } -unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfoNV<'_> {} +unsafe impl Extends> for ExternalMemoryImageCreateInfoNV<'_> {} impl<'a> ExternalMemoryImageCreateInfoNV<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -11469,7 +11272,7 @@ impl ::core::default::Default for ExportMemoryAllocateInfoNV<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryAllocateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfoNV<'_> {} +unsafe impl Extends> for ExportMemoryAllocateInfoNV<'_> {} impl<'a> ExportMemoryAllocateInfoNV<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -11506,7 +11309,7 @@ impl ::core::default::Default for ImportMemoryWin32HandleInfoNV<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryWin32HandleInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoNV<'_> {} +unsafe impl Extends> for ImportMemoryWin32HandleInfoNV<'_> {} impl<'a> ImportMemoryWin32HandleInfoNV<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlagsNV) -> Self { @@ -11548,7 +11351,7 @@ impl ::core::default::Default for ExportMemoryWin32HandleInfoNV<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryWin32HandleInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoNV<'_> {} +unsafe impl Extends> for ExportMemoryWin32HandleInfoNV<'_> {} impl<'a> ExportMemoryWin32HandleInfoNV<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -11600,8 +11403,8 @@ impl ::core::default::Default for Win32KeyedMutexAcquireReleaseInfoNV<'_> { unsafe impl<'a> TaggedStructure for Win32KeyedMutexAcquireReleaseInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV; } -unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoNV<'_> {} -unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoNV<'_> {} +unsafe impl Extends> for Win32KeyedMutexAcquireReleaseInfoNV<'_> {} +unsafe impl Extends> for Win32KeyedMutexAcquireReleaseInfoNV<'_> {} impl<'a> Win32KeyedMutexAcquireReleaseInfoNV<'a> { #[inline] pub fn acquire_syncs(mut self, acquire_syncs: &'a [DeviceMemory]) -> Self { @@ -11662,8 +11465,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'_> {} impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a> { #[inline] pub fn device_generated_commands(mut self, device_generated_commands: bool) -> Self { @@ -11703,11 +11509,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsCompute const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'_> {} impl<'a> PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a> { #[inline] pub fn device_generated_compute(mut self, device_generated_compute: bool) -> Self { @@ -11759,7 +11568,7 @@ impl ::core::default::Default for DevicePrivateDataCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DevicePrivateDataCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO; } -unsafe impl ExtendsDeviceCreateInfo for DevicePrivateDataCreateInfo<'_> {} +unsafe impl Extends> for DevicePrivateDataCreateInfo<'_> {} impl<'a> DevicePrivateDataCreateInfo<'a> { #[inline] pub fn private_data_slot_request_count(mut self, private_data_slot_request_count: u32) -> Self { @@ -11828,8 +11637,8 @@ impl ::core::default::Default for PhysicalDevicePrivateDataFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePrivateDataFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePrivateDataFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrivateDataFeatures<'_> {} +unsafe impl Extends> for PhysicalDevicePrivateDataFeatures<'_> {} +unsafe impl Extends> for PhysicalDevicePrivateDataFeatures<'_> {} impl<'a> PhysicalDevicePrivateDataFeatures<'a> { #[inline] pub fn private_data(mut self, private_data: bool) -> Self { @@ -11881,7 +11690,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'_> { } @@ -11983,7 +11792,7 @@ impl ::core::default::Default for PhysicalDeviceMultiDrawPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiDrawPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMultiDrawPropertiesEXT<'_> {} impl<'a> PhysicalDeviceMultiDrawPropertiesEXT<'a> { #[inline] pub fn max_multi_draw_count(mut self, max_multi_draw_count: u32) -> Self { @@ -12082,7 +11891,10 @@ unsafe impl<'a> TaggedStructure for GraphicsPipelineShaderGroupsCreateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for GraphicsPipelineShaderGroupsCreateInfoNV<'_> {} +unsafe impl Extends> + for GraphicsPipelineShaderGroupsCreateInfoNV<'_> +{ +} impl<'a> GraphicsPipelineShaderGroupsCreateInfoNV<'a> { #[inline] pub fn groups(mut self, groups: &'a [GraphicsShaderGroupCreateInfoNV<'a>]) -> Self { @@ -12643,8 +12455,7 @@ impl ::core::default::Default for PhysicalDeviceFeatures2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceFeatures2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2; } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFeatures2<'_> {} -pub unsafe trait ExtendsPhysicalDeviceFeatures2 {} +unsafe impl Extends> for PhysicalDeviceFeatures2<'_> {} impl<'a> PhysicalDeviceFeatures2<'a> { #[inline] pub fn features(mut self, features: PhysicalDeviceFeatures) -> Self { @@ -12660,7 +12471,7 @@ impl<'a> PhysicalDeviceFeatures2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -12684,10 +12495,7 @@ impl<'a> PhysicalDeviceFeatures2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -12695,10 +12503,7 @@ impl<'a> PhysicalDeviceFeatures2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -12729,7 +12534,6 @@ impl ::core::default::Default for PhysicalDeviceProperties2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROPERTIES_2; } -pub unsafe trait ExtendsPhysicalDeviceProperties2 {} impl<'a> PhysicalDeviceProperties2<'a> { #[inline] pub fn properties(mut self, properties: PhysicalDeviceProperties) -> Self { @@ -12745,7 +12549,7 @@ impl<'a> PhysicalDeviceProperties2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -12769,10 +12573,7 @@ impl<'a> PhysicalDeviceProperties2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -12780,10 +12581,7 @@ impl<'a> PhysicalDeviceProperties2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -12814,7 +12612,6 @@ impl ::core::default::Default for FormatProperties2<'_> { unsafe impl<'a> TaggedStructure for FormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_2; } -pub unsafe trait ExtendsFormatProperties2 {} impl<'a> FormatProperties2<'a> { #[inline] pub fn format_properties(mut self, format_properties: FormatProperties) -> Self { @@ -12830,7 +12627,7 @@ impl<'a> FormatProperties2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -12854,7 +12651,7 @@ impl<'a> FormatProperties2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -12862,7 +12659,7 @@ impl<'a> FormatProperties2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -12893,7 +12690,6 @@ impl ::core::default::Default for ImageFormatProperties2<'_> { unsafe impl<'a> TaggedStructure for ImageFormatProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_PROPERTIES_2; } -pub unsafe trait ExtendsImageFormatProperties2 {} impl<'a> ImageFormatProperties2<'a> { #[inline] pub fn image_format_properties( @@ -12912,7 +12708,7 @@ impl<'a> ImageFormatProperties2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -12936,10 +12732,7 @@ impl<'a> ImageFormatProperties2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -12947,10 +12740,7 @@ impl<'a> ImageFormatProperties2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -12989,7 +12779,6 @@ impl ::core::default::Default for PhysicalDeviceImageFormatInfo2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceImageFormatInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2; } -pub unsafe trait ExtendsPhysicalDeviceImageFormatInfo2 {} impl<'a> PhysicalDeviceImageFormatInfo2<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -13025,10 +12814,7 @@ impl<'a> PhysicalDeviceImageFormatInfo2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -13052,10 +12838,7 @@ impl<'a> PhysicalDeviceImageFormatInfo2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -13063,10 +12846,7 @@ impl<'a> PhysicalDeviceImageFormatInfo2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -13097,7 +12877,6 @@ impl ::core::default::Default for QueueFamilyProperties2<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_PROPERTIES_2; } -pub unsafe trait ExtendsQueueFamilyProperties2 {} impl<'a> QueueFamilyProperties2<'a> { #[inline] pub fn queue_family_properties( @@ -13116,7 +12895,7 @@ impl<'a> QueueFamilyProperties2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -13140,10 +12919,7 @@ impl<'a> QueueFamilyProperties2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -13151,10 +12927,7 @@ impl<'a> QueueFamilyProperties2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -13185,7 +12958,6 @@ impl ::core::default::Default for PhysicalDeviceMemoryProperties2<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryProperties2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2; } -pub unsafe trait ExtendsPhysicalDeviceMemoryProperties2 {} impl<'a> PhysicalDeviceMemoryProperties2<'a> { #[inline] pub fn memory_properties(mut self, memory_properties: PhysicalDeviceMemoryProperties) -> Self { @@ -13201,10 +12973,7 @@ impl<'a> PhysicalDeviceMemoryProperties2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -13228,10 +12997,7 @@ impl<'a> PhysicalDeviceMemoryProperties2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -13239,10 +13005,7 @@ impl<'a> PhysicalDeviceMemoryProperties2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -13370,7 +13133,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePushDescriptorPropertiesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePushDescriptorPropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDevicePushDescriptorPropertiesKHR<'_> +{ +} impl<'a> PhysicalDevicePushDescriptorPropertiesKHR<'a> { #[inline] pub fn max_push_descriptors(mut self, max_push_descriptors: u32) -> Self { @@ -13456,7 +13222,7 @@ impl ::core::default::Default for PhysicalDeviceDriverProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceDriverProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDriverProperties<'_> {} +unsafe impl Extends> for PhysicalDeviceDriverProperties<'_> {} impl<'a> PhysicalDeviceDriverProperties<'a> { #[inline] pub fn driver_id(mut self, driver_id: DriverId) -> Self { @@ -13520,7 +13286,7 @@ impl ::core::default::Default for PresentRegionsKHR<'_> { unsafe impl<'a> TaggedStructure for PresentRegionsKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_REGIONS_KHR; } -unsafe impl ExtendsPresentInfoKHR for PresentRegionsKHR<'_> {} +unsafe impl Extends> for PresentRegionsKHR<'_> {} impl<'a> PresentRegionsKHR<'a> { #[inline] pub fn regions(mut self, regions: &'a [PresentRegionKHR<'a>]) -> Self { @@ -13615,8 +13381,8 @@ impl ::core::default::Default for PhysicalDeviceVariablePointersFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVariablePointersFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVariablePointersFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVariablePointersFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceVariablePointersFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceVariablePointersFeatures<'_> {} impl<'a> PhysicalDeviceVariablePointersFeatures<'a> { #[inline] pub fn variable_pointers_storage_buffer( @@ -13695,7 +13461,10 @@ impl ::core::default::Default for PhysicalDeviceExternalImageFormatInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalImageFormatInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for PhysicalDeviceExternalImageFormatInfo<'_> {} +unsafe impl Extends> + for PhysicalDeviceExternalImageFormatInfo<'_> +{ +} impl<'a> PhysicalDeviceExternalImageFormatInfo<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -13730,7 +13499,7 @@ impl ::core::default::Default for ExternalImageFormatProperties<'_> { unsafe impl<'a> TaggedStructure for ExternalImageFormatProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES; } -unsafe impl ExtendsImageFormatProperties2 for ExternalImageFormatProperties<'_> {} +unsafe impl Extends> for ExternalImageFormatProperties<'_> {} impl<'a> ExternalImageFormatProperties<'a> { #[inline] pub fn external_memory_properties( @@ -13772,7 +13541,6 @@ impl ::core::default::Default for PhysicalDeviceExternalBufferInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalBufferInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO; } -pub unsafe trait ExtendsPhysicalDeviceExternalBufferInfo {} impl<'a> PhysicalDeviceExternalBufferInfo<'a> { #[inline] pub fn flags(mut self, flags: BufferCreateFlags) -> Self { @@ -13798,10 +13566,7 @@ impl<'a> PhysicalDeviceExternalBufferInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -13825,10 +13590,7 @@ impl<'a> PhysicalDeviceExternalBufferInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -13836,10 +13598,7 @@ impl<'a> PhysicalDeviceExternalBufferInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -13915,7 +13674,7 @@ impl ::core::default::Default for PhysicalDeviceIDProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceIDProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ID_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceIDProperties<'_> {} +unsafe impl Extends> for PhysicalDeviceIDProperties<'_> {} impl<'a> PhysicalDeviceIDProperties<'a> { #[inline] pub fn device_uuid(mut self, device_uuid: [u8; UUID_SIZE]) -> Self { @@ -13970,7 +13729,7 @@ impl ::core::default::Default for ExternalMemoryImageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryImageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO; } -unsafe impl ExtendsImageCreateInfo for ExternalMemoryImageCreateInfo<'_> {} +unsafe impl Extends> for ExternalMemoryImageCreateInfo<'_> {} impl<'a> ExternalMemoryImageCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -14005,7 +13764,7 @@ impl ::core::default::Default for ExternalMemoryBufferCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryBufferCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO; } -unsafe impl ExtendsBufferCreateInfo for ExternalMemoryBufferCreateInfo<'_> {} +unsafe impl Extends> for ExternalMemoryBufferCreateInfo<'_> {} impl<'a> ExternalMemoryBufferCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -14040,7 +13799,7 @@ impl ::core::default::Default for ExportMemoryAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryAllocateInfo<'_> {} +unsafe impl Extends> for ExportMemoryAllocateInfo<'_> {} impl<'a> ExportMemoryAllocateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalMemoryHandleTypeFlags) -> Self { @@ -14079,7 +13838,7 @@ impl ::core::default::Default for ImportMemoryWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryWin32HandleInfoKHR<'_> {} +unsafe impl Extends> for ImportMemoryWin32HandleInfoKHR<'_> {} impl<'a> ImportMemoryWin32HandleInfoKHR<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -14128,7 +13887,7 @@ impl ::core::default::Default for ExportMemoryWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ExportMemoryWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsMemoryAllocateInfo for ExportMemoryWin32HandleInfoKHR<'_> {} +unsafe impl Extends> for ExportMemoryWin32HandleInfoKHR<'_> {} impl<'a> ExportMemoryWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -14175,7 +13934,7 @@ impl ::core::default::Default for ImportMemoryZirconHandleInfoFUCHSIA<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryZirconHandleInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryZirconHandleInfoFUCHSIA<'_> {} +unsafe impl Extends> for ImportMemoryZirconHandleInfoFUCHSIA<'_> {} impl<'a> ImportMemoryZirconHandleInfoFUCHSIA<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -14367,7 +14126,7 @@ impl ::core::default::Default for ImportMemoryFdInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryFdInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_FD_INFO_KHR; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryFdInfoKHR<'_> {} +unsafe impl Extends> for ImportMemoryFdInfoKHR<'_> {} impl<'a> ImportMemoryFdInfoKHR<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -14494,8 +14253,8 @@ impl ::core::default::Default for Win32KeyedMutexAcquireReleaseInfoKHR<'_> { unsafe impl<'a> TaggedStructure for Win32KeyedMutexAcquireReleaseInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR; } -unsafe impl ExtendsSubmitInfo for Win32KeyedMutexAcquireReleaseInfoKHR<'_> {} -unsafe impl ExtendsSubmitInfo2 for Win32KeyedMutexAcquireReleaseInfoKHR<'_> {} +unsafe impl Extends> for Win32KeyedMutexAcquireReleaseInfoKHR<'_> {} +unsafe impl Extends> for Win32KeyedMutexAcquireReleaseInfoKHR<'_> {} impl<'a> Win32KeyedMutexAcquireReleaseInfoKHR<'a> { #[inline] pub fn acquire_syncs(mut self, acquire_syncs: &'a [DeviceMemory]) -> Self { @@ -14555,7 +14314,6 @@ impl ::core::default::Default for PhysicalDeviceExternalSemaphoreInfo<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalSemaphoreInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO; } -pub unsafe trait ExtendsPhysicalDeviceExternalSemaphoreInfo {} impl<'a> PhysicalDeviceExternalSemaphoreInfo<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalSemaphoreHandleTypeFlags) -> Self { @@ -14571,10 +14329,7 @@ impl<'a> PhysicalDeviceExternalSemaphoreInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -14598,10 +14353,7 @@ impl<'a> PhysicalDeviceExternalSemaphoreInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -14609,10 +14361,7 @@ impl<'a> PhysicalDeviceExternalSemaphoreInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -14700,7 +14449,7 @@ impl ::core::default::Default for ExportSemaphoreCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExportSemaphoreCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_CREATE_INFO; } -unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreCreateInfo<'_> {} +unsafe impl Extends> for ExportSemaphoreCreateInfo<'_> {} impl<'a> ExportSemaphoreCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalSemaphoreHandleTypeFlags) -> Self { @@ -14801,7 +14550,7 @@ impl ::core::default::Default for ExportSemaphoreWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ExportSemaphoreWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsSemaphoreCreateInfo for ExportSemaphoreWin32HandleInfoKHR<'_> {} +unsafe impl Extends> for ExportSemaphoreWin32HandleInfoKHR<'_> {} impl<'a> ExportSemaphoreWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -14852,7 +14601,7 @@ impl ::core::default::Default for D3D12FenceSubmitInfoKHR<'_> { unsafe impl<'a> TaggedStructure for D3D12FenceSubmitInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::D3D12_FENCE_SUBMIT_INFO_KHR; } -unsafe impl ExtendsSubmitInfo for D3D12FenceSubmitInfoKHR<'_> {} +unsafe impl Extends> for D3D12FenceSubmitInfoKHR<'_> {} impl<'a> D3D12FenceSubmitInfoKHR<'a> { #[inline] pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self { @@ -15219,7 +14968,7 @@ impl ::core::default::Default for ExportFenceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ExportFenceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_FENCE_CREATE_INFO; } -unsafe impl ExtendsFenceCreateInfo for ExportFenceCreateInfo<'_> {} +unsafe impl Extends> for ExportFenceCreateInfo<'_> {} impl<'a> ExportFenceCreateInfo<'a> { #[inline] pub fn handle_types(mut self, handle_types: ExternalFenceHandleTypeFlags) -> Self { @@ -15320,7 +15069,7 @@ impl ::core::default::Default for ExportFenceWin32HandleInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ExportFenceWin32HandleInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR; } -unsafe impl ExtendsFenceCreateInfo for ExportFenceWin32HandleInfoKHR<'_> {} +unsafe impl Extends> for ExportFenceWin32HandleInfoKHR<'_> {} impl<'a> ExportFenceWin32HandleInfoKHR<'a> { #[inline] pub fn attributes(mut self, attributes: &'a SECURITY_ATTRIBUTES) -> Self { @@ -15506,8 +15255,8 @@ impl ::core::default::Default for PhysicalDeviceMultiviewFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiviewFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceMultiviewFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceMultiviewFeatures<'_> {} impl<'a> PhysicalDeviceMultiviewFeatures<'a> { #[inline] pub fn multiview(mut self, multiview: bool) -> Self { @@ -15554,7 +15303,7 @@ impl ::core::default::Default for PhysicalDeviceMultiviewProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMultiviewProperties<'_> {} +unsafe impl Extends> for PhysicalDeviceMultiviewProperties<'_> {} impl<'a> PhysicalDeviceMultiviewProperties<'a> { #[inline] pub fn max_multiview_view_count(mut self, max_multiview_view_count: u32) -> Self { @@ -15604,7 +15353,7 @@ impl ::core::default::Default for RenderPassMultiviewCreateInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassMultiviewCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO; } -unsafe impl ExtendsRenderPassCreateInfo for RenderPassMultiviewCreateInfo<'_> {} +unsafe impl Extends> for RenderPassMultiviewCreateInfo<'_> {} impl<'a> RenderPassMultiviewCreateInfo<'a> { #[inline] pub fn view_masks(mut self, view_masks: &'a [u32]) -> Self { @@ -15864,7 +15613,7 @@ impl ::core::default::Default for SwapchainCounterCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainCounterCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainCounterCreateInfoEXT<'_> {} +unsafe impl Extends> for SwapchainCounterCreateInfoEXT<'_> {} impl<'a> SwapchainCounterCreateInfoEXT<'a> { #[inline] pub fn surface_counters(mut self, surface_counters: SurfaceCounterFlagsEXT) -> Self { @@ -15960,7 +15709,7 @@ impl ::core::default::Default for MemoryAllocateFlagsInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryAllocateFlagsInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_ALLOCATE_FLAGS_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryAllocateFlagsInfo<'_> {} +unsafe impl Extends> for MemoryAllocateFlagsInfo<'_> {} impl<'a> MemoryAllocateFlagsInfo<'a> { #[inline] pub fn flags(mut self, flags: MemoryAllocateFlags) -> Self { @@ -16004,7 +15753,6 @@ impl ::core::default::Default for BindBufferMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindBufferMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_INFO; } -pub unsafe trait ExtendsBindBufferMemoryInfo {} impl<'a> BindBufferMemoryInfo<'a> { #[inline] pub fn buffer(mut self, buffer: Buffer) -> Self { @@ -16030,7 +15778,7 @@ impl<'a> BindBufferMemoryInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -16054,10 +15802,7 @@ impl<'a> BindBufferMemoryInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -16065,10 +15810,7 @@ impl<'a> BindBufferMemoryInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -16101,7 +15843,7 @@ impl ::core::default::Default for BindBufferMemoryDeviceGroupInfo<'_> { unsafe impl<'a> TaggedStructure for BindBufferMemoryDeviceGroupInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO; } -unsafe impl ExtendsBindBufferMemoryInfo for BindBufferMemoryDeviceGroupInfo<'_> {} +unsafe impl Extends> for BindBufferMemoryDeviceGroupInfo<'_> {} impl<'a> BindBufferMemoryDeviceGroupInfo<'a> { #[inline] pub fn device_indices(mut self, device_indices: &'a [u32]) -> Self { @@ -16141,7 +15883,6 @@ impl ::core::default::Default for BindImageMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindImageMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_INFO; } -pub unsafe trait ExtendsBindImageMemoryInfo {} impl<'a> BindImageMemoryInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -16167,7 +15908,7 @@ impl<'a> BindImageMemoryInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -16191,10 +15932,7 @@ impl<'a> BindImageMemoryInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -16202,7 +15940,7 @@ impl<'a> BindImageMemoryInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -16239,7 +15977,7 @@ impl ::core::default::Default for BindImageMemoryDeviceGroupInfo<'_> { unsafe impl<'a> TaggedStructure for BindImageMemoryDeviceGroupInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO; } -unsafe impl ExtendsBindImageMemoryInfo for BindImageMemoryDeviceGroupInfo<'_> {} +unsafe impl Extends> for BindImageMemoryDeviceGroupInfo<'_> {} impl<'a> BindImageMemoryDeviceGroupInfo<'a> { #[inline] pub fn device_indices(mut self, device_indices: &'a [u32]) -> Self { @@ -16288,8 +16026,8 @@ impl ::core::default::Default for DeviceGroupRenderPassBeginInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupRenderPassBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO; } -unsafe impl ExtendsRenderPassBeginInfo for DeviceGroupRenderPassBeginInfo<'_> {} -unsafe impl ExtendsRenderingInfo for DeviceGroupRenderPassBeginInfo<'_> {} +unsafe impl Extends> for DeviceGroupRenderPassBeginInfo<'_> {} +unsafe impl Extends> for DeviceGroupRenderPassBeginInfo<'_> {} impl<'a> DeviceGroupRenderPassBeginInfo<'a> { #[inline] pub fn device_mask(mut self, device_mask: u32) -> Self { @@ -16330,7 +16068,7 @@ impl ::core::default::Default for DeviceGroupCommandBufferBeginInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupCommandBufferBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO; } -unsafe impl ExtendsCommandBufferBeginInfo for DeviceGroupCommandBufferBeginInfo<'_> {} +unsafe impl Extends> for DeviceGroupCommandBufferBeginInfo<'_> {} impl<'a> DeviceGroupCommandBufferBeginInfo<'a> { #[inline] pub fn device_mask(mut self, device_mask: u32) -> Self { @@ -16375,7 +16113,7 @@ impl ::core::default::Default for DeviceGroupSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_SUBMIT_INFO; } -unsafe impl ExtendsSubmitInfo for DeviceGroupSubmitInfo<'_> {} +unsafe impl Extends> for DeviceGroupSubmitInfo<'_> {} impl<'a> DeviceGroupSubmitInfo<'a> { #[inline] pub fn wait_semaphore_device_indices( @@ -16431,7 +16169,7 @@ impl ::core::default::Default for DeviceGroupBindSparseInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupBindSparseInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_BIND_SPARSE_INFO; } -unsafe impl ExtendsBindSparseInfo for DeviceGroupBindSparseInfo<'_> {} +unsafe impl Extends> for DeviceGroupBindSparseInfo<'_> {} impl<'a> DeviceGroupBindSparseInfo<'a> { #[inline] pub fn resource_device_index(mut self, resource_device_index: u32) -> Self { @@ -16512,7 +16250,7 @@ impl ::core::default::Default for ImageSwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for ImageSwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl ExtendsImageCreateInfo for ImageSwapchainCreateInfoKHR<'_> {} +unsafe impl Extends> for ImageSwapchainCreateInfoKHR<'_> {} impl<'a> ImageSwapchainCreateInfoKHR<'a> { #[inline] pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { @@ -16549,7 +16287,7 @@ impl ::core::default::Default for BindImageMemorySwapchainInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BindImageMemorySwapchainInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR; } -unsafe impl ExtendsBindImageMemoryInfo for BindImageMemorySwapchainInfoKHR<'_> {} +unsafe impl Extends> for BindImageMemorySwapchainInfoKHR<'_> {} impl<'a> BindImageMemorySwapchainInfoKHR<'a> { #[inline] pub fn swapchain(mut self, swapchain: SwapchainKHR) -> Self { @@ -16655,7 +16393,7 @@ impl ::core::default::Default for DeviceGroupPresentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupPresentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_INFO_KHR; } -unsafe impl ExtendsPresentInfoKHR for DeviceGroupPresentInfoKHR<'_> {} +unsafe impl Extends> for DeviceGroupPresentInfoKHR<'_> {} impl<'a> DeviceGroupPresentInfoKHR<'a> { #[inline] pub fn device_masks(mut self, device_masks: &'a [u32]) -> Self { @@ -16698,7 +16436,7 @@ impl ::core::default::Default for DeviceGroupDeviceCreateInfo<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupDeviceCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO; } -unsafe impl ExtendsDeviceCreateInfo for DeviceGroupDeviceCreateInfo<'_> {} +unsafe impl Extends> for DeviceGroupDeviceCreateInfo<'_> {} impl<'a> DeviceGroupDeviceCreateInfo<'a> { #[inline] pub fn physical_devices(mut self, physical_devices: &'a [PhysicalDevice]) -> Self { @@ -16734,7 +16472,7 @@ impl ::core::default::Default for DeviceGroupSwapchainCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for DeviceGroupSwapchainCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR; } -unsafe impl ExtendsSwapchainCreateInfoKHR for DeviceGroupSwapchainCreateInfoKHR<'_> {} +unsafe impl Extends> for DeviceGroupSwapchainCreateInfoKHR<'_> {} impl<'a> DeviceGroupSwapchainCreateInfoKHR<'a> { #[inline] pub fn modes(mut self, modes: DeviceGroupPresentModeFlagsKHR) -> Self { @@ -16917,8 +16655,8 @@ impl ::core::default::Default for PhysicalDevicePresentIdFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePresentIdFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentIdFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentIdFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePresentIdFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePresentIdFeaturesKHR<'_> {} impl<'a> PhysicalDevicePresentIdFeaturesKHR<'a> { #[inline] pub fn present_id(mut self, present_id: bool) -> Self { @@ -16955,7 +16693,7 @@ impl ::core::default::Default for PresentIdKHR<'_> { unsafe impl<'a> TaggedStructure for PresentIdKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_ID_KHR; } -unsafe impl ExtendsPresentInfoKHR for PresentIdKHR<'_> {} +unsafe impl Extends> for PresentIdKHR<'_> {} impl<'a> PresentIdKHR<'a> { #[inline] pub fn present_ids(mut self, present_ids: &'a [u64]) -> Self { @@ -16991,8 +16729,8 @@ impl ::core::default::Default for PhysicalDevicePresentWaitFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePresentWaitFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentWaitFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentWaitFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePresentWaitFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePresentWaitFeaturesKHR<'_> {} impl<'a> PhysicalDevicePresentWaitFeaturesKHR<'a> { #[inline] pub fn present_wait(mut self, present_wait: bool) -> Self { @@ -17111,7 +16849,7 @@ unsafe impl<'a> TaggedStructure for DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD; } -unsafe impl ExtendsSurfaceCapabilities2KHR for DisplayNativeHdrSurfaceCapabilitiesAMD<'_> {} +unsafe impl Extends> for DisplayNativeHdrSurfaceCapabilitiesAMD<'_> {} impl<'a> DisplayNativeHdrSurfaceCapabilitiesAMD<'a> { #[inline] pub fn local_dimming_support(mut self, local_dimming_support: bool) -> Self { @@ -17147,7 +16885,7 @@ unsafe impl<'a> TaggedStructure for SwapchainDisplayNativeHdrCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainDisplayNativeHdrCreateInfoAMD<'_> {} +unsafe impl Extends> for SwapchainDisplayNativeHdrCreateInfoAMD<'_> {} impl<'a> SwapchainDisplayNativeHdrCreateInfoAMD<'a> { #[inline] pub fn local_dimming_enable(mut self, local_dimming_enable: bool) -> Self { @@ -17238,7 +16976,7 @@ impl ::core::default::Default for PresentTimesInfoGOOGLE<'_> { unsafe impl<'a> TaggedStructure for PresentTimesInfoGOOGLE<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_TIMES_INFO_GOOGLE; } -unsafe impl ExtendsPresentInfoKHR for PresentTimesInfoGOOGLE<'_> {} +unsafe impl Extends> for PresentTimesInfoGOOGLE<'_> {} impl<'a> PresentTimesInfoGOOGLE<'a> { #[inline] pub fn times(mut self, times: &'a [PresentTimeGOOGLE]) -> Self { @@ -17444,7 +17182,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportWScalingStateCreateInfoNV<'a const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportWScalingStateCreateInfoNV<'_> { } @@ -17526,7 +17264,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportSwizzleStateCreateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportSwizzleStateCreateInfoNV<'_> { } @@ -17571,7 +17309,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDiscardRectanglePropertiesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDiscardRectanglePropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceDiscardRectanglePropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceDiscardRectanglePropertiesEXT<'a> { #[inline] pub fn max_discard_rectangles(mut self, max_discard_rectangles: u32) -> Self { @@ -17613,7 +17354,10 @@ unsafe impl<'a> TaggedStructure for PipelineDiscardRectangleStateCreateInfoEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineDiscardRectangleStateCreateInfoEXT<'_> {} +unsafe impl Extends> + for PipelineDiscardRectangleStateCreateInfoEXT<'_> +{ +} impl<'a> PipelineDiscardRectangleStateCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: PipelineDiscardRectangleStateCreateFlagsEXT) -> Self { @@ -17663,7 +17407,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewAttributesProp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'_> { } @@ -17734,7 +17478,7 @@ unsafe impl<'a> TaggedStructure for RenderPassInputAttachmentAspectCreateInfo<'a const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO; } -unsafe impl ExtendsRenderPassCreateInfo for RenderPassInputAttachmentAspectCreateInfo<'_> {} +unsafe impl Extends> for RenderPassInputAttachmentAspectCreateInfo<'_> {} impl<'a> RenderPassInputAttachmentAspectCreateInfo<'a> { #[inline] pub fn aspect_references( @@ -17773,7 +17517,6 @@ impl ::core::default::Default for PhysicalDeviceSurfaceInfo2KHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSurfaceInfo2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; } -pub unsafe trait ExtendsPhysicalDeviceSurfaceInfo2KHR {} impl<'a> PhysicalDeviceSurfaceInfo2KHR<'a> { #[inline] pub fn surface(mut self, surface: SurfaceKHR) -> Self { @@ -17789,10 +17532,7 @@ impl<'a> PhysicalDeviceSurfaceInfo2KHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -17816,10 +17556,7 @@ impl<'a> PhysicalDeviceSurfaceInfo2KHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -17827,10 +17564,7 @@ impl<'a> PhysicalDeviceSurfaceInfo2KHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -17861,7 +17595,6 @@ impl ::core::default::Default for SurfaceCapabilities2KHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceCapabilities2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_KHR; } -pub unsafe trait ExtendsSurfaceCapabilities2KHR {} impl<'a> SurfaceCapabilities2KHR<'a> { #[inline] pub fn surface_capabilities(mut self, surface_capabilities: SurfaceCapabilitiesKHR) -> Self { @@ -17877,7 +17610,7 @@ impl<'a> SurfaceCapabilities2KHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -17901,10 +17634,7 @@ impl<'a> SurfaceCapabilities2KHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -17912,10 +17642,7 @@ impl<'a> SurfaceCapabilities2KHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -17946,7 +17673,6 @@ impl ::core::default::Default for SurfaceFormat2KHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceFormat2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FORMAT_2_KHR; } -pub unsafe trait ExtendsSurfaceFormat2KHR {} impl<'a> SurfaceFormat2KHR<'a> { #[inline] pub fn surface_format(mut self, surface_format: SurfaceFormatKHR) -> Self { @@ -17962,7 +17688,7 @@ impl<'a> SurfaceFormat2KHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -17986,7 +17712,7 @@ impl<'a> SurfaceFormat2KHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -17994,7 +17720,7 @@ impl<'a> SurfaceFormat2KHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -18208,7 +17934,7 @@ impl ::core::default::Default for SharedPresentSurfaceCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for SharedPresentSurfaceCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SharedPresentSurfaceCapabilitiesKHR<'_> {} +unsafe impl Extends> for SharedPresentSurfaceCapabilitiesKHR<'_> {} impl<'a> SharedPresentSurfaceCapabilitiesKHR<'a> { #[inline] pub fn shared_present_supported_usage_flags( @@ -18252,8 +17978,8 @@ impl ::core::default::Default for PhysicalDevice16BitStorageFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevice16BitStorageFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice16BitStorageFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice16BitStorageFeatures<'_> {} +unsafe impl Extends> for PhysicalDevice16BitStorageFeatures<'_> {} +unsafe impl Extends> for PhysicalDevice16BitStorageFeatures<'_> {} impl<'a> PhysicalDevice16BitStorageFeatures<'a> { #[inline] pub fn storage_buffer16_bit_access(mut self, storage_buffer16_bit_access: bool) -> Self { @@ -18313,7 +18039,7 @@ impl ::core::default::Default for PhysicalDeviceSubgroupProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubgroupProperties<'_> {} +unsafe impl Extends> for PhysicalDeviceSubgroupProperties<'_> {} impl<'a> PhysicalDeviceSubgroupProperties<'a> { #[inline] pub fn subgroup_size(mut self, subgroup_size: u32) -> Self { @@ -18364,11 +18090,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupExtendedTypesFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'_> {} impl<'a> PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a> { #[inline] pub fn shader_subgroup_extended_types(mut self, shader_subgroup_extended_types: bool) -> Self { @@ -18471,7 +18200,6 @@ impl ::core::default::Default for ImageMemoryRequirementsInfo2<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryRequirementsInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2; } -pub unsafe trait ExtendsImageMemoryRequirementsInfo2 {} impl<'a> ImageMemoryRequirementsInfo2<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -18487,10 +18215,7 @@ impl<'a> ImageMemoryRequirementsInfo2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -18514,10 +18239,7 @@ impl<'a> ImageMemoryRequirementsInfo2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -18525,10 +18247,7 @@ impl<'a> ImageMemoryRequirementsInfo2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -18634,7 +18353,6 @@ impl ::core::default::Default for MemoryRequirements2<'_> { unsafe impl<'a> TaggedStructure for MemoryRequirements2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2; } -pub unsafe trait ExtendsMemoryRequirements2 {} impl<'a> MemoryRequirements2<'a> { #[inline] pub fn memory_requirements(mut self, memory_requirements: MemoryRequirements) -> Self { @@ -18650,7 +18368,7 @@ impl<'a> MemoryRequirements2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -18674,10 +18392,7 @@ impl<'a> MemoryRequirements2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -18685,7 +18400,7 @@ impl<'a> MemoryRequirements2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -18753,7 +18468,7 @@ impl ::core::default::Default for PhysicalDevicePointClippingProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevicePointClippingProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePointClippingProperties<'_> {} +unsafe impl Extends> for PhysicalDevicePointClippingProperties<'_> {} impl<'a> PhysicalDevicePointClippingProperties<'a> { #[inline] pub fn point_clipping_behavior( @@ -18793,7 +18508,7 @@ impl ::core::default::Default for MemoryDedicatedRequirements<'_> { unsafe impl<'a> TaggedStructure for MemoryDedicatedRequirements<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_REQUIREMENTS; } -unsafe impl ExtendsMemoryRequirements2 for MemoryDedicatedRequirements<'_> {} +unsafe impl Extends> for MemoryDedicatedRequirements<'_> {} impl<'a> MemoryDedicatedRequirements<'a> { #[inline] pub fn prefers_dedicated_allocation(mut self, prefers_dedicated_allocation: bool) -> Self { @@ -18835,7 +18550,7 @@ impl ::core::default::Default for MemoryDedicatedAllocateInfo<'_> { unsafe impl<'a> TaggedStructure for MemoryDedicatedAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryDedicatedAllocateInfo<'_> {} +unsafe impl Extends> for MemoryDedicatedAllocateInfo<'_> {} impl<'a> MemoryDedicatedAllocateInfo<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -18875,7 +18590,7 @@ impl ::core::default::Default for ImageViewUsageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageViewUsageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_USAGE_CREATE_INFO; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewUsageCreateInfo<'_> {} +unsafe impl Extends> for ImageViewUsageCreateInfo<'_> {} impl<'a> ImageViewUsageCreateInfo<'a> { #[inline] pub fn usage(mut self, usage: ImageUsageFlags) -> Self { @@ -18912,7 +18627,7 @@ impl ::core::default::Default for ImageViewSlicedCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImageViewSlicedCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SLICED_CREATE_INFO_EXT; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewSlicedCreateInfoEXT<'_> {} +unsafe impl Extends> for ImageViewSlicedCreateInfoEXT<'_> {} impl<'a> ImageViewSlicedCreateInfoEXT<'a> { #[inline] pub fn slice_offset(mut self, slice_offset: u32) -> Self { @@ -18953,7 +18668,7 @@ unsafe impl<'a> TaggedStructure for PipelineTessellationDomainOriginStateCreateI const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO; } -unsafe impl ExtendsPipelineTessellationStateCreateInfo +unsafe impl Extends> for PipelineTessellationDomainOriginStateCreateInfo<'_> { } @@ -18991,8 +18706,8 @@ impl ::core::default::Default for SamplerYcbcrConversionInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_INFO; } -unsafe impl ExtendsSamplerCreateInfo for SamplerYcbcrConversionInfo<'_> {} -unsafe impl ExtendsImageViewCreateInfo for SamplerYcbcrConversionInfo<'_> {} +unsafe impl Extends> for SamplerYcbcrConversionInfo<'_> {} +unsafe impl Extends> for SamplerYcbcrConversionInfo<'_> {} impl<'a> SamplerYcbcrConversionInfo<'a> { #[inline] pub fn conversion(mut self, conversion: SamplerYcbcrConversion) -> Self { @@ -19041,7 +18756,6 @@ impl ::core::default::Default for SamplerYcbcrConversionCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO; } -pub unsafe trait ExtendsSamplerYcbcrConversionCreateInfo {} impl<'a> SamplerYcbcrConversionCreateInfo<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -19092,10 +18806,7 @@ impl<'a> SamplerYcbcrConversionCreateInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -19119,10 +18830,7 @@ impl<'a> SamplerYcbcrConversionCreateInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -19130,10 +18838,7 @@ impl<'a> SamplerYcbcrConversionCreateInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -19164,7 +18869,7 @@ impl ::core::default::Default for BindImagePlaneMemoryInfo<'_> { unsafe impl<'a> TaggedStructure for BindImagePlaneMemoryInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_IMAGE_PLANE_MEMORY_INFO; } -unsafe impl ExtendsBindImageMemoryInfo for BindImagePlaneMemoryInfo<'_> {} +unsafe impl Extends> for BindImagePlaneMemoryInfo<'_> {} impl<'a> BindImagePlaneMemoryInfo<'a> { #[inline] pub fn plane_aspect(mut self, plane_aspect: ImageAspectFlags) -> Self { @@ -19199,7 +18904,7 @@ impl ::core::default::Default for ImagePlaneMemoryRequirementsInfo<'_> { unsafe impl<'a> TaggedStructure for ImagePlaneMemoryRequirementsInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO; } -unsafe impl ExtendsImageMemoryRequirementsInfo2 for ImagePlaneMemoryRequirementsInfo<'_> {} +unsafe impl Extends> for ImagePlaneMemoryRequirementsInfo<'_> {} impl<'a> ImagePlaneMemoryRequirementsInfo<'a> { #[inline] pub fn plane_aspect(mut self, plane_aspect: ImageAspectFlags) -> Self { @@ -19235,8 +18940,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSamplerYcbcrConversionFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSamplerYcbcrConversionFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSamplerYcbcrConversionFeatures<'_> {} +unsafe impl Extends> + for PhysicalDeviceSamplerYcbcrConversionFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSamplerYcbcrConversionFeatures<'_> {} impl<'a> PhysicalDeviceSamplerYcbcrConversionFeatures<'a> { #[inline] pub fn sampler_ycbcr_conversion(mut self, sampler_ycbcr_conversion: bool) -> Self { @@ -19272,7 +18980,10 @@ unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionImageFormatProperties< const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES; } -unsafe impl ExtendsImageFormatProperties2 for SamplerYcbcrConversionImageFormatProperties<'_> {} +unsafe impl Extends> + for SamplerYcbcrConversionImageFormatProperties<'_> +{ +} impl<'a> SamplerYcbcrConversionImageFormatProperties<'a> { #[inline] pub fn combined_image_sampler_descriptor_count( @@ -19310,7 +19021,7 @@ impl ::core::default::Default for TextureLODGatherFormatPropertiesAMD<'_> { unsafe impl<'a> TaggedStructure for TextureLODGatherFormatPropertiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD; } -unsafe impl ExtendsImageFormatProperties2 for TextureLODGatherFormatPropertiesAMD<'_> {} +unsafe impl Extends> for TextureLODGatherFormatPropertiesAMD<'_> {} impl<'a> TextureLODGatherFormatPropertiesAMD<'a> { #[inline] pub fn supports_texture_gather_lod_bias_amd( @@ -19396,7 +19107,7 @@ impl ::core::default::Default for ProtectedSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for ProtectedSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PROTECTED_SUBMIT_INFO; } -unsafe impl ExtendsSubmitInfo for ProtectedSubmitInfo<'_> {} +unsafe impl Extends> for ProtectedSubmitInfo<'_> {} impl<'a> ProtectedSubmitInfo<'a> { #[inline] pub fn protected_submit(mut self, protected_submit: bool) -> Self { @@ -19431,8 +19142,8 @@ impl ::core::default::Default for PhysicalDeviceProtectedMemoryFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceProtectedMemoryFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProtectedMemoryFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProtectedMemoryFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceProtectedMemoryFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceProtectedMemoryFeatures<'_> {} impl<'a> PhysicalDeviceProtectedMemoryFeatures<'a> { #[inline] pub fn protected_memory(mut self, protected_memory: bool) -> Self { @@ -19468,7 +19179,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceProtectedMemoryProperties<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceProtectedMemoryProperties<'_> {} +unsafe impl Extends> for PhysicalDeviceProtectedMemoryProperties<'_> {} impl<'a> PhysicalDeviceProtectedMemoryProperties<'a> { #[inline] pub fn protected_no_fault(mut self, protected_no_fault: bool) -> Self { @@ -19556,7 +19267,7 @@ unsafe impl<'a> TaggedStructure for PipelineCoverageToColorStateCreateInfoNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo +unsafe impl Extends> for PipelineCoverageToColorStateCreateInfoNV<'_> { } @@ -19607,7 +19318,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSamplerFilterMinmaxProperties< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSamplerFilterMinmaxProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceSamplerFilterMinmaxProperties<'_> +{ +} impl<'a> PhysicalDeviceSamplerFilterMinmaxProperties<'a> { #[inline] pub fn filter_minmax_single_component_formats( @@ -19680,8 +19394,8 @@ impl ::core::default::Default for SampleLocationsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SampleLocationsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLE_LOCATIONS_INFO_EXT; } -unsafe impl ExtendsImageMemoryBarrier for SampleLocationsInfoEXT<'_> {} -unsafe impl ExtendsImageMemoryBarrier2 for SampleLocationsInfoEXT<'_> {} +unsafe impl Extends> for SampleLocationsInfoEXT<'_> {} +unsafe impl Extends> for SampleLocationsInfoEXT<'_> {} impl<'a> SampleLocationsInfoEXT<'a> { #[inline] pub fn sample_locations_per_pixel( @@ -19787,7 +19501,7 @@ unsafe impl<'a> TaggedStructure for RenderPassSampleLocationsBeginInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT; } -unsafe impl ExtendsRenderPassBeginInfo for RenderPassSampleLocationsBeginInfoEXT<'_> {} +unsafe impl Extends> for RenderPassSampleLocationsBeginInfoEXT<'_> {} impl<'a> RenderPassSampleLocationsBeginInfoEXT<'a> { #[inline] pub fn attachment_initial_sample_locations( @@ -19839,7 +19553,7 @@ unsafe impl<'a> TaggedStructure for PipelineSampleLocationsStateCreateInfoEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo +unsafe impl Extends> for PipelineSampleLocationsStateCreateInfoEXT<'_> { } @@ -19894,7 +19608,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSampleLocationsPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSampleLocationsPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceSampleLocationsPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceSampleLocationsPropertiesEXT<'a> { #[inline] pub fn sample_location_sample_counts( @@ -19995,7 +19712,7 @@ impl ::core::default::Default for SamplerReductionModeCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SamplerReductionModeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO; } -unsafe impl ExtendsSamplerCreateInfo for SamplerReductionModeCreateInfo<'_> {} +unsafe impl Extends> for SamplerReductionModeCreateInfo<'_> {} impl<'a> SamplerReductionModeCreateInfo<'a> { #[inline] pub fn reduction_mode(mut self, reduction_mode: SamplerReductionMode) -> Self { @@ -20031,8 +19748,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBlendOperationAdvancedFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'_> {} impl<'a> PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a> { #[inline] pub fn advanced_blend_coherent_operations( @@ -20070,8 +19790,8 @@ impl ::core::default::Default for PhysicalDeviceMultiDrawFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiDrawFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMultiDrawFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiDrawFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMultiDrawFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMultiDrawFeaturesEXT<'_> {} impl<'a> PhysicalDeviceMultiDrawFeaturesEXT<'a> { #[inline] pub fn multi_draw(mut self, multi_draw: bool) -> Self { @@ -20117,7 +19837,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBlendOperationAdvancedProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'_> { } @@ -20202,7 +19922,7 @@ unsafe impl<'a> TaggedStructure for PipelineColorBlendAdvancedStateCreateInfoEXT const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineColorBlendStateCreateInfo +unsafe impl Extends> for PipelineColorBlendAdvancedStateCreateInfoEXT<'_> { } @@ -20253,8 +19973,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInlineUniformBlockFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceInlineUniformBlockFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInlineUniformBlockFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceInlineUniformBlockFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceInlineUniformBlockFeatures<'_> {} impl<'a> PhysicalDeviceInlineUniformBlockFeatures<'a> { #[inline] pub fn inline_uniform_block(mut self, inline_uniform_block: bool) -> Self { @@ -20307,7 +20027,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInlineUniformBlockProperties<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceInlineUniformBlockProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceInlineUniformBlockProperties<'_> +{ +} impl<'a> PhysicalDeviceInlineUniformBlockProperties<'a> { #[inline] pub fn max_inline_uniform_block_size(mut self, max_inline_uniform_block_size: u32) -> Self { @@ -20379,7 +20102,7 @@ impl ::core::default::Default for WriteDescriptorSetInlineUniformBlock<'_> { unsafe impl<'a> TaggedStructure for WriteDescriptorSetInlineUniformBlock<'a> { const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK; } -unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetInlineUniformBlock<'_> {} +unsafe impl Extends> for WriteDescriptorSetInlineUniformBlock<'_> {} impl<'a> WriteDescriptorSetInlineUniformBlock<'a> { #[inline] pub fn data(mut self, data: &'a [u8]) -> Self { @@ -20416,7 +20139,10 @@ unsafe impl<'a> TaggedStructure for DescriptorPoolInlineUniformBlockCreateInfo<' const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO; } -unsafe impl ExtendsDescriptorPoolCreateInfo for DescriptorPoolInlineUniformBlockCreateInfo<'_> {} +unsafe impl Extends> + for DescriptorPoolInlineUniformBlockCreateInfo<'_> +{ +} impl<'a> DescriptorPoolInlineUniformBlockCreateInfo<'a> { #[inline] pub fn max_inline_uniform_block_bindings( @@ -20463,7 +20189,7 @@ unsafe impl<'a> TaggedStructure for PipelineCoverageModulationStateCreateInfoNV< const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo +unsafe impl Extends> for PipelineCoverageModulationStateCreateInfoNV<'_> { } @@ -20525,9 +20251,9 @@ impl ::core::default::Default for ImageFormatListCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageFormatListCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_FORMAT_LIST_CREATE_INFO; } -unsafe impl ExtendsImageCreateInfo for ImageFormatListCreateInfo<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for ImageFormatListCreateInfo<'_> {} -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageFormatListCreateInfo<'_> {} +unsafe impl Extends> for ImageFormatListCreateInfo<'_> {} +unsafe impl Extends> for ImageFormatListCreateInfo<'_> {} +unsafe impl Extends> for ImageFormatListCreateInfo<'_> {} impl<'a> ImageFormatListCreateInfo<'a> { #[inline] pub fn view_formats(mut self, view_formats: &'a [Format]) -> Self { @@ -20608,8 +20334,11 @@ unsafe impl<'a> TaggedStructure for ShaderModuleValidationCacheCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT; } -unsafe impl ExtendsShaderModuleCreateInfo for ShaderModuleValidationCacheCreateInfoEXT<'_> {} -unsafe impl ExtendsPipelineShaderStageCreateInfo for ShaderModuleValidationCacheCreateInfoEXT<'_> {} +unsafe impl Extends> for ShaderModuleValidationCacheCreateInfoEXT<'_> {} +unsafe impl Extends> + for ShaderModuleValidationCacheCreateInfoEXT<'_> +{ +} impl<'a> ShaderModuleValidationCacheCreateInfoEXT<'a> { #[inline] pub fn validation_cache(mut self, validation_cache: ValidationCacheEXT) -> Self { @@ -20646,7 +20375,7 @@ impl ::core::default::Default for PhysicalDeviceMaintenance3Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance3Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance3Properties<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance3Properties<'_> {} impl<'a> PhysicalDeviceMaintenance3Properties<'a> { #[inline] pub fn max_per_set_descriptors(mut self, max_per_set_descriptors: u32) -> Self { @@ -20686,8 +20415,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance4Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance4Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance4Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance4Features<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance4Features<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance4Features<'_> {} impl<'a> PhysicalDeviceMaintenance4Features<'a> { #[inline] pub fn maintenance4(mut self, maintenance4: bool) -> Self { @@ -20722,7 +20451,7 @@ impl ::core::default::Default for PhysicalDeviceMaintenance4Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance4Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance4Properties<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance4Properties<'_> {} impl<'a> PhysicalDeviceMaintenance4Properties<'a> { #[inline] pub fn max_buffer_size(mut self, max_buffer_size: DeviceSize) -> Self { @@ -20757,8 +20486,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance5FeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance5FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance5FeaturesKHR<'_> {} impl<'a> PhysicalDeviceMaintenance5FeaturesKHR<'a> { #[inline] pub fn maintenance5(mut self, maintenance5: bool) -> Self { @@ -20804,7 +20533,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance5PropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance5PropertiesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance5PropertiesKHR<'_> {} impl<'a> PhysicalDeviceMaintenance5PropertiesKHR<'a> { #[inline] pub fn early_fragment_multisample_coverage_after_sample_counting( @@ -20883,8 +20612,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance6FeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance6FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance6FeaturesKHR<'_> {} impl<'a> PhysicalDeviceMaintenance6FeaturesKHR<'a> { #[inline] pub fn maintenance6(mut self, maintenance6: bool) -> Self { @@ -20924,7 +20653,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance6PropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance6PropertiesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance6PropertiesKHR<'_> {} impl<'a> PhysicalDeviceMaintenance6PropertiesKHR<'a> { #[inline] pub fn block_texel_view_compatible_multiple_layers( @@ -20981,8 +20710,8 @@ impl ::core::default::Default for PhysicalDeviceMaintenance7FeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7FeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance7FeaturesKHR<'_> {} impl<'a> PhysicalDeviceMaintenance7FeaturesKHR<'a> { #[inline] pub fn maintenance7(mut self, maintenance7: bool) -> Self { @@ -21032,7 +20761,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMaintenance7PropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceMaintenance7PropertiesKHR<'_> {} impl<'a> PhysicalDeviceMaintenance7PropertiesKHR<'a> { #[inline] pub fn robust_fragment_shading_rate_attachment_access( @@ -21136,7 +20865,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesListKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceLayeredApiPropertiesListKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceLayeredApiPropertiesListKHR<'_> +{ +} impl<'a> PhysicalDeviceLayeredApiPropertiesListKHR<'a> { #[inline] pub fn layered_apis( @@ -21193,7 +20925,6 @@ impl ::core::default::Default for PhysicalDeviceLayeredApiPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR; } -pub unsafe trait ExtendsPhysicalDeviceLayeredApiPropertiesKHR {} impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { #[inline] pub fn vendor_id(mut self, vendor_id: u32) -> Self { @@ -21230,10 +20961,7 @@ impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -21257,10 +20985,7 @@ impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -21268,10 +20993,7 @@ impl<'a> PhysicalDeviceLayeredApiPropertiesKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -21303,7 +21025,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredApiVulkanPropertiesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceLayeredApiPropertiesKHR +unsafe impl Extends> for PhysicalDeviceLayeredApiVulkanPropertiesKHR<'_> { } @@ -21399,7 +21121,6 @@ impl ::core::default::Default for DescriptorSetLayoutSupport<'_> { unsafe impl<'a> TaggedStructure for DescriptorSetLayoutSupport<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT; } -pub unsafe trait ExtendsDescriptorSetLayoutSupport {} impl<'a> DescriptorSetLayoutSupport<'a> { #[inline] pub fn supported(mut self, supported: bool) -> Self { @@ -21415,7 +21136,7 @@ impl<'a> DescriptorSetLayoutSupport<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -21439,10 +21160,7 @@ impl<'a> DescriptorSetLayoutSupport<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -21450,10 +21168,7 @@ impl<'a> DescriptorSetLayoutSupport<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -21485,8 +21200,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderDrawParametersFeatures<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderDrawParametersFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDrawParametersFeatures<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderDrawParametersFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderDrawParametersFeatures<'_> {} impl<'a> PhysicalDeviceShaderDrawParametersFeatures<'a> { #[inline] pub fn shader_draw_parameters(mut self, shader_draw_parameters: bool) -> Self { @@ -21524,8 +21242,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderFloat16Int8Features<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloat16Int8Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloat16Int8Features<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderFloat16Int8Features<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderFloat16Int8Features<'_> {} impl<'a> PhysicalDeviceShaderFloat16Int8Features<'a> { #[inline] pub fn shader_float16(mut self, shader_float16: bool) -> Self { @@ -21597,7 +21315,7 @@ impl ::core::default::Default for PhysicalDeviceFloatControlsProperties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceFloatControlsProperties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFloatControlsProperties<'_> {} +unsafe impl Extends> for PhysicalDeviceFloatControlsProperties<'_> {} impl<'a> PhysicalDeviceFloatControlsProperties<'a> { #[inline] pub fn denorm_behavior_independence( @@ -21757,8 +21475,8 @@ impl ::core::default::Default for PhysicalDeviceHostQueryResetFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceHostQueryResetFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostQueryResetFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostQueryResetFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceHostQueryResetFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceHostQueryResetFeatures<'_> {} impl<'a> PhysicalDeviceHostQueryResetFeatures<'a> { #[inline] pub fn host_query_reset(mut self, host_query_reset: bool) -> Self { @@ -22050,7 +21768,7 @@ unsafe impl<'a> TaggedStructure for DeviceQueueGlobalPriorityCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR; } -unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueGlobalPriorityCreateInfoKHR<'_> {} +unsafe impl Extends> for DeviceQueueGlobalPriorityCreateInfoKHR<'_> {} impl<'a> DeviceQueueGlobalPriorityCreateInfoKHR<'a> { #[inline] pub fn global_priority(mut self, global_priority: QueueGlobalPriorityKHR) -> Self { @@ -22086,8 +21804,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceGlobalPriorityQueryFeaturesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'_> {} impl<'a> PhysicalDeviceGlobalPriorityQueryFeaturesKHR<'a> { #[inline] pub fn global_priority_query(mut self, global_priority_query: bool) -> Self { @@ -22135,7 +21856,7 @@ unsafe impl<'a> TaggedStructure for QueueFamilyGlobalPriorityPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyGlobalPriorityPropertiesKHR<'_> {} +unsafe impl Extends> for QueueFamilyGlobalPriorityPropertiesKHR<'_> {} impl<'a> QueueFamilyGlobalPriorityPropertiesKHR<'a> { #[inline] pub fn priorities(mut self, priorities: &'_ [QueueGlobalPriorityKHR]) -> Self { @@ -22179,7 +21900,7 @@ impl ::core::default::Default for DebugUtilsObjectNameInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsObjectNameInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT; } -unsafe impl ExtendsPipelineShaderStageCreateInfo for DebugUtilsObjectNameInfoEXT<'_> {} +unsafe impl Extends> for DebugUtilsObjectNameInfoEXT<'_> {} impl<'a> DebugUtilsObjectNameInfoEXT<'a> { #[inline] pub fn object_handle(mut self, object_handle: T) -> Self { @@ -22355,7 +22076,7 @@ impl ::core::default::Default for DebugUtilsMessengerCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for DebugUtilsMessengerCreateInfoEXT<'_> {} +unsafe impl Extends> for DebugUtilsMessengerCreateInfoEXT<'_> {} impl<'a> DebugUtilsMessengerCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugUtilsMessengerCreateFlagsEXT) -> Self { @@ -22431,7 +22152,6 @@ impl ::core::default::Default for DebugUtilsMessengerCallbackDataEXT<'_> { unsafe impl<'a> TaggedStructure for DebugUtilsMessengerCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT; } -pub unsafe trait ExtendsDebugUtilsMessengerCallbackDataEXT {} impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { #[inline] pub fn flags(mut self, flags: DebugUtilsMessengerCallbackDataFlagsEXT) -> Self { @@ -22496,10 +22216,7 @@ impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -22523,10 +22240,7 @@ impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -22534,10 +22248,7 @@ impl<'a> DebugUtilsMessengerCallbackDataEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -22569,8 +22280,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceMemoryReportFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDeviceMemoryReportFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a> { #[inline] pub fn device_memory_report(mut self, device_memory_report: bool) -> Self { @@ -22624,7 +22338,7 @@ unsafe impl<'a> TaggedStructure for DeviceDeviceMemoryReportCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT; } -unsafe impl ExtendsDeviceCreateInfo for DeviceDeviceMemoryReportCreateInfoEXT<'_> {} +unsafe impl Extends> for DeviceDeviceMemoryReportCreateInfoEXT<'_> {} impl<'a> DeviceDeviceMemoryReportCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: DeviceMemoryReportFlagsEXT) -> Self { @@ -22746,7 +22460,7 @@ impl ::core::default::Default for ImportMemoryHostPointerInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryHostPointerInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryHostPointerInfoEXT<'_> {} +unsafe impl Extends> for ImportMemoryHostPointerInfoEXT<'_> {} impl<'a> ImportMemoryHostPointerInfoEXT<'a> { #[inline] pub fn handle_type(mut self, handle_type: ExternalMemoryHandleTypeFlags) -> Self { @@ -22821,7 +22535,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryHostPropertiesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceExternalMemoryHostPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceExternalMemoryHostPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceExternalMemoryHostPropertiesEXT<'a> { #[inline] pub fn min_imported_host_pointer_alignment( @@ -22876,7 +22593,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceConservativeRasterizationPrope const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceConservativeRasterizationPropertiesEXT<'_> { } @@ -23036,7 +22753,7 @@ impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesAMD<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCorePropertiesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesAMD<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderCorePropertiesAMD<'_> {} impl<'a> PhysicalDeviceShaderCorePropertiesAMD<'a> { #[inline] pub fn shader_engine_count(mut self, shader_engine_count: u32) -> Self { @@ -23139,7 +22856,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreProperties2AMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreProperties2AMD<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderCoreProperties2AMD<'_> {} impl<'a> PhysicalDeviceShaderCoreProperties2AMD<'a> { #[inline] pub fn shader_core_features( @@ -23187,7 +22904,7 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationConservativeStateCreate const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo +unsafe impl Extends> for PipelineRasterizationConservativeStateCreateInfoEXT<'_> { } @@ -23280,8 +22997,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorIndexingFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorIndexingFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorIndexingFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceDescriptorIndexingFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceDescriptorIndexingFeatures<'_> {} impl<'a> PhysicalDeviceDescriptorIndexingFeatures<'a> { #[inline] pub fn shader_input_attachment_array_dynamic_indexing( @@ -23531,7 +23248,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorIndexingProperties<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDescriptorIndexingProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceDescriptorIndexingProperties<'_> +{ +} impl<'a> PhysicalDeviceDescriptorIndexingProperties<'a> { #[inline] pub fn max_update_after_bind_descriptors_in_all_pools( @@ -23765,7 +23485,10 @@ unsafe impl<'a> TaggedStructure for DescriptorSetLayoutBindingFlagsCreateInfo<'a const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO; } -unsafe impl ExtendsDescriptorSetLayoutCreateInfo for DescriptorSetLayoutBindingFlagsCreateInfo<'_> {} +unsafe impl Extends> + for DescriptorSetLayoutBindingFlagsCreateInfo<'_> +{ +} impl<'a> DescriptorSetLayoutBindingFlagsCreateInfo<'a> { #[inline] pub fn binding_flags(mut self, binding_flags: &'a [DescriptorBindingFlags]) -> Self { @@ -23804,7 +23527,7 @@ unsafe impl<'a> TaggedStructure for DescriptorSetVariableDescriptorCountAllocate const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO; } -unsafe impl ExtendsDescriptorSetAllocateInfo +unsafe impl Extends> for DescriptorSetVariableDescriptorCountAllocateInfo<'_> { } @@ -23844,7 +23567,7 @@ unsafe impl<'a> TaggedStructure for DescriptorSetVariableDescriptorCountLayoutSu const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT; } -unsafe impl ExtendsDescriptorSetLayoutSupport +unsafe impl Extends> for DescriptorSetVariableDescriptorCountLayoutSupport<'_> { } @@ -23898,7 +23621,6 @@ impl ::core::default::Default for AttachmentDescription2<'_> { unsafe impl<'a> TaggedStructure for AttachmentDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_2; } -pub unsafe trait ExtendsAttachmentDescription2 {} impl<'a> AttachmentDescription2<'a> { #[inline] pub fn flags(mut self, flags: AttachmentDescriptionFlags) -> Self { @@ -23954,7 +23676,7 @@ impl<'a> AttachmentDescription2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -23978,10 +23700,7 @@ impl<'a> AttachmentDescription2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -23989,10 +23708,7 @@ impl<'a> AttachmentDescription2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -24027,7 +23743,6 @@ impl ::core::default::Default for AttachmentReference2<'_> { unsafe impl<'a> TaggedStructure for AttachmentReference2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_2; } -pub unsafe trait ExtendsAttachmentReference2 {} impl<'a> AttachmentReference2<'a> { #[inline] pub fn attachment(mut self, attachment: u32) -> Self { @@ -24053,7 +23768,7 @@ impl<'a> AttachmentReference2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -24077,10 +23792,7 @@ impl<'a> AttachmentReference2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -24088,10 +23800,7 @@ impl<'a> AttachmentReference2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -24142,7 +23851,6 @@ impl ::core::default::Default for SubpassDescription2<'_> { unsafe impl<'a> TaggedStructure for SubpassDescription2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_2; } -pub unsafe trait ExtendsSubpassDescription2 {} impl<'a> SubpassDescription2<'a> { #[inline] pub fn flags(mut self, flags: SubpassDescriptionFlags) -> Self { @@ -24203,7 +23911,7 @@ impl<'a> SubpassDescription2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -24227,10 +23935,7 @@ impl<'a> SubpassDescription2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -24238,7 +23943,7 @@ impl<'a> SubpassDescription2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -24283,7 +23988,6 @@ impl ::core::default::Default for SubpassDependency2<'_> { unsafe impl<'a> TaggedStructure for SubpassDependency2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DEPENDENCY_2; } -pub unsafe trait ExtendsSubpassDependency2 {} impl<'a> SubpassDependency2<'a> { #[inline] pub fn src_subpass(mut self, src_subpass: u32) -> Self { @@ -24334,7 +24038,7 @@ impl<'a> SubpassDependency2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -24358,7 +24062,7 @@ impl<'a> SubpassDependency2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -24366,7 +24070,7 @@ impl<'a> SubpassDependency2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -24413,7 +24117,6 @@ impl ::core::default::Default for RenderPassCreateInfo2<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreateInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO_2; } -pub unsafe trait ExtendsRenderPassCreateInfo2 {} impl<'a> RenderPassCreateInfo2<'a> { #[inline] pub fn flags(mut self, flags: RenderPassCreateFlags) -> Self { @@ -24453,7 +24156,7 @@ impl<'a> RenderPassCreateInfo2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -24477,10 +24180,7 @@ impl<'a> RenderPassCreateInfo2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -24488,10 +24188,7 @@ impl<'a> RenderPassCreateInfo2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -24554,7 +24251,6 @@ impl ::core::default::Default for SubpassEndInfo<'_> { unsafe impl<'a> TaggedStructure for SubpassEndInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_END_INFO; } -pub unsafe trait ExtendsSubpassEndInfo {} impl<'a> SubpassEndInfo<'a> { #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] #[doc = r" method only exists on structs that can be passed to a function directly. Only"] @@ -24565,7 +24261,7 @@ impl<'a> SubpassEndInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -24589,7 +24285,7 @@ impl<'a> SubpassEndInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -24597,7 +24293,7 @@ impl<'a> SubpassEndInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -24629,8 +24325,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTimelineSemaphoreFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTimelineSemaphoreFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTimelineSemaphoreFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceTimelineSemaphoreFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceTimelineSemaphoreFeatures<'_> {} impl<'a> PhysicalDeviceTimelineSemaphoreFeatures<'a> { #[inline] pub fn timeline_semaphore(mut self, timeline_semaphore: bool) -> Self { @@ -24666,7 +24362,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTimelineSemaphoreProperties<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTimelineSemaphoreProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceTimelineSemaphoreProperties<'_> +{ +} impl<'a> PhysicalDeviceTimelineSemaphoreProperties<'a> { #[inline] pub fn max_timeline_semaphore_value_difference( @@ -24706,8 +24405,8 @@ impl ::core::default::Default for SemaphoreTypeCreateInfo<'_> { unsafe impl<'a> TaggedStructure for SemaphoreTypeCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SEMAPHORE_TYPE_CREATE_INFO; } -unsafe impl ExtendsSemaphoreCreateInfo for SemaphoreTypeCreateInfo<'_> {} -unsafe impl ExtendsPhysicalDeviceExternalSemaphoreInfo for SemaphoreTypeCreateInfo<'_> {} +unsafe impl Extends> for SemaphoreTypeCreateInfo<'_> {} +unsafe impl Extends> for SemaphoreTypeCreateInfo<'_> {} impl<'a> SemaphoreTypeCreateInfo<'a> { #[inline] pub fn semaphore_type(mut self, semaphore_type: SemaphoreType) -> Self { @@ -24753,8 +24452,8 @@ impl ::core::default::Default for TimelineSemaphoreSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for TimelineSemaphoreSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO; } -unsafe impl ExtendsSubmitInfo for TimelineSemaphoreSubmitInfo<'_> {} -unsafe impl ExtendsBindSparseInfo for TimelineSemaphoreSubmitInfo<'_> {} +unsafe impl Extends> for TimelineSemaphoreSubmitInfo<'_> {} +unsafe impl Extends> for TimelineSemaphoreSubmitInfo<'_> {} impl<'a> TimelineSemaphoreSubmitInfo<'a> { #[inline] pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self { @@ -24913,7 +24612,7 @@ unsafe impl<'a> TaggedStructure for PipelineVertexInputDivisorStateCreateInfoKHR const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR; } -unsafe impl ExtendsPipelineVertexInputStateCreateInfo +unsafe impl Extends> for PipelineVertexInputDivisorStateCreateInfoKHR<'_> { } @@ -24956,7 +24655,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'_> { } @@ -24997,7 +24696,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceVertexAttributeDivisorPropertiesKHR<'_> { } @@ -25050,7 +24749,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePCIBusInfoPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePCIBusInfoPropertiesEXT<'_> {} +unsafe impl Extends> for PhysicalDevicePCIBusInfoPropertiesEXT<'_> {} impl<'a> PhysicalDevicePCIBusInfoPropertiesEXT<'a> { #[inline] pub fn pci_domain(mut self, pci_domain: u32) -> Self { @@ -25101,7 +24800,7 @@ unsafe impl<'a> TaggedStructure for ImportAndroidHardwareBufferInfoANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID; } -unsafe impl ExtendsMemoryAllocateInfo for ImportAndroidHardwareBufferInfoANDROID<'_> {} +unsafe impl Extends> for ImportAndroidHardwareBufferInfoANDROID<'_> {} impl<'a> ImportAndroidHardwareBufferInfoANDROID<'a> { #[inline] pub fn buffer(mut self, buffer: *mut AHardwareBuffer) -> Self { @@ -25136,7 +24835,7 @@ impl ::core::default::Default for AndroidHardwareBufferUsageANDROID<'_> { unsafe impl<'a> TaggedStructure for AndroidHardwareBufferUsageANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID; } -unsafe impl ExtendsImageFormatProperties2 for AndroidHardwareBufferUsageANDROID<'_> {} +unsafe impl Extends> for AndroidHardwareBufferUsageANDROID<'_> {} impl<'a> AndroidHardwareBufferUsageANDROID<'a> { #[inline] pub fn android_hardware_buffer_usage(mut self, android_hardware_buffer_usage: u64) -> Self { @@ -25173,7 +24872,6 @@ impl ::core::default::Default for AndroidHardwareBufferPropertiesANDROID<'_> { unsafe impl<'a> TaggedStructure for AndroidHardwareBufferPropertiesANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID; } -pub unsafe trait ExtendsAndroidHardwareBufferPropertiesANDROID {} impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -25194,10 +24892,7 @@ impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -25221,10 +24916,7 @@ impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -25232,10 +24924,7 @@ impl<'a> AndroidHardwareBufferPropertiesANDROID<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -25316,7 +25005,7 @@ unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatPropertiesANDROID const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID; } -unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID +unsafe impl Extends> for AndroidHardwareBufferFormatPropertiesANDROID<'_> { } @@ -25396,7 +25085,7 @@ unsafe impl<'a> TaggedStructure for CommandBufferInheritanceConditionalRendering const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT; } -unsafe impl ExtendsCommandBufferInheritanceInfo +unsafe impl Extends> for CommandBufferInheritanceConditionalRenderingInfoEXT<'_> { } @@ -25434,11 +25123,11 @@ impl ::core::default::Default for ExternalFormatANDROID<'_> { unsafe impl<'a> TaggedStructure for ExternalFormatANDROID<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_ANDROID; } -unsafe impl ExtendsImageCreateInfo for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsAttachmentDescription2 for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for ExternalFormatANDROID<'_> {} -unsafe impl ExtendsCommandBufferInheritanceInfo for ExternalFormatANDROID<'_> {} +unsafe impl Extends> for ExternalFormatANDROID<'_> {} +unsafe impl Extends> for ExternalFormatANDROID<'_> {} +unsafe impl Extends> for ExternalFormatANDROID<'_> {} +unsafe impl Extends> for ExternalFormatANDROID<'_> {} +unsafe impl Extends> for ExternalFormatANDROID<'_> {} impl<'a> ExternalFormatANDROID<'a> { #[inline] pub fn external_format(mut self, external_format: u64) -> Self { @@ -25477,8 +25166,8 @@ impl ::core::default::Default for PhysicalDevice8BitStorageFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevice8BitStorageFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice8BitStorageFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice8BitStorageFeatures<'_> {} +unsafe impl Extends> for PhysicalDevice8BitStorageFeatures<'_> {} +unsafe impl Extends> for PhysicalDevice8BitStorageFeatures<'_> {} impl<'a> PhysicalDevice8BitStorageFeatures<'a> { #[inline] pub fn storage_buffer8_bit_access(mut self, storage_buffer8_bit_access: bool) -> Self { @@ -25529,8 +25218,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceConditionalRenderingFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceConditionalRenderingFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceConditionalRenderingFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceConditionalRenderingFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceConditionalRenderingFeaturesEXT<'_> {} impl<'a> PhysicalDeviceConditionalRenderingFeaturesEXT<'a> { #[inline] pub fn conditional_rendering(mut self, conditional_rendering: bool) -> Self { @@ -25578,8 +25270,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkanMemoryModelFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkanMemoryModelFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkanMemoryModelFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkanMemoryModelFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkanMemoryModelFeatures<'_> {} impl<'a> PhysicalDeviceVulkanMemoryModelFeatures<'a> { #[inline] pub fn vulkan_memory_model(mut self, vulkan_memory_model: bool) -> Self { @@ -25634,8 +25326,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicInt64Features<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicInt64Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicInt64Features<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderAtomicInt64Features<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderAtomicInt64Features<'_> {} impl<'a> PhysicalDeviceShaderAtomicInt64Features<'a> { #[inline] pub fn shader_buffer_int64_atomics(mut self, shader_buffer_int64_atomics: bool) -> Self { @@ -25698,8 +25390,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloatFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderAtomicFloatFeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a> { #[inline] pub fn shader_buffer_float32_atomics(mut self, shader_buffer_float32_atomics: bool) -> Self { @@ -25830,8 +25525,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloat2FeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a> { #[inline] pub fn shader_buffer_float16_atomics(mut self, shader_buffer_float16_atomics: bool) -> Self { @@ -25954,8 +25652,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexAttributeDivisorFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'_> {} impl<'a> PhysicalDeviceVertexAttributeDivisorFeaturesKHR<'a> { #[inline] pub fn vertex_attribute_instance_rate_divisor( @@ -26002,7 +25703,7 @@ impl ::core::default::Default for QueueFamilyCheckpointPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyCheckpointPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointPropertiesNV<'_> {} +unsafe impl Extends> for QueueFamilyCheckpointPropertiesNV<'_> {} impl<'a> QueueFamilyCheckpointPropertiesNV<'a> { #[inline] pub fn checkpoint_execution_stage_mask( @@ -26088,7 +25789,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthStencilResolveProperties< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDepthStencilResolveProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceDepthStencilResolveProperties<'_> +{ +} impl<'a> PhysicalDeviceDepthStencilResolveProperties<'a> { #[inline] pub fn supported_depth_resolve_modes( @@ -26148,7 +25852,7 @@ impl ::core::default::Default for SubpassDescriptionDepthStencilResolve<'_> { unsafe impl<'a> TaggedStructure for SubpassDescriptionDepthStencilResolve<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE; } -unsafe impl ExtendsSubpassDescription2 for SubpassDescriptionDepthStencilResolve<'_> {} +unsafe impl Extends> for SubpassDescriptionDepthStencilResolve<'_> {} impl<'a> SubpassDescriptionDepthStencilResolve<'a> { #[inline] pub fn depth_resolve_mode(mut self, depth_resolve_mode: ResolveModeFlags) -> Self { @@ -26196,7 +25900,7 @@ impl ::core::default::Default for ImageViewASTCDecodeModeEXT<'_> { unsafe impl<'a> TaggedStructure for ImageViewASTCDecodeModeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewASTCDecodeModeEXT<'_> {} +unsafe impl Extends> for ImageViewASTCDecodeModeEXT<'_> {} impl<'a> ImageViewASTCDecodeModeEXT<'a> { #[inline] pub fn decode_mode(mut self, decode_mode: Format) -> Self { @@ -26231,8 +25935,8 @@ impl ::core::default::Default for PhysicalDeviceASTCDecodeFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceASTCDecodeFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceASTCDecodeFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceASTCDecodeFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceASTCDecodeFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceASTCDecodeFeaturesEXT<'_> {} impl<'a> PhysicalDeviceASTCDecodeFeaturesEXT<'a> { #[inline] pub fn decode_mode_shared_exponent(mut self, decode_mode_shared_exponent: bool) -> Self { @@ -26270,8 +25974,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTransformFeedbackFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceTransformFeedbackFeaturesEXT<'_> {} impl<'a> PhysicalDeviceTransformFeedbackFeaturesEXT<'a> { #[inline] pub fn transform_feedback(mut self, transform_feedback: bool) -> Self { @@ -26330,7 +26037,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTransformFeedbackPropertiesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTransformFeedbackPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceTransformFeedbackPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceTransformFeedbackPropertiesEXT<'a> { #[inline] pub fn max_transform_feedback_streams(mut self, max_transform_feedback_streams: u32) -> Self { @@ -26433,7 +26143,7 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationStateStreamCreateInfoEX const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo +unsafe impl Extends> for PipelineRasterizationStateStreamCreateInfoEXT<'_> { } @@ -26477,11 +26187,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRepresentativeFragmentTestFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'_> {} impl<'a> PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a> { #[inline] pub fn representative_fragment_test(mut self, representative_fragment_test: bool) -> Self { @@ -26517,7 +26230,7 @@ unsafe impl<'a> TaggedStructure for PipelineRepresentativeFragmentTestStateCreat const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsGraphicsPipelineCreateInfo +unsafe impl Extends> for PipelineRepresentativeFragmentTestStateCreateInfoNV<'_> { } @@ -26559,8 +26272,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExclusiveScissorFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExclusiveScissorFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExclusiveScissorFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceExclusiveScissorFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceExclusiveScissorFeaturesNV<'_> {} impl<'a> PhysicalDeviceExclusiveScissorFeaturesNV<'a> { #[inline] pub fn exclusive_scissor(mut self, exclusive_scissor: bool) -> Self { @@ -26598,7 +26311,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportExclusiveScissorStateCreateI const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportExclusiveScissorStateCreateInfoNV<'_> { } @@ -26638,8 +26351,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCornerSampledImageFeaturesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCornerSampledImageFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCornerSampledImageFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceCornerSampledImageFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCornerSampledImageFeaturesNV<'_> {} impl<'a> PhysicalDeviceCornerSampledImageFeaturesNV<'a> { #[inline] pub fn corner_sampled_image(mut self, corner_sampled_image: bool) -> Self { @@ -26677,11 +26393,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'_> {} impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a> { #[inline] pub fn compute_derivative_group_quads(mut self, compute_derivative_group_quads: bool) -> Self { @@ -26725,7 +26444,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceComputeShaderDerivativesProper const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'_> { } @@ -26767,8 +26486,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderImageFootprintFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderImageFootprintFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageFootprintFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderImageFootprintFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderImageFootprintFeaturesNV<'_> {} impl<'a> PhysicalDeviceShaderImageFootprintFeaturesNV<'a> { #[inline] pub fn image_footprint(mut self, image_footprint: bool) -> Self { @@ -26804,11 +26526,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDedicatedAllocationImageAliasi const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'_> { } @@ -26850,8 +26572,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCopyMemoryIndirectFeaturesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCopyMemoryIndirectFeaturesNV<'_> {} impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a> { #[inline] pub fn indirect_copy(mut self, indirect_copy: bool) -> Self { @@ -26887,7 +26612,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCopyMemoryIndirectPropertiesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceCopyMemoryIndirectPropertiesNV<'_> +{ +} impl<'a> PhysicalDeviceCopyMemoryIndirectPropertiesNV<'a> { #[inline] pub fn supported_queues(mut self, supported_queues: QueueFlags) -> Self { @@ -26923,8 +26651,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryDecompressionFeaturesNV< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMemoryDecompressionFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryDecompressionFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceMemoryDecompressionFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceMemoryDecompressionFeaturesNV<'_> {} impl<'a> PhysicalDeviceMemoryDecompressionFeaturesNV<'a> { #[inline] pub fn memory_decompression(mut self, memory_decompression: bool) -> Self { @@ -26962,7 +26693,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryDecompressionPropertiesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMemoryDecompressionPropertiesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceMemoryDecompressionPropertiesNV<'_> +{ +} impl<'a> PhysicalDeviceMemoryDecompressionPropertiesNV<'a> { #[inline] pub fn decompression_methods( @@ -27046,7 +26780,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportShadingRateImageStateCreateI const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportShadingRateImageStateCreateInfoNV<'_> { } @@ -27096,8 +26830,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShadingRateImageFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShadingRateImageFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShadingRateImageFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceShadingRateImageFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceShadingRateImageFeaturesNV<'_> {} impl<'a> PhysicalDeviceShadingRateImageFeaturesNV<'a> { #[inline] pub fn shading_rate_image(mut self, shading_rate_image: bool) -> Self { @@ -27145,7 +26879,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShadingRateImagePropertiesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShadingRateImagePropertiesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceShadingRateImagePropertiesNV<'_> +{ +} impl<'a> PhysicalDeviceShadingRateImagePropertiesNV<'a> { #[inline] pub fn shading_rate_texel_size(mut self, shading_rate_texel_size: Extent2D) -> Self { @@ -27191,8 +26928,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInvocationMaskFeaturesHUAWEI<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> {} +unsafe impl Extends> + for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceInvocationMaskFeaturesHUAWEI<'_> {} impl<'a> PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a> { #[inline] pub fn invocation_mask(mut self, invocation_mask: bool) -> Self { @@ -27303,7 +27043,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportCoarseSampleOrderStateCreate const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportCoarseSampleOrderStateCreateInfoNV<'_> { } @@ -27352,8 +27092,8 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderFeaturesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceMeshShaderFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceMeshShaderFeaturesNV<'_> {} impl<'a> PhysicalDeviceMeshShaderFeaturesNV<'a> { #[inline] pub fn task_shader(mut self, task_shader: bool) -> Self { @@ -27417,7 +27157,7 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceMeshShaderPropertiesNV<'_> {} impl<'a> PhysicalDeviceMeshShaderPropertiesNV<'a> { #[inline] pub fn max_draw_mesh_tasks_count(mut self, max_draw_mesh_tasks_count: u32) -> Self { @@ -27547,8 +27287,8 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMeshShaderFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMeshShaderFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMeshShaderFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMeshShaderFeaturesEXT<'_> {} impl<'a> PhysicalDeviceMeshShaderFeaturesEXT<'a> { #[inline] pub fn task_shader(mut self, task_shader: bool) -> Self { @@ -27661,7 +27401,7 @@ impl ::core::default::Default for PhysicalDeviceMeshShaderPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceMeshShaderPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMeshShaderPropertiesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMeshShaderPropertiesEXT<'_> {} impl<'a> PhysicalDeviceMeshShaderPropertiesEXT<'a> { #[inline] pub fn max_task_work_group_total_count(mut self, max_task_work_group_total_count: u32) -> Self { @@ -28039,7 +27779,6 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV; } -pub unsafe trait ExtendsRayTracingPipelineCreateInfoNV {} impl<'a> RayTracingPipelineCreateInfoNV<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -28087,10 +27826,7 @@ impl<'a> RayTracingPipelineCreateInfoNV<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -28114,10 +27850,7 @@ impl<'a> RayTracingPipelineCreateInfoNV<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -28125,10 +27858,7 @@ impl<'a> RayTracingPipelineCreateInfoNV<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -28181,7 +27911,6 @@ impl ::core::default::Default for RayTracingPipelineCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RayTracingPipelineCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR; } -pub unsafe trait ExtendsRayTracingPipelineCreateInfoKHR {} impl<'a> RayTracingPipelineCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -28250,10 +27979,7 @@ impl<'a> RayTracingPipelineCreateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -28277,10 +28003,7 @@ impl<'a> RayTracingPipelineCreateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -28288,10 +28011,7 @@ impl<'a> RayTracingPipelineCreateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -28611,7 +28331,6 @@ impl ::core::default::Default for AccelerationStructureCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV; } -pub unsafe trait ExtendsAccelerationStructureCreateInfoNV {} impl<'a> AccelerationStructureCreateInfoNV<'a> { #[inline] pub fn compacted_size(mut self, compacted_size: DeviceSize) -> Self { @@ -28632,10 +28351,7 @@ impl<'a> AccelerationStructureCreateInfoNV<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -28659,10 +28375,7 @@ impl<'a> AccelerationStructureCreateInfoNV<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -28670,10 +28383,7 @@ impl<'a> AccelerationStructureCreateInfoNV<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -28768,7 +28478,7 @@ unsafe impl<'a> TaggedStructure for WriteDescriptorSetAccelerationStructureKHR<' const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR; } -unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureKHR<'_> {} +unsafe impl Extends> for WriteDescriptorSetAccelerationStructureKHR<'_> {} impl<'a> WriteDescriptorSetAccelerationStructureKHR<'a> { #[inline] pub fn acceleration_structures( @@ -28810,7 +28520,7 @@ unsafe impl<'a> TaggedStructure for WriteDescriptorSetAccelerationStructureNV<'a const STRUCTURE_TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV; } -unsafe impl ExtendsWriteDescriptorSet for WriteDescriptorSetAccelerationStructureNV<'_> {} +unsafe impl Extends> for WriteDescriptorSetAccelerationStructureNV<'_> {} impl<'a> WriteDescriptorSetAccelerationStructureNV<'a> { #[inline] pub fn acceleration_structures( @@ -28903,8 +28613,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAccelerationStructureFeaturesK const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAccelerationStructureFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAccelerationStructureFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceAccelerationStructureFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceAccelerationStructureFeaturesKHR<'_> {} impl<'a> PhysicalDeviceAccelerationStructureFeaturesKHR<'a> { #[inline] pub fn acceleration_structure(mut self, acceleration_structure: bool) -> Self { @@ -28981,8 +28694,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPipelineFeaturesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingPipelineFeaturesKHR<'_> {} impl<'a> PhysicalDeviceRayTracingPipelineFeaturesKHR<'a> { #[inline] pub fn ray_tracing_pipeline(mut self, ray_tracing_pipeline: bool) -> Self { @@ -29052,8 +28768,8 @@ impl ::core::default::Default for PhysicalDeviceRayQueryFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceRayQueryFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayQueryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayQueryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceRayQueryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceRayQueryFeaturesKHR<'_> {} impl<'a> PhysicalDeviceRayQueryFeaturesKHR<'a> { #[inline] pub fn ray_query(mut self, ray_query: bool) -> Self { @@ -29103,7 +28819,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAccelerationStructurePropertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceAccelerationStructurePropertiesKHR<'_> { } @@ -29211,7 +28927,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPipelinePropertiesKH const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRayTracingPipelinePropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceRayTracingPipelinePropertiesKHR<'_> +{ +} impl<'a> PhysicalDeviceRayTracingPipelinePropertiesKHR<'a> { #[inline] pub fn shader_group_handle_size(mut self, shader_group_handle_size: u32) -> Self { @@ -29301,7 +29020,7 @@ impl ::core::default::Default for PhysicalDeviceRayTracingPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRayTracingPropertiesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceRayTracingPropertiesNV<'_> {} impl<'a> PhysicalDeviceRayTracingPropertiesNV<'a> { #[inline] pub fn shader_group_handle_size(mut self, shader_group_handle_size: u32) -> Self { @@ -29555,8 +29274,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingMaintenance1Features const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'_> {} impl<'a> PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a> { #[inline] pub fn ray_tracing_maintenance1(mut self, ray_tracing_maintenance1: bool) -> Self { @@ -29602,7 +29324,7 @@ impl ::core::default::Default for DrmFormatModifierPropertiesListEXT<'_> { unsafe impl<'a> TaggedStructure for DrmFormatModifierPropertiesListEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT; } -unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesListEXT<'_> {} +unsafe impl Extends> for DrmFormatModifierPropertiesListEXT<'_> {} impl<'a> DrmFormatModifierPropertiesListEXT<'a> { #[inline] pub fn drm_format_modifier_properties( @@ -29678,7 +29400,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageDrmFormatModifierInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 +unsafe impl Extends> for PhysicalDeviceImageDrmFormatModifierInfoEXT<'_> { } @@ -29730,7 +29452,7 @@ unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierListCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierListCreateInfoEXT<'_> {} +unsafe impl Extends> for ImageDrmFormatModifierListCreateInfoEXT<'_> {} impl<'a> ImageDrmFormatModifierListCreateInfoEXT<'a> { #[inline] pub fn drm_format_modifiers(mut self, drm_format_modifiers: &'a [u64]) -> Self { @@ -29771,7 +29493,7 @@ unsafe impl<'a> TaggedStructure for ImageDrmFormatModifierExplicitCreateInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImageDrmFormatModifierExplicitCreateInfoEXT<'_> {} +unsafe impl Extends> for ImageDrmFormatModifierExplicitCreateInfoEXT<'_> {} impl<'a> ImageDrmFormatModifierExplicitCreateInfoEXT<'a> { #[inline] pub fn drm_format_modifier(mut self, drm_format_modifier: u64) -> Self { @@ -29846,8 +29568,8 @@ impl ::core::default::Default for ImageStencilUsageCreateInfo<'_> { unsafe impl<'a> TaggedStructure for ImageStencilUsageCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO; } -unsafe impl ExtendsImageCreateInfo for ImageStencilUsageCreateInfo<'_> {} -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageStencilUsageCreateInfo<'_> {} +unsafe impl Extends> for ImageStencilUsageCreateInfo<'_> {} +unsafe impl Extends> for ImageStencilUsageCreateInfo<'_> {} impl<'a> ImageStencilUsageCreateInfo<'a> { #[inline] pub fn stencil_usage(mut self, stencil_usage: ImageUsageFlags) -> Self { @@ -29883,7 +29605,7 @@ unsafe impl<'a> TaggedStructure for DeviceMemoryOverallocationCreateInfoAMD<'a> const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD; } -unsafe impl ExtendsDeviceCreateInfo for DeviceMemoryOverallocationCreateInfoAMD<'_> {} +unsafe impl Extends> for DeviceMemoryOverallocationCreateInfoAMD<'_> {} impl<'a> DeviceMemoryOverallocationCreateInfoAMD<'a> { #[inline] pub fn overallocation_behavior( @@ -29926,8 +29648,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceFragmentDensityMapFeaturesEXT<'_> {} impl<'a> PhysicalDeviceFragmentDensityMapFeaturesEXT<'a> { #[inline] pub fn fragment_density_map(mut self, fragment_density_map: bool) -> Self { @@ -29977,8 +29702,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMap2FeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceFragmentDensityMap2FeaturesEXT<'_> {} impl<'a> PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a> { #[inline] pub fn fragment_density_map_deferred(mut self, fragment_density_map_deferred: bool) -> Self { @@ -30014,11 +29742,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapOffsetFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<'a> { #[inline] pub fn fragment_density_map_offset(mut self, fragment_density_map_offset: bool) -> Self { @@ -30058,7 +29789,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapPropertiesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceFragmentDensityMapPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceFragmentDensityMapPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceFragmentDensityMapPropertiesEXT<'a> { #[inline] pub fn min_fragment_density_texel_size( @@ -30116,7 +29850,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMap2PropertiesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceFragmentDensityMap2PropertiesEXT<'_> { } @@ -30177,7 +29911,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentDensityMapOffsetProper const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM<'_> { } @@ -30219,8 +29953,8 @@ unsafe impl<'a> TaggedStructure for RenderPassFragmentDensityMapCreateInfoEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT; } -unsafe impl ExtendsRenderPassCreateInfo for RenderPassFragmentDensityMapCreateInfoEXT<'_> {} -unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassFragmentDensityMapCreateInfoEXT<'_> {} +unsafe impl Extends> for RenderPassFragmentDensityMapCreateInfoEXT<'_> {} +unsafe impl Extends> for RenderPassFragmentDensityMapCreateInfoEXT<'_> {} impl<'a> RenderPassFragmentDensityMapCreateInfoEXT<'a> { #[inline] pub fn fragment_density_map_attachment( @@ -30261,7 +29995,7 @@ unsafe impl<'a> TaggedStructure for SubpassFragmentDensityMapOffsetEndInfoQCOM<' const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM; } -unsafe impl ExtendsSubpassEndInfo for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> {} +unsafe impl Extends> for SubpassFragmentDensityMapOffsetEndInfoQCOM<'_> {} impl<'a> SubpassFragmentDensityMapOffsetEndInfoQCOM<'a> { #[inline] pub fn fragment_density_offsets(mut self, fragment_density_offsets: &'a [Offset2D]) -> Self { @@ -30298,8 +30032,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceScalarBlockLayoutFeatures<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceScalarBlockLayoutFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceScalarBlockLayoutFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceScalarBlockLayoutFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceScalarBlockLayoutFeatures<'_> {} impl<'a> PhysicalDeviceScalarBlockLayoutFeatures<'a> { #[inline] pub fn scalar_block_layout(mut self, scalar_block_layout: bool) -> Self { @@ -30334,7 +30068,7 @@ impl ::core::default::Default for SurfaceProtectedCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for SurfaceProtectedCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceProtectedCapabilitiesKHR<'_> {} +unsafe impl Extends> for SurfaceProtectedCapabilitiesKHR<'_> {} impl<'a> SurfaceProtectedCapabilitiesKHR<'a> { #[inline] pub fn supports_protected(mut self, supports_protected: bool) -> Self { @@ -30370,11 +30104,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceUniformBufferStandardLayoutFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceUniformBufferStandardLayoutFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceUniformBufferStandardLayoutFeatures<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceUniformBufferStandardLayoutFeatures<'_> {} impl<'a> PhysicalDeviceUniformBufferStandardLayoutFeatures<'a> { #[inline] pub fn uniform_buffer_standard_layout(mut self, uniform_buffer_standard_layout: bool) -> Self { @@ -30410,8 +30147,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClipEnableFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthClipEnableFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDepthClipEnableFeaturesEXT<'a> { #[inline] pub fn depth_clip_enable(mut self, depth_clip_enable: bool) -> Self { @@ -30449,7 +30186,7 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationDepthClipStateCreateInf const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo +unsafe impl Extends> for PipelineRasterizationDepthClipStateCreateInfoEXT<'_> { } @@ -30495,7 +30232,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryBudgetPropertiesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceMemoryProperties2 for PhysicalDeviceMemoryBudgetPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceMemoryBudgetPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceMemoryBudgetPropertiesEXT<'a> { #[inline] pub fn heap_budget(mut self, heap_budget: [DeviceSize; MAX_MEMORY_HEAPS]) -> Self { @@ -30536,8 +30276,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMemoryPriorityFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMemoryPriorityFeaturesEXT<'_> {} impl<'a> PhysicalDeviceMemoryPriorityFeaturesEXT<'a> { #[inline] pub fn memory_priority(mut self, memory_priority: bool) -> Self { @@ -30572,7 +30312,7 @@ impl ::core::default::Default for MemoryPriorityAllocateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for MemoryPriorityAllocateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryPriorityAllocateInfoEXT<'_> {} +unsafe impl Extends> for MemoryPriorityAllocateInfoEXT<'_> {} impl<'a> MemoryPriorityAllocateInfoEXT<'a> { #[inline] pub fn priority(mut self, priority: f32) -> Self { @@ -30608,11 +30348,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePageableDeviceLocalMemoryFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'_> {} impl<'a> PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a> { #[inline] pub fn pageable_device_local_memory(mut self, pageable_device_local_memory: bool) -> Self { @@ -30652,8 +30395,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBufferDeviceAddressFeatures<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBufferDeviceAddressFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceBufferDeviceAddressFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceBufferDeviceAddressFeatures<'_> {} impl<'a> PhysicalDeviceBufferDeviceAddressFeatures<'a> { #[inline] pub fn buffer_device_address(mut self, buffer_device_address: bool) -> Self { @@ -30709,8 +30452,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBufferDeviceAddressFeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceBufferDeviceAddressFeaturesEXT<'_> {} impl<'a> PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a> { #[inline] pub fn buffer_device_address(mut self, buffer_device_address: bool) -> Self { @@ -30795,7 +30541,7 @@ impl ::core::default::Default for BufferOpaqueCaptureAddressCreateInfo<'_> { unsafe impl<'a> TaggedStructure for BufferOpaqueCaptureAddressCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO; } -unsafe impl ExtendsBufferCreateInfo for BufferOpaqueCaptureAddressCreateInfo<'_> {} +unsafe impl Extends> for BufferOpaqueCaptureAddressCreateInfo<'_> {} impl<'a> BufferOpaqueCaptureAddressCreateInfo<'a> { #[inline] pub fn opaque_capture_address(mut self, opaque_capture_address: u64) -> Self { @@ -30830,7 +30576,7 @@ impl ::core::default::Default for BufferDeviceAddressCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for BufferDeviceAddressCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT; } -unsafe impl ExtendsBufferCreateInfo for BufferDeviceAddressCreateInfoEXT<'_> {} +unsafe impl Extends> for BufferDeviceAddressCreateInfoEXT<'_> {} impl<'a> BufferDeviceAddressCreateInfoEXT<'a> { #[inline] pub fn device_address(mut self, device_address: DeviceAddress) -> Self { @@ -30866,7 +30612,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageViewImageFormatInfoEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 +unsafe impl Extends> for PhysicalDeviceImageViewImageFormatInfoEXT<'_> { } @@ -30907,7 +30653,10 @@ unsafe impl<'a> TaggedStructure for FilterCubicImageViewImageFormatPropertiesEXT const STRUCTURE_TYPE: StructureType = StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT; } -unsafe impl ExtendsImageFormatProperties2 for FilterCubicImageViewImageFormatPropertiesEXT<'_> {} +unsafe impl Extends> + for FilterCubicImageViewImageFormatPropertiesEXT<'_> +{ +} impl<'a> FilterCubicImageViewImageFormatPropertiesEXT<'a> { #[inline] pub fn filter_cubic(mut self, filter_cubic: bool) -> Self { @@ -30948,8 +30697,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImagelessFramebufferFeatures<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImagelessFramebufferFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImagelessFramebufferFeatures<'_> {} +unsafe impl Extends> + for PhysicalDeviceImagelessFramebufferFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImagelessFramebufferFeatures<'_> {} impl<'a> PhysicalDeviceImagelessFramebufferFeatures<'a> { #[inline] pub fn imageless_framebuffer(mut self, imageless_framebuffer: bool) -> Self { @@ -30986,7 +30738,7 @@ impl ::core::default::Default for FramebufferAttachmentsCreateInfo<'_> { unsafe impl<'a> TaggedStructure for FramebufferAttachmentsCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO; } -unsafe impl ExtendsFramebufferCreateInfo for FramebufferAttachmentsCreateInfo<'_> {} +unsafe impl Extends> for FramebufferAttachmentsCreateInfo<'_> {} impl<'a> FramebufferAttachmentsCreateInfo<'a> { #[inline] pub fn attachment_image_infos( @@ -31099,7 +30851,7 @@ impl ::core::default::Default for RenderPassAttachmentBeginInfo<'_> { unsafe impl<'a> TaggedStructure for RenderPassAttachmentBeginInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO; } -unsafe impl ExtendsRenderPassBeginInfo for RenderPassAttachmentBeginInfo<'_> {} +unsafe impl Extends> for RenderPassAttachmentBeginInfo<'_> {} impl<'a> RenderPassAttachmentBeginInfo<'a> { #[inline] pub fn attachments(mut self, attachments: &'a [ImageView]) -> Self { @@ -31136,8 +30888,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTextureCompressionASTCHDRFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTextureCompressionASTCHDRFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTextureCompressionASTCHDRFeatures<'_> {} +unsafe impl Extends> + for PhysicalDeviceTextureCompressionASTCHDRFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceTextureCompressionASTCHDRFeatures<'_> {} impl<'a> PhysicalDeviceTextureCompressionASTCHDRFeatures<'a> { #[inline] pub fn texture_compression_astc_hdr(mut self, texture_compression_astc_hdr: bool) -> Self { @@ -31175,8 +30930,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixFeaturesNV<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCooperativeMatrixFeaturesNV<'_> {} impl<'a> PhysicalDeviceCooperativeMatrixFeaturesNV<'a> { #[inline] pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { @@ -31221,7 +30976,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixPropertiesNV< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCooperativeMatrixPropertiesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrixPropertiesNV<'_> +{ +} impl<'a> PhysicalDeviceCooperativeMatrixPropertiesNV<'a> { #[inline] pub fn cooperative_matrix_supported_stages( @@ -31343,8 +31101,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceYcbcrImageArraysFeaturesEXT<'_> {} impl<'a> PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a> { #[inline] pub fn ycbcr_image_arrays(mut self, ycbcr_image_arrays: bool) -> Self { @@ -31468,7 +31226,7 @@ impl ::core::default::Default for PresentFrameTokenGGP<'_> { unsafe impl<'a> TaggedStructure for PresentFrameTokenGGP<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PRESENT_FRAME_TOKEN_GGP; } -unsafe impl ExtendsPresentInfoKHR for PresentFrameTokenGGP<'_> {} +unsafe impl Extends> for PresentFrameTokenGGP<'_> {} impl<'a> PresentFrameTokenGGP<'a> { #[inline] pub fn frame_token(mut self, frame_token: GgpFrameToken) -> Self { @@ -31528,11 +31286,17 @@ impl ::core::default::Default for PipelineCreationFeedbackCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineCreationFeedbackCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoNV for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineCreationFeedbackCreateInfo<'_> {} -unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX for PipelineCreationFeedbackCreateInfo<'_> {} +unsafe impl Extends> for PipelineCreationFeedbackCreateInfo<'_> {} +unsafe impl Extends> for PipelineCreationFeedbackCreateInfo<'_> {} +unsafe impl Extends> for PipelineCreationFeedbackCreateInfo<'_> {} +unsafe impl Extends> + for PipelineCreationFeedbackCreateInfo<'_> +{ +} +unsafe impl Extends> + for PipelineCreationFeedbackCreateInfo<'_> +{ +} impl<'a> PipelineCreationFeedbackCreateInfo<'a> { #[inline] pub fn pipeline_creation_feedback( @@ -31579,8 +31343,8 @@ impl ::core::default::Default for SurfaceFullScreenExclusiveInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SurfaceFullScreenExclusiveInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfaceFullScreenExclusiveInfoEXT<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveInfoEXT<'_> {} +unsafe impl Extends> for SurfaceFullScreenExclusiveInfoEXT<'_> {} +unsafe impl Extends> for SurfaceFullScreenExclusiveInfoEXT<'_> {} impl<'a> SurfaceFullScreenExclusiveInfoEXT<'a> { #[inline] pub fn full_screen_exclusive(mut self, full_screen_exclusive: FullScreenExclusiveEXT) -> Self { @@ -31616,8 +31380,11 @@ unsafe impl<'a> TaggedStructure for SurfaceFullScreenExclusiveWin32InfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT; } -unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfaceFullScreenExclusiveWin32InfoEXT<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for SurfaceFullScreenExclusiveWin32InfoEXT<'_> {} +unsafe impl Extends> + for SurfaceFullScreenExclusiveWin32InfoEXT<'_> +{ +} +unsafe impl Extends> for SurfaceFullScreenExclusiveWin32InfoEXT<'_> {} impl<'a> SurfaceFullScreenExclusiveWin32InfoEXT<'a> { #[inline] pub fn hmonitor(mut self, hmonitor: HMONITOR) -> Self { @@ -31653,7 +31420,7 @@ unsafe impl<'a> TaggedStructure for SurfaceCapabilitiesFullScreenExclusiveEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesFullScreenExclusiveEXT<'_> {} +unsafe impl Extends> for SurfaceCapabilitiesFullScreenExclusiveEXT<'_> {} impl<'a> SurfaceCapabilitiesFullScreenExclusiveEXT<'a> { #[inline] pub fn full_screen_exclusive_supported( @@ -31692,8 +31459,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePresentBarrierFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePresentBarrierFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePresentBarrierFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDevicePresentBarrierFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDevicePresentBarrierFeaturesNV<'_> {} impl<'a> PhysicalDevicePresentBarrierFeaturesNV<'a> { #[inline] pub fn present_barrier(mut self, present_barrier: bool) -> Self { @@ -31728,7 +31495,7 @@ impl ::core::default::Default for SurfaceCapabilitiesPresentBarrierNV<'_> { unsafe impl<'a> TaggedStructure for SurfaceCapabilitiesPresentBarrierNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfaceCapabilitiesPresentBarrierNV<'_> {} +unsafe impl Extends> for SurfaceCapabilitiesPresentBarrierNV<'_> {} impl<'a> SurfaceCapabilitiesPresentBarrierNV<'a> { #[inline] pub fn present_barrier_supported(mut self, present_barrier_supported: bool) -> Self { @@ -31763,7 +31530,7 @@ impl ::core::default::Default for SwapchainPresentBarrierCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentBarrierCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentBarrierCreateInfoNV<'_> {} +unsafe impl Extends> for SwapchainPresentBarrierCreateInfoNV<'_> {} impl<'a> SwapchainPresentBarrierCreateInfoNV<'a> { #[inline] pub fn present_barrier_enable(mut self, present_barrier_enable: bool) -> Self { @@ -31801,8 +31568,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePerformanceQueryFeaturesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePerformanceQueryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerformanceQueryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePerformanceQueryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePerformanceQueryFeaturesKHR<'_> {} impl<'a> PhysicalDevicePerformanceQueryFeaturesKHR<'a> { #[inline] pub fn performance_counter_query_pools( @@ -31850,7 +31617,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePerformanceQueryPropertiesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePerformanceQueryPropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDevicePerformanceQueryPropertiesKHR<'_> +{ +} impl<'a> PhysicalDevicePerformanceQueryPropertiesKHR<'a> { #[inline] pub fn allow_command_buffer_query_copies( @@ -32029,7 +31799,7 @@ impl ::core::default::Default for QueryPoolPerformanceCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for QueryPoolPerformanceCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR; } -unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceCreateInfoKHR<'_> {} +unsafe impl Extends> for QueryPoolPerformanceCreateInfoKHR<'_> {} impl<'a> QueryPoolPerformanceCreateInfoKHR<'a> { #[inline] pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { @@ -32128,8 +31898,8 @@ impl ::core::default::Default for PerformanceQuerySubmitInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PerformanceQuerySubmitInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR; } -unsafe impl ExtendsSubmitInfo for PerformanceQuerySubmitInfoKHR<'_> {} -unsafe impl ExtendsSubmitInfo2 for PerformanceQuerySubmitInfoKHR<'_> {} +unsafe impl Extends> for PerformanceQuerySubmitInfoKHR<'_> {} +unsafe impl Extends> for PerformanceQuerySubmitInfoKHR<'_> {} impl<'a> PerformanceQuerySubmitInfoKHR<'a> { #[inline] pub fn counter_pass_index(mut self, counter_pass_index: u32) -> Self { @@ -32199,8 +31969,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCoverageReductionModeFeaturesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCoverageReductionModeFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoverageReductionModeFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceCoverageReductionModeFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCoverageReductionModeFeaturesNV<'_> {} impl<'a> PhysicalDeviceCoverageReductionModeFeaturesNV<'a> { #[inline] pub fn coverage_reduction_mode(mut self, coverage_reduction_mode: bool) -> Self { @@ -32238,7 +32011,7 @@ unsafe impl<'a> TaggedStructure for PipelineCoverageReductionStateCreateInfoNV<' const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsPipelineMultisampleStateCreateInfo +unsafe impl Extends> for PipelineCoverageReductionStateCreateInfoNV<'_> { } @@ -32343,11 +32116,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerFunctions2Feature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'_> {} impl<'a> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a> { #[inline] pub fn shader_integer_functions2(mut self, shader_integer_functions2: bool) -> Self { @@ -32462,7 +32238,7 @@ unsafe impl<'a> TaggedStructure for QueryPoolPerformanceQueryCreateInfoINTEL<'a> const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL; } -unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolPerformanceQueryCreateInfoINTEL<'_> {} +unsafe impl Extends> for QueryPoolPerformanceQueryCreateInfoINTEL<'_> {} impl<'a> QueryPoolPerformanceQueryCreateInfoINTEL<'a> { #[inline] pub fn performance_counters_sampling( @@ -32653,8 +32429,8 @@ impl ::core::default::Default for PhysicalDeviceShaderClockFeaturesKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderClockFeaturesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderClockFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderClockFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderClockFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderClockFeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderClockFeaturesKHR<'a> { #[inline] pub fn shader_subgroup_clock(mut self, shader_subgroup_clock: bool) -> Self { @@ -32695,8 +32471,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceIndexTypeUint8FeaturesKHR<'_> {} impl<'a> PhysicalDeviceIndexTypeUint8FeaturesKHR<'a> { #[inline] pub fn index_type_uint8(mut self, index_type_uint8: bool) -> Self { @@ -32734,7 +32510,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSMBuiltinsPropertiesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderSMBuiltinsPropertiesNV<'_> +{ +} impl<'a> PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a> { #[inline] pub fn shader_sm_count(mut self, shader_sm_count: u32) -> Self { @@ -32775,8 +32554,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderSMBuiltinsFeaturesNV<'_> {} impl<'a> PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a> { #[inline] pub fn shader_sm_builtins(mut self, shader_sm_builtins: bool) -> Self { @@ -32816,11 +32595,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderInterlockFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'_> {} impl<'a> PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a> { #[inline] pub fn fragment_shader_sample_interlock( @@ -32875,11 +32654,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSeparateDepthStencilLayoutsFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'_> {} impl<'a> PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a> { #[inline] pub fn separate_depth_stencil_layouts(mut self, separate_depth_stencil_layouts: bool) -> Self { @@ -32914,7 +32696,7 @@ impl ::core::default::Default for AttachmentReferenceStencilLayout<'_> { unsafe impl<'a> TaggedStructure for AttachmentReferenceStencilLayout<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT; } -unsafe impl ExtendsAttachmentReference2 for AttachmentReferenceStencilLayout<'_> {} +unsafe impl Extends> for AttachmentReferenceStencilLayout<'_> {} impl<'a> AttachmentReferenceStencilLayout<'a> { #[inline] pub fn stencil_layout(mut self, stencil_layout: ImageLayout) -> Self { @@ -32952,11 +32734,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePrimitiveTopologyListRestartFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'_> {} impl<'a> PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a> { #[inline] pub fn primitive_topology_list_restart( @@ -33004,7 +32789,7 @@ impl ::core::default::Default for AttachmentDescriptionStencilLayout<'_> { unsafe impl<'a> TaggedStructure for AttachmentDescriptionStencilLayout<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT; } -unsafe impl ExtendsAttachmentDescription2 for AttachmentDescriptionStencilLayout<'_> {} +unsafe impl Extends> for AttachmentDescriptionStencilLayout<'_> {} impl<'a> AttachmentDescriptionStencilLayout<'a> { #[inline] pub fn stencil_initial_layout(mut self, stencil_initial_layout: ImageLayout) -> Self { @@ -33045,11 +32830,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineExecutablePropertiesFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'_> {} impl<'a> PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a> { #[inline] pub fn pipeline_executable_info(mut self, pipeline_executable_info: bool) -> Self { @@ -33408,11 +33196,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderDemoteToHelperInvocation const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'_> {} impl<'a> PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a> { #[inline] pub fn shader_demote_to_helper_invocation( @@ -33451,8 +33242,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTexelBufferAlignmentFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'_> {} impl<'a> PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a> { #[inline] pub fn texel_buffer_alignment(mut self, texel_buffer_alignment: bool) -> Self { @@ -33494,7 +33288,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTexelBufferAlignmentProperties const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceTexelBufferAlignmentProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceTexelBufferAlignmentProperties<'_> +{ +} impl<'a> PhysicalDeviceTexelBufferAlignmentProperties<'a> { #[inline] pub fn storage_texel_buffer_offset_alignment_bytes( @@ -33563,8 +33360,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupSizeControlFeatures<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSubgroupSizeControlFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubgroupSizeControlFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceSubgroupSizeControlFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceSubgroupSizeControlFeatures<'_> {} impl<'a> PhysicalDeviceSubgroupSizeControlFeatures<'a> { #[inline] pub fn subgroup_size_control(mut self, subgroup_size_control: bool) -> Self { @@ -33611,7 +33408,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubgroupSizeControlProperties< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubgroupSizeControlProperties<'_> {} +unsafe impl Extends> + for PhysicalDeviceSubgroupSizeControlProperties<'_> +{ +} impl<'a> PhysicalDeviceSubgroupSizeControlProperties<'a> { #[inline] pub fn min_subgroup_size(mut self, min_subgroup_size: u32) -> Self { @@ -33665,11 +33465,14 @@ unsafe impl<'a> TaggedStructure for PipelineShaderStageRequiredSubgroupSizeCreat const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO; } -unsafe impl ExtendsPipelineShaderStageCreateInfo +unsafe impl Extends> + for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'_> +{ +} +unsafe impl Extends> for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'_> { } -unsafe impl ExtendsShaderCreateInfoEXT for PipelineShaderStageRequiredSubgroupSizeCreateInfo<'_> {} impl<'a> PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a> { #[inline] pub fn required_subgroup_size(mut self, required_subgroup_size: u32) -> Self { @@ -33707,7 +33510,7 @@ unsafe impl<'a> TaggedStructure for SubpassShadingPipelineCreateInfoHUAWEI<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI; } -unsafe impl ExtendsComputePipelineCreateInfo for SubpassShadingPipelineCreateInfoHUAWEI<'_> {} +unsafe impl Extends> for SubpassShadingPipelineCreateInfoHUAWEI<'_> {} impl<'a> SubpassShadingPipelineCreateInfoHUAWEI<'a> { #[inline] pub fn render_pass(mut self, render_pass: RenderPass) -> Self { @@ -33748,7 +33551,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassShadingPropertiesHUAWEI const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'_> {} +unsafe impl Extends> + for PhysicalDeviceSubpassShadingPropertiesHUAWEI<'_> +{ +} impl<'a> PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a> { #[inline] pub fn max_subpass_shading_workgroup_size_aspect_ratio( @@ -33794,7 +33600,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderProperties const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'_> { } @@ -33851,7 +33657,7 @@ unsafe impl<'a> TaggedStructure for MemoryOpaqueCaptureAddressAllocateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO; } -unsafe impl ExtendsMemoryAllocateInfo for MemoryOpaqueCaptureAddressAllocateInfo<'_> {} +unsafe impl Extends> for MemoryOpaqueCaptureAddressAllocateInfo<'_> {} impl<'a> MemoryOpaqueCaptureAddressAllocateInfo<'a> { #[inline] pub fn opaque_capture_address(mut self, opaque_capture_address: u64) -> Self { @@ -33931,8 +33737,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLineRasterizationFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceLineRasterizationFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceLineRasterizationFeaturesKHR<'_> {} impl<'a> PhysicalDeviceLineRasterizationFeaturesKHR<'a> { #[inline] pub fn rectangular_lines(mut self, rectangular_lines: bool) -> Self { @@ -33993,7 +33802,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLineRasterizationPropertiesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceLineRasterizationPropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceLineRasterizationPropertiesKHR<'_> +{ +} impl<'a> PhysicalDeviceLineRasterizationPropertiesKHR<'a> { #[inline] pub fn line_sub_pixel_precision_bits(mut self, line_sub_pixel_precision_bits: u32) -> Self { @@ -34035,7 +33847,7 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationLineStateCreateInfoKHR< const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo +unsafe impl Extends> for PipelineRasterizationLineStateCreateInfoKHR<'_> { } @@ -34092,11 +33904,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineCreationCacheControlFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDevicePipelineCreationCacheControlFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelineCreationCacheControlFeatures<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineCreationCacheControlFeatures<'_> {} impl<'a> PhysicalDevicePipelineCreationCacheControlFeatures<'a> { #[inline] pub fn pipeline_creation_cache_control( @@ -34156,8 +33971,8 @@ impl ::core::default::Default for PhysicalDeviceVulkan11Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan11Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan11Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan11Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan11Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan11Features<'_> {} impl<'a> PhysicalDeviceVulkan11Features<'a> { #[inline] pub fn storage_buffer16_bit_access(mut self, storage_buffer16_bit_access: bool) -> Self { @@ -34282,7 +34097,7 @@ impl ::core::default::Default for PhysicalDeviceVulkan11Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan11Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan11Properties<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan11Properties<'_> {} impl<'a> PhysicalDeviceVulkan11Properties<'a> { #[inline] pub fn device_uuid(mut self, device_uuid: [u8; UUID_SIZE]) -> Self { @@ -34491,8 +34306,8 @@ impl ::core::default::Default for PhysicalDeviceVulkan12Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan12Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan12Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan12Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan12Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan12Features<'_> {} impl<'a> PhysicalDeviceVulkan12Features<'a> { #[inline] pub fn sampler_mirror_clamp_to_edge(mut self, sampler_mirror_clamp_to_edge: bool) -> Self { @@ -35148,7 +34963,7 @@ impl ::core::default::Default for PhysicalDeviceVulkan12Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan12Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan12Properties<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan12Properties<'_> {} impl<'a> PhysicalDeviceVulkan12Properties<'a> { #[inline] pub fn driver_id(mut self, driver_id: DriverId) -> Self { @@ -35627,8 +35442,8 @@ impl ::core::default::Default for PhysicalDeviceVulkan13Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan13Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan13Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVulkan13Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan13Features<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan13Features<'_> {} impl<'a> PhysicalDeviceVulkan13Features<'a> { #[inline] pub fn robust_image_access(mut self, robust_image_access: bool) -> Self { @@ -35787,7 +35602,7 @@ impl ::core::default::Default for PhysicalDeviceVulkan13Properties<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVulkan13Properties<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceVulkan13Properties<'_> {} +unsafe impl Extends> for PhysicalDeviceVulkan13Properties<'_> {} impl<'a> PhysicalDeviceVulkan13Properties<'a> { #[inline] pub fn min_subgroup_size(mut self, min_subgroup_size: u32) -> Self { @@ -36195,9 +36010,9 @@ impl ::core::default::Default for PipelineCompilerControlCreateInfoAMD<'_> { unsafe impl<'a> TaggedStructure for PipelineCompilerControlCreateInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineCompilerControlCreateInfoAMD<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineCompilerControlCreateInfoAMD<'_> {} -unsafe impl ExtendsExecutionGraphPipelineCreateInfoAMDX +unsafe impl Extends> for PipelineCompilerControlCreateInfoAMD<'_> {} +unsafe impl Extends> for PipelineCompilerControlCreateInfoAMD<'_> {} +unsafe impl Extends> for PipelineCompilerControlCreateInfoAMD<'_> { } @@ -36239,8 +36054,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCoherentMemoryFeaturesAMD<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> {} +unsafe impl Extends> for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> {} +unsafe impl Extends> for PhysicalDeviceCoherentMemoryFeaturesAMD<'_> {} impl<'a> PhysicalDeviceCoherentMemoryFeaturesAMD<'a> { #[inline] pub fn device_coherent_memory(mut self, device_coherent_memory: bool) -> Self { @@ -36381,7 +36196,7 @@ unsafe impl<'a> TaggedStructure for SamplerCustomBorderColorCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT; } -unsafe impl ExtendsSamplerCreateInfo for SamplerCustomBorderColorCreateInfoEXT<'_> {} +unsafe impl Extends> for SamplerCustomBorderColorCreateInfoEXT<'_> {} impl<'a> SamplerCustomBorderColorCreateInfoEXT<'a> { #[inline] pub fn custom_border_color(mut self, custom_border_color: ClearColorValue) -> Self { @@ -36422,7 +36237,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCustomBorderColorPropertiesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCustomBorderColorPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceCustomBorderColorPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceCustomBorderColorPropertiesEXT<'a> { #[inline] pub fn max_custom_border_color_samplers( @@ -36463,8 +36281,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCustomBorderColorFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCustomBorderColorFeaturesEXT<'_> {} impl<'a> PhysicalDeviceCustomBorderColorFeaturesEXT<'a> { #[inline] pub fn custom_border_colors(mut self, custom_border_colors: bool) -> Self { @@ -36510,7 +36331,7 @@ unsafe impl<'a> TaggedStructure for SamplerBorderColorComponentMappingCreateInfo const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT; } -unsafe impl ExtendsSamplerCreateInfo for SamplerBorderColorComponentMappingCreateInfoEXT<'_> {} +unsafe impl Extends> for SamplerBorderColorComponentMappingCreateInfoEXT<'_> {} impl<'a> SamplerBorderColorComponentMappingCreateInfoEXT<'a> { #[inline] pub fn components(mut self, components: ComponentMapping) -> Self { @@ -36553,8 +36374,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceBorderColorSwizzleFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceBorderColorSwizzleFeaturesEXT<'_> {} impl<'a> PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a> { #[inline] pub fn border_color_swizzle(mut self, border_color_swizzle: bool) -> Self { @@ -36664,7 +36488,6 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryTrianglesDataKH const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR; } -pub unsafe trait ExtendsAccelerationStructureGeometryTrianglesDataKHR {} impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { #[inline] pub fn vertex_format(mut self, vertex_format: Format) -> Self { @@ -36710,10 +36533,7 @@ impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -36737,10 +36557,7 @@ impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -36748,10 +36565,7 @@ impl<'a> AccelerationStructureGeometryTrianglesDataKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -37122,7 +36936,6 @@ impl ::core::default::Default for AccelerationStructureCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR; } -pub unsafe trait ExtendsAccelerationStructureCreateInfoKHR {} impl<'a> AccelerationStructureCreateInfoKHR<'a> { #[inline] pub fn create_flags(mut self, create_flags: AccelerationStructureCreateFlagsKHR) -> Self { @@ -37163,10 +36976,7 @@ impl<'a> AccelerationStructureCreateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -37190,10 +37000,7 @@ impl<'a> AccelerationStructureCreateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -37201,10 +37008,7 @@ impl<'a> AccelerationStructureCreateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -37589,7 +37393,7 @@ impl ::core::default::Default for PipelineLibraryCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PipelineLibraryCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineLibraryCreateInfoKHR<'_> {} +unsafe impl Extends> for PipelineLibraryCreateInfoKHR<'_> {} impl<'a> PipelineLibraryCreateInfoKHR<'a> { #[inline] pub fn libraries(mut self, libraries: &'a [Pipeline]) -> Self { @@ -37626,8 +37430,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicStateFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExtendedDynamicStateFeaturesEXT<'_> {} impl<'a> PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a> { #[inline] pub fn extended_dynamic_state(mut self, extended_dynamic_state: bool) -> Self { @@ -37667,8 +37474,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState2FeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExtendedDynamicState2FeaturesEXT<'_> {} impl<'a> PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a> { #[inline] pub fn extended_dynamic_state2(mut self, extended_dynamic_state2: bool) -> Self { @@ -37781,8 +37591,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState3FeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExtendedDynamicState3FeaturesEXT<'_> {} impl<'a> PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a> { #[inline] pub fn extended_dynamic_state3_tessellation_domain_origin( @@ -38090,7 +37903,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedDynamicState3Propertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceExtendedDynamicState3PropertiesEXT<'_> { } @@ -38216,7 +38029,7 @@ impl ::core::default::Default for RenderPassTransformBeginInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for RenderPassTransformBeginInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM; } -unsafe impl ExtendsRenderPassBeginInfo for RenderPassTransformBeginInfoQCOM<'_> {} +unsafe impl Extends> for RenderPassTransformBeginInfoQCOM<'_> {} impl<'a> RenderPassTransformBeginInfoQCOM<'a> { #[inline] pub fn transform(mut self, transform: SurfaceTransformFlagsKHR) -> Self { @@ -38251,8 +38064,8 @@ impl ::core::default::Default for CopyCommandTransformInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for CopyCommandTransformInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM; } -unsafe impl ExtendsBufferImageCopy2 for CopyCommandTransformInfoQCOM<'_> {} -unsafe impl ExtendsImageBlit2 for CopyCommandTransformInfoQCOM<'_> {} +unsafe impl Extends> for CopyCommandTransformInfoQCOM<'_> {} +unsafe impl Extends> for CopyCommandTransformInfoQCOM<'_> {} impl<'a> CopyCommandTransformInfoQCOM<'a> { #[inline] pub fn transform(mut self, transform: SurfaceTransformFlagsKHR) -> Self { @@ -38290,7 +38103,7 @@ unsafe impl<'a> TaggedStructure for CommandBufferInheritanceRenderPassTransformI const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM; } -unsafe impl ExtendsCommandBufferInheritanceInfo +unsafe impl Extends> for CommandBufferInheritanceRenderPassTransformInfoQCOM<'_> { } @@ -38334,8 +38147,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDiagnosticsConfigFeaturesNV<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceDiagnosticsConfigFeaturesNV<'_> {} impl<'a> PhysicalDeviceDiagnosticsConfigFeaturesNV<'a> { #[inline] pub fn diagnostics_config(mut self, diagnostics_config: bool) -> Self { @@ -38370,7 +38183,7 @@ impl ::core::default::Default for DeviceDiagnosticsConfigCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for DeviceDiagnosticsConfigCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV; } -unsafe impl ExtendsDeviceCreateInfo for DeviceDiagnosticsConfigCreateInfoNV<'_> {} +unsafe impl Extends> for DeviceDiagnosticsConfigCreateInfoNV<'_> {} impl<'a> DeviceDiagnosticsConfigCreateInfoNV<'a> { #[inline] pub fn flags(mut self, flags: DeviceDiagnosticsConfigFlagsNV) -> Self { @@ -38406,11 +38219,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceZeroInitializeWorkgroupMemoryF const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'_> {} impl<'a> PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a> { #[inline] pub fn shader_zero_initialize_workgroup_memory( @@ -38450,11 +38266,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupUniformControlFl const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'_> { } @@ -38499,8 +38315,8 @@ impl ::core::default::Default for PhysicalDeviceRobustness2FeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceRobustness2FeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRobustness2FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRobustness2FeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceRobustness2FeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceRobustness2FeaturesEXT<'_> {} impl<'a> PhysicalDeviceRobustness2FeaturesEXT<'a> { #[inline] pub fn robust_buffer_access2(mut self, robust_buffer_access2: bool) -> Self { @@ -38548,7 +38364,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRobustness2PropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRobustness2PropertiesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceRobustness2PropertiesEXT<'_> {} impl<'a> PhysicalDeviceRobustness2PropertiesEXT<'a> { #[inline] pub fn robust_storage_buffer_access_size_alignment( @@ -38596,8 +38412,8 @@ impl ::core::default::Default for PhysicalDeviceImageRobustnessFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceImageRobustnessFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageRobustnessFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageRobustnessFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceImageRobustnessFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceImageRobustnessFeatures<'_> {} impl<'a> PhysicalDeviceImageRobustnessFeatures<'a> { #[inline] pub fn robust_image_access(mut self, robust_image_access: bool) -> Self { @@ -38639,11 +38455,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceWorkgroupMemoryExplicitLayoutF const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'_> {} impl<'a> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a> { #[inline] pub fn workgroup_memory_explicit_layout( @@ -38737,8 +38556,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePortabilitySubsetFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePortabilitySubsetFeaturesKHR<'_> {} impl<'a> PhysicalDevicePortabilitySubsetFeaturesKHR<'a> { #[inline] pub fn constant_alpha_color_blend_factors( @@ -38857,7 +38679,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePortabilitySubsetPropertiesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePortabilitySubsetPropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDevicePortabilitySubsetPropertiesKHR<'_> +{ +} impl<'a> PhysicalDevicePortabilitySubsetPropertiesKHR<'a> { #[inline] pub fn min_vertex_input_binding_stride_alignment( @@ -38897,8 +38722,8 @@ impl ::core::default::Default for PhysicalDevice4444FormatsFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDevice4444FormatsFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevice4444FormatsFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevice4444FormatsFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDevice4444FormatsFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDevice4444FormatsFeaturesEXT<'_> {} impl<'a> PhysicalDevice4444FormatsFeaturesEXT<'a> { #[inline] pub fn format_a4r4g4b4(mut self, format_a4r4g4b4: bool) -> Self { @@ -38939,8 +38764,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassShadingFeaturesHUAWEI<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> {} +unsafe impl Extends> + for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSubpassShadingFeaturesHUAWEI<'_> {} impl<'a> PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a> { #[inline] pub fn subpass_shading(mut self, subpass_shading: bool) -> Self { @@ -38978,12 +38806,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderFeaturesHU const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> {} -pub unsafe trait ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {} +unsafe impl Extends> for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'_> {} impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { #[inline] pub fn clusterculling_shader(mut self, clusterculling_shader: bool) -> Self { @@ -39007,10 +38834,7 @@ impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -39034,10 +38858,7 @@ impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -39045,10 +38866,7 @@ impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -39080,7 +38898,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceClusterCullingShaderVrsFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI; } -unsafe impl ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI +unsafe impl Extends> for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'_> { } @@ -39234,7 +39052,6 @@ impl ::core::default::Default for ImageBlit2<'_> { unsafe impl<'a> TaggedStructure for ImageBlit2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_BLIT_2; } -pub unsafe trait ExtendsImageBlit2 {} impl<'a> ImageBlit2<'a> { #[inline] pub fn src_subresource(mut self, src_subresource: ImageSubresourceLayers) -> Self { @@ -39265,7 +39082,7 @@ impl<'a> ImageBlit2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -39289,7 +39106,7 @@ impl<'a> ImageBlit2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -39297,7 +39114,7 @@ impl<'a> ImageBlit2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -39338,7 +39155,6 @@ impl ::core::default::Default for BufferImageCopy2<'_> { unsafe impl<'a> TaggedStructure for BufferImageCopy2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_IMAGE_COPY_2; } -pub unsafe trait ExtendsBufferImageCopy2 {} impl<'a> BufferImageCopy2<'a> { #[inline] pub fn buffer_offset(mut self, buffer_offset: DeviceSize) -> Self { @@ -39379,7 +39195,7 @@ impl<'a> BufferImageCopy2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -39403,7 +39219,7 @@ impl<'a> BufferImageCopy2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -39411,7 +39227,7 @@ impl<'a> BufferImageCopy2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -39632,7 +39448,6 @@ impl ::core::default::Default for BlitImageInfo2<'_> { unsafe impl<'a> TaggedStructure for BlitImageInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_INFO_2; } -pub unsafe trait ExtendsBlitImageInfo2 {} impl<'a> BlitImageInfo2<'a> { #[inline] pub fn src_image(mut self, src_image: Image) -> Self { @@ -39674,7 +39489,7 @@ impl<'a> BlitImageInfo2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -39698,7 +39513,7 @@ impl<'a> BlitImageInfo2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -39706,7 +39521,7 @@ impl<'a> BlitImageInfo2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -39921,8 +39736,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderImageAtomicInt64Features const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a> { #[inline] pub fn shader_image_int64_atomics(mut self, shader_image_int64_atomics: bool) -> Self { @@ -39964,7 +39782,7 @@ impl ::core::default::Default for FragmentShadingRateAttachmentInfoKHR<'_> { unsafe impl<'a> TaggedStructure for FragmentShadingRateAttachmentInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; } -unsafe impl ExtendsSubpassDescription2 for FragmentShadingRateAttachmentInfoKHR<'_> {} +unsafe impl Extends> for FragmentShadingRateAttachmentInfoKHR<'_> {} impl<'a> FragmentShadingRateAttachmentInfoKHR<'a> { #[inline] pub fn fragment_shading_rate_attachment( @@ -40013,7 +39831,7 @@ unsafe impl<'a> TaggedStructure for PipelineFragmentShadingRateStateCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo +unsafe impl Extends> for PipelineFragmentShadingRateStateCreateInfoKHR<'_> { } @@ -40061,8 +39879,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateFeaturesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFragmentShadingRateFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShadingRateFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceFragmentShadingRateFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceFragmentShadingRateFeaturesKHR<'_> {} impl<'a> PhysicalDeviceFragmentShadingRateFeaturesKHR<'a> { #[inline] pub fn pipeline_fragment_shading_rate(mut self, pipeline_fragment_shading_rate: bool) -> Self { @@ -40146,7 +39967,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRatePropertiesK const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceFragmentShadingRatePropertiesKHR<'_> { } @@ -40364,8 +40185,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTerminateInvocationFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTerminateInvocationFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTerminateInvocationFeatures<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderTerminateInvocationFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderTerminateInvocationFeatures<'_> {} impl<'a> PhysicalDeviceShaderTerminateInvocationFeatures<'a> { #[inline] pub fn shader_terminate_invocation(mut self, shader_terminate_invocation: bool) -> Self { @@ -40405,11 +40229,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateEnumsFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'_> {} impl<'a> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a> { #[inline] pub fn fragment_shading_rate_enums(mut self, fragment_shading_rate_enums: bool) -> Self { @@ -40461,7 +40285,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShadingRateEnumsProper const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'_> { } @@ -40508,7 +40332,7 @@ unsafe impl<'a> TaggedStructure for PipelineFragmentShadingRateEnumStateCreateIn const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV; } -unsafe impl ExtendsGraphicsPipelineCreateInfo +unsafe impl Extends> for PipelineFragmentShadingRateEnumStateCreateInfoNV<'_> { } @@ -40608,8 +40432,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceImage2DViewOf3DFeaturesEXT<'_> {} impl<'a> PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a> { #[inline] pub fn image2_d_view_of3_d(mut self, image2_d_view_of3_d: bool) -> Self { @@ -40650,8 +40474,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'_> {} impl<'a> PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a> { #[inline] pub fn image_sliced_view_of3_d(mut self, image_sliced_view_of3_d: bool) -> Self { @@ -40689,11 +40516,11 @@ unsafe impl<'a> TaggedStructure const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'_> { } @@ -40735,8 +40562,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'_> {} impl<'a> PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a> { #[inline] pub fn legacy_vertex_attributes(mut self, legacy_vertex_attributes: bool) -> Self { @@ -40772,7 +40602,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyVertexAttributesProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'_> { } @@ -40811,8 +40641,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMutableDescriptorTypeFeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'_> {} impl<'a> PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a> { #[inline] pub fn mutable_descriptor_type(mut self, mutable_descriptor_type: bool) -> Self { @@ -40879,8 +40712,8 @@ impl ::core::default::Default for MutableDescriptorTypeCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for MutableDescriptorTypeCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT; } -unsafe impl ExtendsDescriptorSetLayoutCreateInfo for MutableDescriptorTypeCreateInfoEXT<'_> {} -unsafe impl ExtendsDescriptorPoolCreateInfo for MutableDescriptorTypeCreateInfoEXT<'_> {} +unsafe impl Extends> for MutableDescriptorTypeCreateInfoEXT<'_> {} +unsafe impl Extends> for MutableDescriptorTypeCreateInfoEXT<'_> {} impl<'a> MutableDescriptorTypeCreateInfoEXT<'a> { #[inline] pub fn mutable_descriptor_type_lists( @@ -40920,8 +40753,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClipControlFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClipControlFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClipControlFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthClipControlFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthClipControlFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDepthClipControlFeaturesEXT<'a> { #[inline] pub fn depth_clip_control(mut self, depth_clip_control: bool) -> Self { @@ -40959,11 +40792,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a> { #[inline] pub fn device_generated_commands(mut self, device_generated_commands: bool) -> Self { @@ -41029,7 +40862,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDeviceGeneratedCommandsPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'_> { } @@ -41156,8 +40989,8 @@ impl ::core::default::Default for GeneratedCommandsPipelineInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GeneratedCommandsPipelineInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT; } -unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsPipelineInfoEXT<'_> {} -unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT +unsafe impl Extends> for GeneratedCommandsPipelineInfoEXT<'_> {} +unsafe impl Extends> for GeneratedCommandsPipelineInfoEXT<'_> { } @@ -41197,8 +41030,8 @@ impl ::core::default::Default for GeneratedCommandsShaderInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GeneratedCommandsShaderInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT; } -unsafe impl ExtendsGeneratedCommandsInfoEXT for GeneratedCommandsShaderInfoEXT<'_> {} -unsafe impl ExtendsGeneratedCommandsMemoryRequirementsInfoEXT +unsafe impl Extends> for GeneratedCommandsShaderInfoEXT<'_> {} +unsafe impl Extends> for GeneratedCommandsShaderInfoEXT<'_> { } @@ -41244,7 +41077,6 @@ unsafe impl<'a> TaggedStructure for GeneratedCommandsMemoryRequirementsInfoEXT<' const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT; } -pub unsafe trait ExtendsGeneratedCommandsMemoryRequirementsInfoEXT {} impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { #[inline] pub fn indirect_execution_set( @@ -41281,10 +41113,7 @@ impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -41308,10 +41137,7 @@ impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -41319,10 +41145,7 @@ impl<'a> GeneratedCommandsMemoryRequirementsInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -41579,7 +41402,6 @@ impl ::core::default::Default for GeneratedCommandsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GeneratedCommandsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT; } -pub unsafe trait ExtendsGeneratedCommandsInfoEXT {} impl<'a> GeneratedCommandsInfoEXT<'a> { #[inline] pub fn shader_stages(mut self, shader_stages: ShaderStageFlags) -> Self { @@ -41646,7 +41468,7 @@ impl<'a> GeneratedCommandsInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -41670,10 +41492,7 @@ impl<'a> GeneratedCommandsInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -41681,10 +41500,7 @@ impl<'a> GeneratedCommandsInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -41807,7 +41623,6 @@ impl ::core::default::Default for IndirectCommandsLayoutCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for IndirectCommandsLayoutCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT; } -pub unsafe trait ExtendsIndirectCommandsLayoutCreateInfoEXT {} impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: IndirectCommandsLayoutUsageFlagsEXT) -> Self { @@ -41844,10 +41659,7 @@ impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -41871,10 +41683,7 @@ impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -41882,10 +41691,7 @@ impl<'a> IndirectCommandsLayoutCreateInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -42138,7 +41944,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportDepthClipControlCreateInfoEX const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportDepthClipControlCreateInfoEXT<'_> { } @@ -42177,8 +41983,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampControlFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceDepthClampControlFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDepthClampControlFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDepthClampControlFeaturesEXT<'a> { #[inline] pub fn depth_clamp_control(mut self, depth_clamp_control: bool) -> Self { @@ -42216,7 +42025,7 @@ unsafe impl<'a> TaggedStructure for PipelineViewportDepthClampControlCreateInfoE const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineViewportStateCreateInfo +unsafe impl Extends> for PipelineViewportDepthClampControlCreateInfoEXT<'_> { } @@ -42260,11 +42069,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVertexInputDynamicStateFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'_> {} impl<'a> PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a> { #[inline] pub fn vertex_input_dynamic_state(mut self, vertex_input_dynamic_state: bool) -> Self { @@ -42300,8 +42109,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryRDMAFeaturesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExternalMemoryRDMAFeaturesNV<'_> {} impl<'a> PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a> { #[inline] pub fn external_memory_rdma(mut self, external_memory_rdma: bool) -> Self { @@ -42337,11 +42149,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderRelaxedExtendedInstructi const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'_> { } @@ -42493,8 +42305,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceColorWriteEnableFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceColorWriteEnableFeaturesEXT<'_> {} impl<'a> PhysicalDeviceColorWriteEnableFeaturesEXT<'a> { #[inline] pub fn color_write_enable(mut self, color_write_enable: bool) -> Self { @@ -42531,7 +42343,7 @@ impl ::core::default::Default for PipelineColorWriteCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for PipelineColorWriteCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineColorBlendStateCreateInfo for PipelineColorWriteCreateInfoEXT<'_> {} +unsafe impl Extends> for PipelineColorWriteCreateInfoEXT<'_> {} impl<'a> PipelineColorWriteCreateInfoEXT<'a> { #[inline] pub fn color_write_enables(mut self, color_write_enables: &'a [Bool32]) -> Self { @@ -42573,7 +42385,7 @@ impl ::core::default::Default for MemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for MemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_BARRIER_2; } -unsafe impl ExtendsSubpassDependency2 for MemoryBarrier2<'_> {} +unsafe impl Extends> for MemoryBarrier2<'_> {} impl<'a> MemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -42641,7 +42453,6 @@ impl ::core::default::Default for ImageMemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for ImageMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER_2; } -pub unsafe trait ExtendsImageMemoryBarrier2 {} impl<'a> ImageMemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -42702,7 +42513,7 @@ impl<'a> ImageMemoryBarrier2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -42726,10 +42537,7 @@ impl<'a> ImageMemoryBarrier2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -42737,7 +42545,7 @@ impl<'a> ImageMemoryBarrier2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -42784,7 +42592,6 @@ impl ::core::default::Default for BufferMemoryBarrier2<'_> { unsafe impl<'a> TaggedStructure for BufferMemoryBarrier2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER_2; } -pub unsafe trait ExtendsBufferMemoryBarrier2 {} impl<'a> BufferMemoryBarrier2<'a> { #[inline] pub fn src_stage_mask(mut self, src_stage_mask: PipelineStageFlags2) -> Self { @@ -42840,7 +42647,7 @@ impl<'a> BufferMemoryBarrier2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -42864,10 +42671,7 @@ impl<'a> BufferMemoryBarrier2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -42875,10 +42679,7 @@ impl<'a> BufferMemoryBarrier2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -43036,7 +42837,6 @@ impl ::core::default::Default for CommandBufferSubmitInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferSubmitInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_SUBMIT_INFO; } -pub unsafe trait ExtendsCommandBufferSubmitInfo {} impl<'a> CommandBufferSubmitInfo<'a> { #[inline] pub fn command_buffer(mut self, command_buffer: CommandBuffer) -> Self { @@ -43057,7 +42857,7 @@ impl<'a> CommandBufferSubmitInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -43081,10 +42881,7 @@ impl<'a> CommandBufferSubmitInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -43092,10 +42889,7 @@ impl<'a> CommandBufferSubmitInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -43138,7 +42932,6 @@ impl ::core::default::Default for SubmitInfo2<'_> { unsafe impl<'a> TaggedStructure for SubmitInfo2<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBMIT_INFO_2; } -pub unsafe trait ExtendsSubmitInfo2 {} impl<'a> SubmitInfo2<'a> { #[inline] pub fn flags(mut self, flags: SubmitFlags) -> Self { @@ -43181,7 +42974,7 @@ impl<'a> SubmitInfo2<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -43205,7 +42998,7 @@ impl<'a> SubmitInfo2<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -43213,7 +43006,7 @@ impl<'a> SubmitInfo2<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -43244,7 +43037,7 @@ impl ::core::default::Default for QueueFamilyCheckpointProperties2NV<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyCheckpointProperties2NV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyCheckpointProperties2NV<'_> {} +unsafe impl Extends> for QueueFamilyCheckpointProperties2NV<'_> {} impl<'a> QueueFamilyCheckpointProperties2NV<'a> { #[inline] pub fn checkpoint_execution_stage_mask( @@ -43323,8 +43116,8 @@ impl ::core::default::Default for PhysicalDeviceSynchronization2Features<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceSynchronization2Features<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSynchronization2Features<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSynchronization2Features<'_> {} +unsafe impl Extends> for PhysicalDeviceSynchronization2Features<'_> {} +unsafe impl Extends> for PhysicalDeviceSynchronization2Features<'_> {} impl<'a> PhysicalDeviceSynchronization2Features<'a> { #[inline] pub fn synchronization2(mut self, synchronization2: bool) -> Self { @@ -43360,8 +43153,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceHostImageCopyFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceHostImageCopyFeaturesEXT<'_> {} impl<'a> PhysicalDeviceHostImageCopyFeaturesEXT<'a> { #[inline] pub fn host_image_copy(mut self, host_image_copy: bool) -> Self { @@ -43407,7 +43200,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceHostImageCopyPropertiesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceHostImageCopyPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceHostImageCopyPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceHostImageCopyPropertiesEXT<'a> { #[inline] pub fn copy_src_layouts(mut self, copy_src_layouts: &'a mut [ImageLayout]) -> Self { @@ -43846,7 +43642,7 @@ impl ::core::default::Default for SubresourceHostMemcpySizeEXT<'_> { unsafe impl<'a> TaggedStructure for SubresourceHostMemcpySizeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE_EXT; } -unsafe impl ExtendsSubresourceLayout2KHR for SubresourceHostMemcpySizeEXT<'_> {} +unsafe impl Extends> for SubresourceHostMemcpySizeEXT<'_> {} impl<'a> SubresourceHostMemcpySizeEXT<'a> { #[inline] pub fn size(mut self, size: DeviceSize) -> Self { @@ -43884,7 +43680,7 @@ unsafe impl<'a> TaggedStructure for HostImageCopyDevicePerformanceQueryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT; } -unsafe impl ExtendsImageFormatProperties2 for HostImageCopyDevicePerformanceQueryEXT<'_> {} +unsafe impl Extends> for HostImageCopyDevicePerformanceQueryEXT<'_> {} impl<'a> HostImageCopyDevicePerformanceQueryEXT<'a> { #[inline] pub fn optimal_device_access(mut self, optimal_device_access: bool) -> Self { @@ -43929,11 +43725,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePrimitivesGeneratedQueryFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'_> {} impl<'a> PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a> { #[inline] pub fn primitives_generated_query(mut self, primitives_generated_query: bool) -> Self { @@ -43987,8 +43786,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLegacyDitheringFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceLegacyDitheringFeaturesEXT<'_> {} impl<'a> PhysicalDeviceLegacyDitheringFeaturesEXT<'a> { #[inline] pub fn legacy_dithering(mut self, legacy_dithering: bool) -> Self { @@ -44024,11 +43823,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultisampledRenderToSingleSamp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'_> { } @@ -44069,7 +43868,7 @@ impl ::core::default::Default for SubpassResolvePerformanceQueryEXT<'_> { unsafe impl<'a> TaggedStructure for SubpassResolvePerformanceQueryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT; } -unsafe impl ExtendsFormatProperties2 for SubpassResolvePerformanceQueryEXT<'_> {} +unsafe impl Extends> for SubpassResolvePerformanceQueryEXT<'_> {} impl<'a> SubpassResolvePerformanceQueryEXT<'a> { #[inline] pub fn optimal(mut self, optimal: bool) -> Self { @@ -44107,8 +43906,8 @@ unsafe impl<'a> TaggedStructure for MultisampledRenderToSingleSampledInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT; } -unsafe impl ExtendsSubpassDescription2 for MultisampledRenderToSingleSampledInfoEXT<'_> {} -unsafe impl ExtendsRenderingInfo for MultisampledRenderToSingleSampledInfoEXT<'_> {} +unsafe impl Extends> for MultisampledRenderToSingleSampledInfoEXT<'_> {} +unsafe impl Extends> for MultisampledRenderToSingleSampledInfoEXT<'_> {} impl<'a> MultisampledRenderToSingleSampledInfoEXT<'a> { #[inline] pub fn multisampled_render_to_single_sampled_enable( @@ -44153,11 +43952,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineProtectedAccessFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDevicePipelineProtectedAccessFeaturesEXT<'_> {} impl<'a> PhysicalDevicePipelineProtectedAccessFeaturesEXT<'a> { #[inline] pub fn pipeline_protected_access(mut self, pipeline_protected_access: bool) -> Self { @@ -44192,7 +43991,7 @@ impl ::core::default::Default for QueueFamilyVideoPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for QueueFamilyVideoPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyVideoPropertiesKHR<'_> {} +unsafe impl Extends> for QueueFamilyVideoPropertiesKHR<'_> {} impl<'a> QueueFamilyVideoPropertiesKHR<'a> { #[inline] pub fn video_codec_operations( @@ -44231,7 +44030,7 @@ unsafe impl<'a> TaggedStructure for QueueFamilyQueryResultStatusPropertiesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR; } -unsafe impl ExtendsQueueFamilyProperties2 for QueueFamilyQueryResultStatusPropertiesKHR<'_> {} +unsafe impl Extends> for QueueFamilyQueryResultStatusPropertiesKHR<'_> {} impl<'a> QueueFamilyQueryResultStatusPropertiesKHR<'a> { #[inline] pub fn query_result_status_support(mut self, query_result_status_support: bool) -> Self { @@ -44268,10 +44067,10 @@ impl ::core::default::Default for VideoProfileListInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoProfileListInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_LIST_INFO_KHR; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for VideoProfileListInfoKHR<'_> {} -unsafe impl ExtendsPhysicalDeviceVideoFormatInfoKHR for VideoProfileListInfoKHR<'_> {} -unsafe impl ExtendsImageCreateInfo for VideoProfileListInfoKHR<'_> {} -unsafe impl ExtendsBufferCreateInfo for VideoProfileListInfoKHR<'_> {} +unsafe impl Extends> for VideoProfileListInfoKHR<'_> {} +unsafe impl Extends> for VideoProfileListInfoKHR<'_> {} +unsafe impl Extends> for VideoProfileListInfoKHR<'_> {} +unsafe impl Extends> for VideoProfileListInfoKHR<'_> {} impl<'a> VideoProfileListInfoKHR<'a> { #[inline] pub fn profiles(mut self, profiles: &'a [VideoProfileInfoKHR<'a>]) -> Self { @@ -44307,7 +44106,6 @@ impl ::core::default::Default for PhysicalDeviceVideoFormatInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoFormatInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR; } -pub unsafe trait ExtendsPhysicalDeviceVideoFormatInfoKHR {} impl<'a> PhysicalDeviceVideoFormatInfoKHR<'a> { #[inline] pub fn image_usage(mut self, image_usage: ImageUsageFlags) -> Self { @@ -44323,10 +44121,7 @@ impl<'a> PhysicalDeviceVideoFormatInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -44350,10 +44145,7 @@ impl<'a> PhysicalDeviceVideoFormatInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -44361,10 +44153,7 @@ impl<'a> PhysicalDeviceVideoFormatInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -44470,8 +44259,7 @@ impl ::core::default::Default for VideoProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_PROFILE_INFO_KHR; } -unsafe impl ExtendsQueryPoolCreateInfo for VideoProfileInfoKHR<'_> {} -pub unsafe trait ExtendsVideoProfileInfoKHR {} +unsafe impl Extends> for VideoProfileInfoKHR<'_> {} impl<'a> VideoProfileInfoKHR<'a> { #[inline] pub fn video_codec_operation( @@ -44508,7 +44296,7 @@ impl<'a> VideoProfileInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -44532,10 +44320,7 @@ impl<'a> VideoProfileInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -44543,7 +44328,7 @@ impl<'a> VideoProfileInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -44590,7 +44375,6 @@ impl ::core::default::Default for VideoCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CAPABILITIES_KHR; } -pub unsafe trait ExtendsVideoCapabilitiesKHR {} impl<'a> VideoCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoCapabilityFlagsKHR) -> Self { @@ -44652,7 +44436,7 @@ impl<'a> VideoCapabilitiesKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -44676,10 +44460,7 @@ impl<'a> VideoCapabilitiesKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -44687,10 +44468,7 @@ impl<'a> VideoCapabilitiesKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -44874,7 +44652,6 @@ impl ::core::default::Default for VideoReferenceSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoReferenceSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR; } -pub unsafe trait ExtendsVideoReferenceSlotInfoKHR {} impl<'a> VideoReferenceSlotInfoKHR<'a> { #[inline] pub fn slot_index(mut self, slot_index: i32) -> Self { @@ -44898,7 +44675,7 @@ impl<'a> VideoReferenceSlotInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -44922,10 +44699,7 @@ impl<'a> VideoReferenceSlotInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -44933,10 +44707,7 @@ impl<'a> VideoReferenceSlotInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -44967,7 +44738,7 @@ impl ::core::default::Default for VideoDecodeCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeCapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoDecodeCapabilitiesKHR<'_> {} impl<'a> VideoDecodeCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoDecodeCapabilityFlagsKHR) -> Self { @@ -45002,8 +44773,8 @@ impl ::core::default::Default for VideoDecodeUsageInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeUsageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_USAGE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeUsageInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeUsageInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeUsageInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeUsageInfoKHR<'_> {} impl<'a> VideoDecodeUsageInfoKHR<'a> { #[inline] pub fn video_usage_hints(mut self, video_usage_hints: VideoDecodeUsageFlagsKHR) -> Self { @@ -45052,7 +44823,6 @@ impl ::core::default::Default for VideoDecodeInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_INFO_KHR; } -pub unsafe trait ExtendsVideoDecodeInfoKHR {} impl<'a> VideoDecodeInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoDecodeFlagsKHR) -> Self { @@ -45105,7 +44875,7 @@ impl<'a> VideoDecodeInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -45129,7 +44899,7 @@ impl<'a> VideoDecodeInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -45137,7 +44907,7 @@ impl<'a> VideoDecodeInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -45169,8 +44939,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceVideoMaintenance1FeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceVideoMaintenance1FeaturesKHR<'_> {} impl<'a> PhysicalDeviceVideoMaintenance1FeaturesKHR<'a> { #[inline] pub fn video_maintenance1(mut self, video_maintenance1: bool) -> Self { @@ -45209,8 +44982,8 @@ impl ::core::default::Default for VideoInlineQueryInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoInlineQueryInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_INLINE_QUERY_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoInlineQueryInfoKHR<'_> {} -unsafe impl ExtendsVideoEncodeInfoKHR for VideoInlineQueryInfoKHR<'_> {} +unsafe impl Extends> for VideoInlineQueryInfoKHR<'_> {} +unsafe impl Extends> for VideoInlineQueryInfoKHR<'_> {} impl<'a> VideoInlineQueryInfoKHR<'a> { #[inline] pub fn query_pool(mut self, query_pool: QueryPool) -> Self { @@ -45257,8 +45030,8 @@ impl ::core::default::Default for VideoDecodeH264ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH264ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH264ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH264ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH264ProfileInfoKHR<'_> {} impl<'a> VideoDecodeH264ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH264ProfileIdc) -> Self { @@ -45300,7 +45073,7 @@ impl ::core::default::Default for VideoDecodeH264CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH264CapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoDecodeH264CapabilitiesKHR<'_> {} impl<'a> VideoDecodeH264CapabilitiesKHR<'a> { #[inline] pub fn max_level_idc(mut self, max_level_idc: StdVideoH264LevelIdc) -> Self { @@ -45347,7 +45120,7 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH264SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR +unsafe impl Extends> for VideoDecodeH264SessionParametersAddInfoKHR<'_> { } @@ -45397,7 +45170,7 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH264SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR +unsafe impl Extends> for VideoDecodeH264SessionParametersCreateInfoKHR<'_> { } @@ -45452,7 +45225,7 @@ impl ::core::default::Default for VideoDecodeH264PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH264PictureInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH264PictureInfoKHR<'_> {} impl<'a> VideoDecodeH264PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeH264PictureInfo) -> Self { @@ -45493,7 +45266,7 @@ impl ::core::default::Default for VideoDecodeH264DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH264DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH264DpbSlotInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH264DpbSlotInfoKHR<'_> {} impl<'a> VideoDecodeH264DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -45531,8 +45304,8 @@ impl ::core::default::Default for VideoDecodeH265ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeH265ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeH265ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH265ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH265ProfileInfoKHR<'_> {} impl<'a> VideoDecodeH265ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH265ProfileIdc) -> Self { @@ -45567,7 +45340,7 @@ impl ::core::default::Default for VideoDecodeH265CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeH265CapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoDecodeH265CapabilitiesKHR<'_> {} impl<'a> VideoDecodeH265CapabilitiesKHR<'a> { #[inline] pub fn max_level_idc(mut self, max_level_idc: StdVideoH265LevelIdc) -> Self { @@ -45613,7 +45386,7 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH265SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR +unsafe impl Extends> for VideoDecodeH265SessionParametersAddInfoKHR<'_> { } @@ -45671,7 +45444,7 @@ unsafe impl<'a> TaggedStructure for VideoDecodeH265SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR +unsafe impl Extends> for VideoDecodeH265SessionParametersCreateInfoKHR<'_> { } @@ -45731,7 +45504,7 @@ impl ::core::default::Default for VideoDecodeH265PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeH265PictureInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH265PictureInfoKHR<'_> {} impl<'a> VideoDecodeH265PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeH265PictureInfo) -> Self { @@ -45772,7 +45545,7 @@ impl ::core::default::Default for VideoDecodeH265DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeH265DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeH265DpbSlotInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeH265DpbSlotInfoKHR<'_> {} impl<'a> VideoDecodeH265DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -45812,8 +45585,8 @@ impl ::core::default::Default for VideoDecodeAV1ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoDecodeAV1ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoDecodeAV1ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeAV1ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeAV1ProfileInfoKHR<'_> {} impl<'a> VideoDecodeAV1ProfileInfoKHR<'a> { #[inline] pub fn std_profile(mut self, std_profile: StdVideoAV1Profile) -> Self { @@ -45853,7 +45626,7 @@ impl ::core::default::Default for VideoDecodeAV1CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoDecodeAV1CapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoDecodeAV1CapabilitiesKHR<'_> {} impl<'a> VideoDecodeAV1CapabilitiesKHR<'a> { #[inline] pub fn max_level(mut self, max_level: StdVideoAV1Level) -> Self { @@ -45889,7 +45662,7 @@ unsafe impl<'a> TaggedStructure for VideoDecodeAV1SessionParametersCreateInfoKHR const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR +unsafe impl Extends> for VideoDecodeAV1SessionParametersCreateInfoKHR<'_> { } @@ -45940,7 +45713,7 @@ impl ::core::default::Default for VideoDecodeAV1PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoDecodeInfoKHR for VideoDecodeAV1PictureInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeAV1PictureInfoKHR<'_> {} impl<'a> VideoDecodeAV1PictureInfoKHR<'a> { #[inline] pub fn std_picture_info(mut self, std_picture_info: &'a StdVideoDecodeAV1PictureInfo) -> Self { @@ -46000,7 +45773,7 @@ impl ::core::default::Default for VideoDecodeAV1DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoDecodeAV1DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoDecodeAV1DpbSlotInfoKHR<'_> {} +unsafe impl Extends> for VideoDecodeAV1DpbSlotInfoKHR<'_> {} impl<'a> VideoDecodeAV1DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -46054,7 +45827,6 @@ impl ::core::default::Default for VideoSessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_CREATE_INFO_KHR; } -pub unsafe trait ExtendsVideoSessionCreateInfoKHR {} impl<'a> VideoSessionCreateInfoKHR<'a> { #[inline] pub fn queue_family_index(mut self, queue_family_index: u32) -> Self { @@ -46110,7 +45882,7 @@ impl<'a> VideoSessionCreateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46134,10 +45906,7 @@ impl<'a> VideoSessionCreateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46145,10 +45914,7 @@ impl<'a> VideoSessionCreateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46183,7 +45949,6 @@ impl ::core::default::Default for VideoSessionParametersCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionParametersCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR; } -pub unsafe trait ExtendsVideoSessionParametersCreateInfoKHR {} impl<'a> VideoSessionParametersCreateInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoSessionParametersCreateFlagsKHR) -> Self { @@ -46212,10 +45977,7 @@ impl<'a> VideoSessionParametersCreateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46239,10 +46001,7 @@ impl<'a> VideoSessionParametersCreateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46250,10 +46009,7 @@ impl<'a> VideoSessionParametersCreateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46284,7 +46040,6 @@ impl ::core::default::Default for VideoSessionParametersUpdateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoSessionParametersUpdateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR; } -pub unsafe trait ExtendsVideoSessionParametersUpdateInfoKHR {} impl<'a> VideoSessionParametersUpdateInfoKHR<'a> { #[inline] pub fn update_sequence_count(mut self, update_sequence_count: u32) -> Self { @@ -46300,10 +46055,7 @@ impl<'a> VideoSessionParametersUpdateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46327,10 +46079,7 @@ impl<'a> VideoSessionParametersUpdateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46338,10 +46087,7 @@ impl<'a> VideoSessionParametersUpdateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46373,7 +46119,6 @@ unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersGetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeSessionParametersGetInfoKHR {} impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { #[inline] pub fn video_session_parameters( @@ -46392,10 +46137,7 @@ impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46419,10 +46161,7 @@ impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46430,10 +46169,7 @@ impl<'a> VideoEncodeSessionParametersGetInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46465,7 +46201,6 @@ unsafe impl<'a> TaggedStructure for VideoEncodeSessionParametersFeedbackInfoKHR< const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeSessionParametersFeedbackInfoKHR {} impl<'a> VideoEncodeSessionParametersFeedbackInfoKHR<'a> { #[inline] pub fn has_overrides(mut self, has_overrides: bool) -> Self { @@ -46481,10 +46216,7 @@ impl<'a> VideoEncodeSessionParametersFeedbackInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46508,10 +46240,7 @@ impl<'a> VideoEncodeSessionParametersFeedbackInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46519,10 +46248,7 @@ impl<'a> VideoEncodeSessionParametersFeedbackInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46561,7 +46287,6 @@ impl ::core::default::Default for VideoBeginCodingInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoBeginCodingInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_BEGIN_CODING_INFO_KHR; } -pub unsafe trait ExtendsVideoBeginCodingInfoKHR {} impl<'a> VideoBeginCodingInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoBeginCodingFlagsKHR) -> Self { @@ -46596,7 +46321,7 @@ impl<'a> VideoBeginCodingInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46620,10 +46345,7 @@ impl<'a> VideoBeginCodingInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46631,10 +46353,7 @@ impl<'a> VideoBeginCodingInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46699,7 +46418,6 @@ impl ::core::default::Default for VideoCodingControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoCodingControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_CODING_CONTROL_INFO_KHR; } -pub unsafe trait ExtendsVideoCodingControlInfoKHR {} impl<'a> VideoCodingControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoCodingControlFlagsKHR) -> Self { @@ -46715,7 +46433,7 @@ impl<'a> VideoCodingControlInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46739,10 +46457,7 @@ impl<'a> VideoCodingControlInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46750,10 +46465,7 @@ impl<'a> VideoCodingControlInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46788,8 +46500,8 @@ impl ::core::default::Default for VideoEncodeUsageInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeUsageInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_USAGE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeUsageInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeUsageInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeUsageInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeUsageInfoKHR<'_> {} impl<'a> VideoEncodeUsageInfoKHR<'a> { #[inline] pub fn video_usage_hints(mut self, video_usage_hints: VideoEncodeUsageFlagsKHR) -> Self { @@ -46850,7 +46562,6 @@ impl ::core::default::Default for VideoEncodeInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeInfoKHR {} impl<'a> VideoEncodeInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeFlagsKHR) -> Self { @@ -46911,7 +46622,7 @@ impl<'a> VideoEncodeInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -46935,7 +46646,7 @@ impl<'a> VideoEncodeInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -46943,7 +46654,7 @@ impl<'a> VideoEncodeInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -46975,7 +46686,7 @@ unsafe impl<'a> TaggedStructure for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR; } -unsafe impl ExtendsQueryPoolCreateInfo for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'_> {} +unsafe impl Extends> for QueryPoolVideoEncodeFeedbackCreateInfoKHR<'_> {} impl<'a> QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a> { #[inline] pub fn encode_feedback_flags( @@ -47013,8 +46724,11 @@ impl ::core::default::Default for VideoEncodeQualityLevelInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeQualityLevelInfoKHR<'_> {} -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR for VideoEncodeQualityLevelInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeQualityLevelInfoKHR<'_> {} +unsafe impl Extends> + for VideoEncodeQualityLevelInfoKHR<'_> +{ +} impl<'a> VideoEncodeQualityLevelInfoKHR<'a> { #[inline] pub fn quality_level(mut self, quality_level: u32) -> Self { @@ -47093,7 +46807,6 @@ impl ::core::default::Default for VideoEncodeQualityLevelPropertiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeQualityLevelPropertiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR; } -pub unsafe trait ExtendsVideoEncodeQualityLevelPropertiesKHR {} impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { #[inline] pub fn preferred_rate_control_mode( @@ -47120,10 +46833,7 @@ impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -47147,10 +46857,7 @@ impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -47158,10 +46865,7 @@ impl<'a> VideoEncodeQualityLevelPropertiesKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -47202,8 +46906,8 @@ impl ::core::default::Default for VideoEncodeRateControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeRateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeRateControlInfoKHR<'_> {} -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeRateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeRateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeRateControlInfoKHR<'_> {} impl<'a> VideoEncodeRateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeRateControlFlagsKHR) -> Self { @@ -47271,7 +46975,6 @@ impl ::core::default::Default for VideoEncodeRateControlLayerInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeRateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR; } -pub unsafe trait ExtendsVideoEncodeRateControlLayerInfoKHR {} impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { #[inline] pub fn average_bitrate(mut self, average_bitrate: u64) -> Self { @@ -47302,10 +47005,7 @@ impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -47329,10 +47029,7 @@ impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -47340,10 +47037,7 @@ impl<'a> VideoEncodeRateControlLayerInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -47386,7 +47080,7 @@ impl ::core::default::Default for VideoEncodeCapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeCapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeCapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoEncodeCapabilitiesKHR<'_> {} impl<'a> VideoEncodeCapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeCapabilityFlagsKHR) -> Self { @@ -47484,7 +47178,7 @@ impl ::core::default::Default for VideoEncodeH264CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH264CapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264CapabilitiesKHR<'_> {} impl<'a> VideoEncodeH264CapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH264CapabilityFlagsKHR) -> Self { @@ -47605,7 +47299,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264QualityLevelPropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR +unsafe impl Extends> for VideoEncodeH264QualityLevelPropertiesKHR<'_> { } @@ -47700,7 +47394,7 @@ impl ::core::default::Default for VideoEncodeH264SessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH264SessionCreateInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264SessionCreateInfoKHR<'_> {} impl<'a> VideoEncodeH264SessionCreateInfoKHR<'a> { #[inline] pub fn use_max_level_idc(mut self, use_max_level_idc: bool) -> Self { @@ -47747,7 +47441,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR +unsafe impl Extends> for VideoEncodeH264SessionParametersAddInfoKHR<'_> { } @@ -47797,7 +47491,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR +unsafe impl Extends> for VideoEncodeH264SessionParametersCreateInfoKHR<'_> { } @@ -47855,7 +47549,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersGetInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR +unsafe impl Extends> for VideoEncodeH264SessionParametersGetInfoKHR<'_> { } @@ -47911,7 +47605,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264SessionParametersFeedbackInfo const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR +unsafe impl Extends> for VideoEncodeH264SessionParametersFeedbackInfoKHR<'_> { } @@ -47954,7 +47648,7 @@ impl ::core::default::Default for VideoEncodeH264DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH264DpbSlotInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264DpbSlotInfoKHR<'_> {} impl<'a> VideoEncodeH264DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -47998,7 +47692,7 @@ impl ::core::default::Default for VideoEncodeH264PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH264PictureInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264PictureInfoKHR<'_> {} impl<'a> VideoEncodeH264PictureInfoKHR<'a> { #[inline] pub fn nalu_slice_entries( @@ -48047,8 +47741,8 @@ impl ::core::default::Default for VideoEncodeH264ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH264ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH264ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264ProfileInfoKHR<'_> {} impl<'a> VideoEncodeH264ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH264ProfileIdc) -> Self { @@ -48132,8 +47826,8 @@ impl ::core::default::Default for VideoEncodeH264RateControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH264RateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH264RateControlInfoKHR<'_> {} -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264RateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264RateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264RateControlInfoKHR<'_> {} impl<'a> VideoEncodeH264RateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH264RateControlFlagsKHR) -> Self { @@ -48249,7 +47943,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264GopRemainingFrameInfoKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH264GopRemainingFrameInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH264GopRemainingFrameInfoKHR<'_> {} impl<'a> VideoEncodeH264GopRemainingFrameInfoKHR<'a> { #[inline] pub fn use_gop_remaining_frames(mut self, use_gop_remaining_frames: bool) -> Self { @@ -48310,7 +48004,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH264RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR +unsafe impl Extends> for VideoEncodeH264RateControlLayerInfoKHR<'_> { } @@ -48403,7 +48097,7 @@ impl ::core::default::Default for VideoEncodeH265CapabilitiesKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265CapabilitiesKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR; } -unsafe impl ExtendsVideoCapabilitiesKHR for VideoEncodeH265CapabilitiesKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265CapabilitiesKHR<'_> {} impl<'a> VideoEncodeH265CapabilitiesKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH265CapabilityFlagsKHR) -> Self { @@ -48541,7 +48235,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265QualityLevelPropertiesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR; } -unsafe impl ExtendsVideoEncodeQualityLevelPropertiesKHR +unsafe impl Extends> for VideoEncodeH265QualityLevelPropertiesKHR<'_> { } @@ -48628,7 +48322,7 @@ impl ::core::default::Default for VideoEncodeH265SessionCreateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionCreateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionCreateInfoKHR for VideoEncodeH265SessionCreateInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265SessionCreateInfoKHR<'_> {} impl<'a> VideoEncodeH265SessionCreateInfoKHR<'a> { #[inline] pub fn use_max_level_idc(mut self, use_max_level_idc: bool) -> Self { @@ -48679,7 +48373,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersAddInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersUpdateInfoKHR +unsafe impl Extends> for VideoEncodeH265SessionParametersAddInfoKHR<'_> { } @@ -48737,7 +48431,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersCreateInfoKH const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR; } -unsafe impl ExtendsVideoSessionParametersCreateInfoKHR +unsafe impl Extends> for VideoEncodeH265SessionParametersCreateInfoKHR<'_> { } @@ -48804,7 +48498,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersGetInfoKHR<' const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersGetInfoKHR +unsafe impl Extends> for VideoEncodeH265SessionParametersGetInfoKHR<'_> { } @@ -48872,7 +48566,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265SessionParametersFeedbackInfo const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR; } -unsafe impl ExtendsVideoEncodeSessionParametersFeedbackInfoKHR +unsafe impl Extends> for VideoEncodeH265SessionParametersFeedbackInfoKHR<'_> { } @@ -48924,7 +48618,7 @@ impl ::core::default::Default for VideoEncodeH265PictureInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265PictureInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR; } -unsafe impl ExtendsVideoEncodeInfoKHR for VideoEncodeH265PictureInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265PictureInfoKHR<'_> {} impl<'a> VideoEncodeH265PictureInfoKHR<'a> { #[inline] pub fn nalu_slice_segment_entries( @@ -49021,8 +48715,8 @@ impl ::core::default::Default for VideoEncodeH265RateControlInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265RateControlInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR; } -unsafe impl ExtendsVideoCodingControlInfoKHR for VideoEncodeH265RateControlInfoKHR<'_> {} -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265RateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265RateControlInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265RateControlInfoKHR<'_> {} impl<'a> VideoEncodeH265RateControlInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: VideoEncodeH265RateControlFlagsKHR) -> Self { @@ -49138,7 +48832,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265GopRemainingFrameInfoKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR; } -unsafe impl ExtendsVideoBeginCodingInfoKHR for VideoEncodeH265GopRemainingFrameInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265GopRemainingFrameInfoKHR<'_> {} impl<'a> VideoEncodeH265GopRemainingFrameInfoKHR<'a> { #[inline] pub fn use_gop_remaining_frames(mut self, use_gop_remaining_frames: bool) -> Self { @@ -49199,7 +48893,7 @@ unsafe impl<'a> TaggedStructure for VideoEncodeH265RateControlLayerInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR; } -unsafe impl ExtendsVideoEncodeRateControlLayerInfoKHR +unsafe impl Extends> for VideoEncodeH265RateControlLayerInfoKHR<'_> { } @@ -49262,8 +48956,8 @@ impl ::core::default::Default for VideoEncodeH265ProfileInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265ProfileInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR; } -unsafe impl ExtendsVideoProfileInfoKHR for VideoEncodeH265ProfileInfoKHR<'_> {} -unsafe impl ExtendsQueryPoolCreateInfo for VideoEncodeH265ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265ProfileInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265ProfileInfoKHR<'_> {} impl<'a> VideoEncodeH265ProfileInfoKHR<'a> { #[inline] pub fn std_profile_idc(mut self, std_profile_idc: StdVideoH265ProfileIdc) -> Self { @@ -49298,7 +48992,7 @@ impl ::core::default::Default for VideoEncodeH265DpbSlotInfoKHR<'_> { unsafe impl<'a> TaggedStructure for VideoEncodeH265DpbSlotInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR; } -unsafe impl ExtendsVideoReferenceSlotInfoKHR for VideoEncodeH265DpbSlotInfoKHR<'_> {} +unsafe impl Extends> for VideoEncodeH265DpbSlotInfoKHR<'_> {} impl<'a> VideoEncodeH265DpbSlotInfoKHR<'a> { #[inline] pub fn std_reference_info( @@ -49337,11 +49031,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceInheritedViewportScissorFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceInheritedViewportScissorFeaturesNV<'_> {} impl<'a> PhysicalDeviceInheritedViewportScissorFeaturesNV<'a> { #[inline] pub fn inherited_viewport_scissor2_d(mut self, inherited_viewport_scissor2_d: bool) -> Self { @@ -49381,7 +49075,7 @@ unsafe impl<'a> TaggedStructure for CommandBufferInheritanceViewportScissorInfoN const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV; } -unsafe impl ExtendsCommandBufferInheritanceInfo +unsafe impl Extends> for CommandBufferInheritanceViewportScissorInfoNV<'_> { } @@ -49430,8 +49124,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcr2Plane444FormatsFeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'_> {} impl<'a> PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a> { #[inline] pub fn ycbcr2plane444_formats(mut self, ycbcr2plane444_formats: bool) -> Self { @@ -49469,8 +49166,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceProvokingVertexFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceProvokingVertexFeaturesEXT<'_> {} impl<'a> PhysicalDeviceProvokingVertexFeaturesEXT<'a> { #[inline] pub fn provoking_vertex_last(mut self, provoking_vertex_last: bool) -> Self { @@ -49517,7 +49214,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceProvokingVertexPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceProvokingVertexPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceProvokingVertexPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceProvokingVertexPropertiesEXT<'a> { #[inline] pub fn provoking_vertex_mode_per_pipeline( @@ -49565,7 +49265,7 @@ unsafe impl<'a> TaggedStructure for PipelineRasterizationProvokingVertexStateCre const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineRasterizationStateCreateInfo +unsafe impl Extends> for PipelineRasterizationProvokingVertexStateCreateInfoEXT<'_> { } @@ -49799,8 +49499,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDescriptorBufferFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDescriptorBufferFeaturesEXT<'a> { #[inline] pub fn descriptor_buffer(mut self, descriptor_buffer: bool) -> Self { @@ -49924,7 +49624,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferPropertiesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceDescriptorBufferPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceDescriptorBufferPropertiesEXT<'a> { #[inline] pub fn combined_image_sampler_descriptor_single_array( @@ -50205,7 +49908,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorBufferDensityMapProp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'_> { } @@ -50297,7 +50000,6 @@ impl ::core::default::Default for DescriptorBufferBindingInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DescriptorBufferBindingInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT; } -pub unsafe trait ExtendsDescriptorBufferBindingInfoEXT {} impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[inline] pub fn address(mut self, address: DeviceAddress) -> Self { @@ -50318,10 +50020,7 @@ impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -50345,10 +50044,7 @@ impl<'a> DescriptorBufferBindingInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -50356,10 +50052,7 @@ impl<'a> DescriptorBufferBindingInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -50391,7 +50084,7 @@ unsafe impl<'a> TaggedStructure for DescriptorBufferBindingPushDescriptorBufferH const STRUCTURE_TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT; } -unsafe impl ExtendsDescriptorBufferBindingInfoEXT +unsafe impl Extends> for DescriptorBufferBindingPushDescriptorBufferHandleEXT<'_> { } @@ -50687,15 +50380,15 @@ unsafe impl<'a> TaggedStructure for OpaqueCaptureDescriptorDataCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT; } -unsafe impl ExtendsBufferCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsImageCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsImageViewCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsSamplerCreateInfo for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} -unsafe impl ExtendsAccelerationStructureCreateInfoKHR +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> {} +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> { } -unsafe impl ExtendsAccelerationStructureCreateInfoNV +unsafe impl Extends> for OpaqueCaptureDescriptorDataCreateInfoEXT<'_> { } @@ -50737,8 +50430,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerDotProductFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderIntegerDotProductFeatures<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderIntegerDotProductFeatures<'_> {} impl<'a> PhysicalDeviceShaderIntegerDotProductFeatures<'a> { #[inline] pub fn shader_integer_dot_product(mut self, shader_integer_dot_product: bool) -> Self { @@ -50799,7 +50495,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderIntegerDotProductPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceShaderIntegerDotProductProperties<'_> { } @@ -51111,7 +50807,7 @@ impl ::core::default::Default for PhysicalDeviceDrmPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceDrmPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceDrmPropertiesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDrmPropertiesEXT<'_> {} impl<'a> PhysicalDeviceDrmPropertiesEXT<'a> { #[inline] pub fn has_primary(mut self, has_primary: bool) -> Self { @@ -51172,11 +50868,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderBarycentricFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'_> {} impl<'a> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a> { #[inline] pub fn fragment_shader_barycentric(mut self, fragment_shader_barycentric: bool) -> Self { @@ -51212,7 +50911,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFragmentShaderBarycentricPrope const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'_> { } @@ -51257,8 +50956,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingMotionBlurFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingMotionBlurFeaturesNV<'_> {} impl<'a> PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a> { #[inline] pub fn ray_tracing_motion_blur(mut self, ray_tracing_motion_blur: bool) -> Self { @@ -51303,8 +51005,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingValidationFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceRayTracingValidationFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingValidationFeaturesNV<'_> {} impl<'a> PhysicalDeviceRayTracingValidationFeaturesNV<'a> { #[inline] pub fn ray_tracing_validation(mut self, ray_tracing_validation: bool) -> Self { @@ -51349,7 +51054,7 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureGeometryMotionTriangles const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV; } -unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR +unsafe impl Extends> for AccelerationStructureGeometryMotionTrianglesDataNV<'_> { } @@ -51389,7 +51094,10 @@ impl ::core::default::Default for AccelerationStructureMotionInfoNV<'_> { unsafe impl<'a> TaggedStructure for AccelerationStructureMotionInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV; } -unsafe impl ExtendsAccelerationStructureCreateInfoKHR for AccelerationStructureMotionInfoNV<'_> {} +unsafe impl Extends> + for AccelerationStructureMotionInfoNV<'_> +{ +} impl<'a> AccelerationStructureMotionInfoNV<'a> { #[inline] pub fn max_instances(mut self, max_instances: u32) -> Self { @@ -51653,7 +51361,7 @@ impl ::core::default::Default for ImportMemoryBufferCollectionFUCHSIA<'_> { unsafe impl<'a> TaggedStructure for ImportMemoryBufferCollectionFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMemoryBufferCollectionFUCHSIA<'_> {} +unsafe impl Extends> for ImportMemoryBufferCollectionFUCHSIA<'_> {} impl<'a> ImportMemoryBufferCollectionFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -51696,7 +51404,7 @@ unsafe impl<'a> TaggedStructure for BufferCollectionImageCreateInfoFUCHSIA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA; } -unsafe impl ExtendsImageCreateInfo for BufferCollectionImageCreateInfoFUCHSIA<'_> {} +unsafe impl Extends> for BufferCollectionImageCreateInfoFUCHSIA<'_> {} impl<'a> BufferCollectionImageCreateInfoFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -51739,7 +51447,7 @@ unsafe impl<'a> TaggedStructure for BufferCollectionBufferCreateInfoFUCHSIA<'a> const STRUCTURE_TYPE: StructureType = StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA; } -unsafe impl ExtendsBufferCreateInfo for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} +unsafe impl Extends> for BufferCollectionBufferCreateInfoFUCHSIA<'_> {} impl<'a> BufferCollectionBufferCreateInfoFUCHSIA<'a> { #[inline] pub fn collection(mut self, collection: BufferCollectionFUCHSIA) -> Self { @@ -52408,8 +52116,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'_> {} impl<'a> PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a> { #[inline] pub fn format_rgba10x6_without_y_cb_cr_sampler( @@ -52452,7 +52160,7 @@ impl ::core::default::Default for FormatProperties3<'_> { unsafe impl<'a> TaggedStructure for FormatProperties3<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3; } -unsafe impl ExtendsFormatProperties2 for FormatProperties3<'_> {} +unsafe impl Extends> for FormatProperties3<'_> {} impl<'a> FormatProperties3<'a> { #[inline] pub fn linear_tiling_features(mut self, linear_tiling_features: FormatFeatureFlags2) -> Self { @@ -52499,7 +52207,7 @@ impl ::core::default::Default for DrmFormatModifierPropertiesList2EXT<'_> { unsafe impl<'a> TaggedStructure for DrmFormatModifierPropertiesList2EXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT; } -unsafe impl ExtendsFormatProperties2 for DrmFormatModifierPropertiesList2EXT<'_> {} +unsafe impl Extends> for DrmFormatModifierPropertiesList2EXT<'_> {} impl<'a> DrmFormatModifierPropertiesList2EXT<'a> { #[inline] pub fn drm_format_modifier_properties( @@ -52583,7 +52291,7 @@ unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatProperties2ANDROI const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID; } -unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID +unsafe impl Extends> for AndroidHardwareBufferFormatProperties2ANDROID<'_> { } @@ -52670,7 +52378,7 @@ impl ::core::default::Default for PipelineRenderingCreateInfo<'_> { unsafe impl<'a> TaggedStructure for PipelineRenderingCreateInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRenderingCreateInfo<'_> {} +unsafe impl Extends> for PipelineRenderingCreateInfo<'_> {} impl<'a> PipelineRenderingCreateInfo<'a> { #[inline] pub fn view_mask(mut self, view_mask: u32) -> Self { @@ -52735,7 +52443,6 @@ impl ::core::default::Default for RenderingInfo<'_> { unsafe impl<'a> TaggedStructure for RenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INFO; } -pub unsafe trait ExtendsRenderingInfo {} impl<'a> RenderingInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderingFlags) -> Self { @@ -52788,7 +52495,7 @@ impl<'a> RenderingInfo<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -52812,7 +52519,7 @@ impl<'a> RenderingInfo<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -52820,7 +52527,7 @@ impl<'a> RenderingInfo<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -52955,7 +52662,7 @@ unsafe impl<'a> TaggedStructure for RenderingFragmentShadingRateAttachmentInfoKH const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR; } -unsafe impl ExtendsRenderingInfo for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} +unsafe impl Extends> for RenderingFragmentShadingRateAttachmentInfoKHR<'_> {} impl<'a> RenderingFragmentShadingRateAttachmentInfoKHR<'a> { #[inline] pub fn image_view(mut self, image_view: ImageView) -> Self { @@ -53006,7 +52713,7 @@ unsafe impl<'a> TaggedStructure for RenderingFragmentDensityMapAttachmentInfoEXT const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT; } -unsafe impl ExtendsRenderingInfo for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} +unsafe impl Extends> for RenderingFragmentDensityMapAttachmentInfoEXT<'_> {} impl<'a> RenderingFragmentDensityMapAttachmentInfoEXT<'a> { #[inline] pub fn image_view(mut self, image_view: ImageView) -> Self { @@ -53046,8 +52753,8 @@ impl ::core::default::Default for PhysicalDeviceDynamicRenderingFeatures<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingFeatures<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDynamicRenderingFeatures<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceDynamicRenderingFeatures<'_> {} +unsafe impl Extends> for PhysicalDeviceDynamicRenderingFeatures<'_> {} impl<'a> PhysicalDeviceDynamicRenderingFeatures<'a> { #[inline] pub fn dynamic_rendering(mut self, dynamic_rendering: bool) -> Self { @@ -53094,7 +52801,10 @@ impl ::core::default::Default for CommandBufferInheritanceRenderingInfo<'_> { unsafe impl<'a> TaggedStructure for CommandBufferInheritanceRenderingInfo<'a> { const STRUCTURE_TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO; } -unsafe impl ExtendsCommandBufferInheritanceInfo for CommandBufferInheritanceRenderingInfo<'_> {} +unsafe impl Extends> + for CommandBufferInheritanceRenderingInfo<'_> +{ +} impl<'a> CommandBufferInheritanceRenderingInfo<'a> { #[inline] pub fn flags(mut self, flags: RenderingFlags) -> Self { @@ -53159,8 +52869,8 @@ impl ::core::default::Default for AttachmentSampleCountInfoAMD<'_> { unsafe impl<'a> TaggedStructure for AttachmentSampleCountInfoAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD; } -unsafe impl ExtendsCommandBufferInheritanceInfo for AttachmentSampleCountInfoAMD<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for AttachmentSampleCountInfoAMD<'_> {} +unsafe impl Extends> for AttachmentSampleCountInfoAMD<'_> {} +unsafe impl Extends> for AttachmentSampleCountInfoAMD<'_> {} impl<'a> AttachmentSampleCountInfoAMD<'a> { #[inline] pub fn color_attachment_samples( @@ -53209,9 +52919,9 @@ impl ::core::default::Default for MultiviewPerViewAttributesInfoNVX<'_> { unsafe impl<'a> TaggedStructure for MultiviewPerViewAttributesInfoNVX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX; } -unsafe impl ExtendsCommandBufferInheritanceInfo for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl ExtendsGraphicsPipelineCreateInfo for MultiviewPerViewAttributesInfoNVX<'_> {} -unsafe impl ExtendsRenderingInfo for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} +unsafe impl Extends> for MultiviewPerViewAttributesInfoNVX<'_> {} impl<'a> MultiviewPerViewAttributesInfoNVX<'a> { #[inline] pub fn per_view_attributes(mut self, per_view_attributes: bool) -> Self { @@ -53255,8 +52965,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageViewMinLodFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceImageViewMinLodFeaturesEXT<'_> {} impl<'a> PhysicalDeviceImageViewMinLodFeaturesEXT<'a> { #[inline] pub fn min_lod(mut self, min_lod: bool) -> Self { @@ -53291,7 +53001,7 @@ impl ::core::default::Default for ImageViewMinLodCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImageViewMinLodCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewMinLodCreateInfoEXT<'_> {} +unsafe impl Extends> for ImageViewMinLodCreateInfoEXT<'_> {} impl<'a> ImageViewMinLodCreateInfoEXT<'a> { #[inline] pub fn min_lod(mut self, min_lod: f32) -> Self { @@ -53333,11 +53043,11 @@ unsafe impl<'a> TaggedStructure const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'_> { } @@ -53398,8 +53108,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLinearColorAttachmentFeaturesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceLinearColorAttachmentFeaturesNV<'_> {} impl<'a> PhysicalDeviceLinearColorAttachmentFeaturesNV<'a> { #[inline] pub fn linear_color_attachment(mut self, linear_color_attachment: bool) -> Self { @@ -53435,11 +53148,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceGraphicsPipelineLibraryFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'_> {} impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a> { #[inline] pub fn graphics_pipeline_library(mut self, graphics_pipeline_library: bool) -> Self { @@ -53475,8 +53188,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryFeaturesKHR<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDevicePipelineBinaryFeaturesKHR<'_> {} impl<'a> PhysicalDevicePipelineBinaryFeaturesKHR<'a> { #[inline] pub fn pipeline_binaries(mut self, pipeline_binaries: bool) -> Self { @@ -53512,7 +53225,7 @@ unsafe impl<'a> TaggedStructure for DevicePipelineBinaryInternalCacheControlKHR< const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR; } -unsafe impl ExtendsDeviceCreateInfo for DevicePipelineBinaryInternalCacheControlKHR<'_> {} +unsafe impl Extends> for DevicePipelineBinaryInternalCacheControlKHR<'_> {} impl<'a> DevicePipelineBinaryInternalCacheControlKHR<'a> { #[inline] pub fn disable_internal_cache(mut self, disable_internal_cache: bool) -> Self { @@ -53556,7 +53269,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineBinaryPropertiesKHR<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePipelineBinaryPropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDevicePipelineBinaryPropertiesKHR<'_> +{ +} impl<'a> PhysicalDevicePipelineBinaryPropertiesKHR<'a> { #[inline] pub fn pipeline_binary_internal_cache(mut self, pipeline_binary_internal_cache: bool) -> Self { @@ -53627,7 +53343,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceGraphicsPipelineLibraryPropert const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'_> { } @@ -53677,7 +53393,7 @@ impl ::core::default::Default for GraphicsPipelineLibraryCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for GraphicsPipelineLibraryCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for GraphicsPipelineLibraryCreateInfoEXT<'_> {} +unsafe impl Extends> for GraphicsPipelineLibraryCreateInfoEXT<'_> {} impl<'a> GraphicsPipelineLibraryCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: GraphicsPipelineLibraryFlagsEXT) -> Self { @@ -53713,11 +53429,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorSetHostMappingFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'_> {} impl<'a> PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a> { #[inline] pub fn descriptor_set_host_mapping(mut self, descriptor_set_host_mapping: bool) -> Self { @@ -53840,8 +53559,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceNestedCommandBufferFeaturesEXT const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceNestedCommandBufferFeaturesEXT<'_> {} impl<'a> PhysicalDeviceNestedCommandBufferFeaturesEXT<'a> { #[inline] pub fn nested_command_buffer(mut self, nested_command_buffer: bool) -> Self { @@ -53893,7 +53615,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceNestedCommandBufferPropertiesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceNestedCommandBufferPropertiesEXT<'_> { } @@ -53935,8 +53657,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderModuleIdentifierFeatures const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a> { #[inline] pub fn shader_module_identifier(mut self, shader_module_identifier: bool) -> Self { @@ -53972,7 +53697,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderModuleIdentifierProperti const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'_> { } @@ -54016,7 +53741,7 @@ unsafe impl<'a> TaggedStructure for PipelineShaderStageModuleIdentifierCreateInf const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT; } -unsafe impl ExtendsPipelineShaderStageCreateInfo +unsafe impl Extends> for PipelineShaderStageModuleIdentifierCreateInfoEXT<'_> { } @@ -54110,9 +53835,9 @@ impl ::core::default::Default for ImageCompressionControlEXT<'_> { unsafe impl<'a> TaggedStructure for ImageCompressionControlEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT; } -unsafe impl ExtendsImageCreateInfo for ImageCompressionControlEXT<'_> {} -unsafe impl ExtendsSwapchainCreateInfoKHR for ImageCompressionControlEXT<'_> {} -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for ImageCompressionControlEXT<'_> {} +unsafe impl Extends> for ImageCompressionControlEXT<'_> {} +unsafe impl Extends> for ImageCompressionControlEXT<'_> {} +unsafe impl Extends> for ImageCompressionControlEXT<'_> {} impl<'a> ImageCompressionControlEXT<'a> { #[inline] pub fn flags(mut self, flags: ImageCompressionFlagsEXT) -> Self { @@ -54157,11 +53882,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageCompressionControlFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceImageCompressionControlFeaturesEXT<'_> {} impl<'a> PhysicalDeviceImageCompressionControlFeaturesEXT<'a> { #[inline] pub fn image_compression_control(mut self, image_compression_control: bool) -> Self { @@ -54198,9 +53923,9 @@ impl ::core::default::Default for ImageCompressionPropertiesEXT<'_> { unsafe impl<'a> TaggedStructure for ImageCompressionPropertiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT; } -unsafe impl ExtendsImageFormatProperties2 for ImageCompressionPropertiesEXT<'_> {} -unsafe impl ExtendsSurfaceFormat2KHR for ImageCompressionPropertiesEXT<'_> {} -unsafe impl ExtendsSubresourceLayout2KHR for ImageCompressionPropertiesEXT<'_> {} +unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} +unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} +unsafe impl Extends> for ImageCompressionPropertiesEXT<'_> {} impl<'a> ImageCompressionPropertiesEXT<'a> { #[inline] pub fn image_compression_flags( @@ -54247,11 +53972,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageCompressionControlSwapcha const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'_> { } @@ -54326,7 +54051,6 @@ impl ::core::default::Default for SubresourceLayout2KHR<'_> { unsafe impl<'a> TaggedStructure for SubresourceLayout2KHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2_KHR; } -pub unsafe trait ExtendsSubresourceLayout2KHR {} impl<'a> SubresourceLayout2KHR<'a> { #[inline] pub fn subresource_layout(mut self, subresource_layout: SubresourceLayout) -> Self { @@ -54342,7 +54066,7 @@ impl<'a> SubresourceLayout2KHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -54366,10 +54090,7 @@ impl<'a> SubresourceLayout2KHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -54377,10 +54098,7 @@ impl<'a> SubresourceLayout2KHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -54411,8 +54129,8 @@ impl ::core::default::Default for RenderPassCreationControlEXT<'_> { unsafe impl<'a> TaggedStructure for RenderPassCreationControlEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT; } -unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationControlEXT<'_> {} -unsafe impl ExtendsSubpassDescription2 for RenderPassCreationControlEXT<'_> {} +unsafe impl Extends> for RenderPassCreationControlEXT<'_> {} +unsafe impl Extends> for RenderPassCreationControlEXT<'_> {} impl<'a> RenderPassCreationControlEXT<'a> { #[inline] pub fn disallow_merging(mut self, disallow_merging: bool) -> Self { @@ -54463,7 +54181,7 @@ unsafe impl<'a> TaggedStructure for RenderPassCreationFeedbackCreateInfoEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT; } -unsafe impl ExtendsRenderPassCreateInfo2 for RenderPassCreationFeedbackCreateInfoEXT<'_> {} +unsafe impl Extends> for RenderPassCreationFeedbackCreateInfoEXT<'_> {} impl<'a> RenderPassCreationFeedbackCreateInfoEXT<'a> { #[inline] pub fn render_pass_feedback( @@ -54554,7 +54272,7 @@ unsafe impl<'a> TaggedStructure for RenderPassSubpassFeedbackCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT; } -unsafe impl ExtendsSubpassDescription2 for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} +unsafe impl Extends> for RenderPassSubpassFeedbackCreateInfoEXT<'_> {} impl<'a> RenderPassSubpassFeedbackCreateInfoEXT<'a> { #[inline] pub fn subpass_feedback( @@ -54593,8 +54311,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSubpassMergeFeedbackFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'_> {} impl<'a> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a> { #[inline] pub fn subpass_merge_feedback(mut self, subpass_merge_feedback: bool) -> Self { @@ -55125,8 +54846,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceOpacityMicromapFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceOpacityMicromapFeaturesEXT<'_> {} impl<'a> PhysicalDeviceOpacityMicromapFeaturesEXT<'a> { #[inline] pub fn micromap(mut self, micromap: bool) -> Self { @@ -55174,7 +54895,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceOpacityMicromapPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceOpacityMicromapPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceOpacityMicromapPropertiesEXT<'a> { #[inline] pub fn max_opacity2_state_subdivision_level( @@ -55251,7 +54975,7 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureTrianglesOpacityMicroma const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT; } -unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR +unsafe impl Extends> for AccelerationStructureTrianglesOpacityMicromapEXT<'_> { } @@ -55322,8 +55046,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDisplacementMicromapFeaturesNV const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDisplacementMicromapFeaturesNV<'_> {} impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNV<'a> { #[inline] pub fn displacement_micromap(mut self, displacement_micromap: bool) -> Self { @@ -55359,7 +55086,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDisplacementMicromapProperties const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceDisplacementMicromapPropertiesNV<'_> { } @@ -55471,7 +55198,7 @@ unsafe impl<'a> TaggedStructure for AccelerationStructureTrianglesDisplacementMi const STRUCTURE_TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV; } -unsafe impl ExtendsAccelerationStructureGeometryTrianglesDataKHR +unsafe impl Extends> for AccelerationStructureTrianglesDisplacementMicromapNV<'_> { } @@ -55634,8 +55361,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelinePropertiesFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelinePropertiesFeaturesEXT<'_> {} impl<'a> PhysicalDevicePipelinePropertiesFeaturesEXT<'a> { #[inline] pub fn pipeline_properties_identifier(mut self, pipeline_properties_identifier: bool) -> Self { @@ -55671,11 +55401,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEarlyAndLateFragmentTest const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'_> { } @@ -55716,10 +55446,10 @@ impl ::core::default::Default for ExternalMemoryAcquireUnmodifiedEXT<'_> { unsafe impl<'a> TaggedStructure for ExternalMemoryAcquireUnmodifiedEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT; } -unsafe impl ExtendsBufferMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl ExtendsBufferMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl ExtendsImageMemoryBarrier for ExternalMemoryAcquireUnmodifiedEXT<'_> {} -unsafe impl ExtendsImageMemoryBarrier2 for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} +unsafe impl Extends> for ExternalMemoryAcquireUnmodifiedEXT<'_> {} impl<'a> ExternalMemoryAcquireUnmodifiedEXT<'a> { #[inline] pub fn acquire_unmodified_memory(mut self, acquire_unmodified_memory: bool) -> Self { @@ -55754,13 +55484,13 @@ impl ::core::default::Default for ExportMetalObjectCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalObjectCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT; } -unsafe impl ExtendsInstanceCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsMemoryAllocateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsImageCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsImageViewCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsBufferViewCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsSemaphoreCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} -unsafe impl ExtendsEventCreateInfo for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalObjectCreateInfoEXT<'_> {} impl<'a> ExportMetalObjectCreateInfoEXT<'a> { #[inline] pub fn export_object_type(mut self, export_object_type: ExportMetalObjectTypeFlagsEXT) -> Self { @@ -55793,7 +55523,6 @@ impl ::core::default::Default for ExportMetalObjectsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalObjectsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT; } -pub unsafe trait ExtendsExportMetalObjectsInfoEXT {} impl<'a> ExportMetalObjectsInfoEXT<'a> { #[doc = r" Prepends the given extension struct between the root and the first pointer. This"] #[doc = r" method only exists on structs that can be passed to a function directly. Only"] @@ -55804,7 +55533,7 @@ impl<'a> ExportMetalObjectsInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -55828,10 +55557,7 @@ impl<'a> ExportMetalObjectsInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -55839,10 +55565,7 @@ impl<'a> ExportMetalObjectsInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -55873,7 +55596,7 @@ impl ::core::default::Default for ExportMetalDeviceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalDeviceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalDeviceInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalDeviceInfoEXT<'_> {} impl<'a> ExportMetalDeviceInfoEXT<'a> { #[inline] pub fn mtl_device(mut self, mtl_device: MTLDevice_id) -> Self { @@ -55910,7 +55633,7 @@ impl ::core::default::Default for ExportMetalCommandQueueInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalCommandQueueInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalCommandQueueInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalCommandQueueInfoEXT<'_> {} impl<'a> ExportMetalCommandQueueInfoEXT<'a> { #[inline] pub fn queue(mut self, queue: Queue) -> Self { @@ -55952,7 +55675,7 @@ impl ::core::default::Default for ExportMetalBufferInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalBufferInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalBufferInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalBufferInfoEXT<'_> {} impl<'a> ExportMetalBufferInfoEXT<'a> { #[inline] pub fn memory(mut self, memory: DeviceMemory) -> Self { @@ -55992,7 +55715,7 @@ impl ::core::default::Default for ImportMetalBufferInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalBufferInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_INFO_EXT; } -unsafe impl ExtendsMemoryAllocateInfo for ImportMetalBufferInfoEXT<'_> {} +unsafe impl Extends> for ImportMetalBufferInfoEXT<'_> {} impl<'a> ImportMetalBufferInfoEXT<'a> { #[inline] pub fn mtl_buffer(mut self, mtl_buffer: MTLBuffer_id) -> Self { @@ -56035,7 +55758,7 @@ impl ::core::default::Default for ExportMetalTextureInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalTextureInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalTextureInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalTextureInfoEXT<'_> {} impl<'a> ExportMetalTextureInfoEXT<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -56092,7 +55815,7 @@ impl ::core::default::Default for ImportMetalTextureInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalTextureInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImportMetalTextureInfoEXT<'_> {} +unsafe impl Extends> for ImportMetalTextureInfoEXT<'_> {} impl<'a> ImportMetalTextureInfoEXT<'a> { #[inline] pub fn plane(mut self, plane: ImageAspectFlags) -> Self { @@ -56134,7 +55857,7 @@ impl ::core::default::Default for ExportMetalIOSurfaceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalIOSurfaceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalIOSurfaceInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalIOSurfaceInfoEXT<'_> {} impl<'a> ExportMetalIOSurfaceInfoEXT<'a> { #[inline] pub fn image(mut self, image: Image) -> Self { @@ -56174,7 +55897,7 @@ impl ::core::default::Default for ImportMetalIOSurfaceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalIOSurfaceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT; } -unsafe impl ExtendsImageCreateInfo for ImportMetalIOSurfaceInfoEXT<'_> {} +unsafe impl Extends> for ImportMetalIOSurfaceInfoEXT<'_> {} impl<'a> ImportMetalIOSurfaceInfoEXT<'a> { #[inline] pub fn io_surface(mut self, io_surface: IOSurfaceRef) -> Self { @@ -56213,7 +55936,7 @@ impl ::core::default::Default for ExportMetalSharedEventInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ExportMetalSharedEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT; } -unsafe impl ExtendsExportMetalObjectsInfoEXT for ExportMetalSharedEventInfoEXT<'_> {} +unsafe impl Extends> for ExportMetalSharedEventInfoEXT<'_> {} impl<'a> ExportMetalSharedEventInfoEXT<'a> { #[inline] pub fn semaphore(mut self, semaphore: Semaphore) -> Self { @@ -56258,8 +55981,8 @@ impl ::core::default::Default for ImportMetalSharedEventInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ImportMetalSharedEventInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT; } -unsafe impl ExtendsSemaphoreCreateInfo for ImportMetalSharedEventInfoEXT<'_> {} -unsafe impl ExtendsEventCreateInfo for ImportMetalSharedEventInfoEXT<'_> {} +unsafe impl Extends> for ImportMetalSharedEventInfoEXT<'_> {} +unsafe impl Extends> for ImportMetalSharedEventInfoEXT<'_> {} impl<'a> ImportMetalSharedEventInfoEXT<'a> { #[inline] pub fn mtl_shared_event(mut self, mtl_shared_event: MTLSharedEvent_id) -> Self { @@ -56295,8 +56018,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'_> {} impl<'a> PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a> { #[inline] pub fn non_seamless_cube_map(mut self, non_seamless_cube_map: bool) -> Self { @@ -56332,8 +56058,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineRobustnessFeaturesEXT< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelineRobustnessFeaturesEXT<'_> {} impl<'a> PhysicalDevicePipelineRobustnessFeaturesEXT<'a> { #[inline] pub fn pipeline_robustness(mut self, pipeline_robustness: bool) -> Self { @@ -56374,10 +56103,10 @@ impl ::core::default::Default for PipelineRobustnessCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for PipelineRobustnessCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl ExtendsComputePipelineCreateInfo for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl ExtendsPipelineShaderStageCreateInfo for PipelineRobustnessCreateInfoEXT<'_> {} -unsafe impl ExtendsRayTracingPipelineCreateInfoKHR for PipelineRobustnessCreateInfoEXT<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} +unsafe impl Extends> for PipelineRobustnessCreateInfoEXT<'_> {} impl<'a> PipelineRobustnessCreateInfoEXT<'a> { #[inline] pub fn storage_buffers(mut self, storage_buffers: PipelineRobustnessBufferBehaviorEXT) -> Self { @@ -56434,7 +56163,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineRobustnessPropertiesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDevicePipelineRobustnessPropertiesEXT<'_> +{ +} impl<'a> PhysicalDevicePipelineRobustnessPropertiesEXT<'a> { #[inline] pub fn default_robustness_storage_buffers( @@ -56500,7 +56232,7 @@ impl ::core::default::Default for ImageViewSampleWeightCreateInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for ImageViewSampleWeightCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM; } -unsafe impl ExtendsImageViewCreateInfo for ImageViewSampleWeightCreateInfoQCOM<'_> {} +unsafe impl Extends> for ImageViewSampleWeightCreateInfoQCOM<'_> {} impl<'a> ImageViewSampleWeightCreateInfoQCOM<'a> { #[inline] pub fn filter_center(mut self, filter_center: Offset2D) -> Self { @@ -56550,8 +56282,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessingFeaturesQCOM<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceImageProcessingFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceImageProcessingFeaturesQCOM<'a> { #[inline] pub fn texture_sample_weighted(mut self, texture_sample_weighted: bool) -> Self { @@ -56603,7 +56335,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessingPropertiesQCOM< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceImageProcessingPropertiesQCOM<'_> {} +unsafe impl Extends> + for PhysicalDeviceImageProcessingPropertiesQCOM<'_> +{ +} impl<'a> PhysicalDeviceImageProcessingPropertiesQCOM<'a> { #[inline] pub fn max_weight_filter_phases(mut self, max_weight_filter_phases: u32) -> Self { @@ -56654,8 +56389,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceTilePropertiesFeaturesQCOM<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceTilePropertiesFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceTilePropertiesFeaturesQCOM<'a> { #[inline] pub fn tile_properties(mut self, tile_properties: bool) -> Self { @@ -56739,8 +56474,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAmigoProfilingFeaturesSEC<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +unsafe impl Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} +unsafe impl Extends> for PhysicalDeviceAmigoProfilingFeaturesSEC<'_> {} impl<'a> PhysicalDeviceAmigoProfilingFeaturesSEC<'a> { #[inline] pub fn amigo_profiling(mut self, amigo_profiling: bool) -> Self { @@ -56777,7 +56512,7 @@ impl ::core::default::Default for AmigoProfilingSubmitInfoSEC<'_> { unsafe impl<'a> TaggedStructure for AmigoProfilingSubmitInfoSEC<'a> { const STRUCTURE_TYPE: StructureType = StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC; } -unsafe impl ExtendsSubmitInfo for AmigoProfilingSubmitInfoSEC<'_> {} +unsafe impl Extends> for AmigoProfilingSubmitInfoSEC<'_> {} impl<'a> AmigoProfilingSubmitInfoSEC<'a> { #[inline] pub fn first_draw_timestamp(mut self, first_draw_timestamp: u64) -> Self { @@ -56818,11 +56553,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAttachmentFeedbackLoopLayoutFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'_> {} impl<'a> PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a> { #[inline] pub fn attachment_feedback_loop_layout( @@ -56861,8 +56599,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthClampZeroOneFeaturesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDepthClampZeroOneFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDepthClampZeroOneFeaturesEXT<'a> { #[inline] pub fn depth_clamp_zero_one(mut self, depth_clamp_zero_one: bool) -> Self { @@ -56898,8 +56639,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceAddressBindingReportFeaturesEX const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceAddressBindingReportFeaturesEXT<'_> {} impl<'a> PhysicalDeviceAddressBindingReportFeaturesEXT<'a> { #[inline] pub fn report_address_binding(mut self, report_address_binding: bool) -> Self { @@ -56940,7 +56684,10 @@ impl ::core::default::Default for DeviceAddressBindingCallbackDataEXT<'_> { unsafe impl<'a> TaggedStructure for DeviceAddressBindingCallbackDataEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT; } -unsafe impl ExtendsDebugUtilsMessengerCallbackDataEXT for DeviceAddressBindingCallbackDataEXT<'_> {} +unsafe impl Extends> + for DeviceAddressBindingCallbackDataEXT<'_> +{ +} impl<'a> DeviceAddressBindingCallbackDataEXT<'a> { #[inline] pub fn flags(mut self, flags: DeviceAddressBindingFlagsEXT) -> Self { @@ -56990,8 +56737,8 @@ impl ::core::default::Default for PhysicalDeviceOpticalFlowFeaturesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceOpticalFlowFeaturesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceOpticalFlowFeaturesNV<'_> {} impl<'a> PhysicalDeviceOpticalFlowFeaturesNV<'a> { #[inline] pub fn optical_flow(mut self, optical_flow: bool) -> Self { @@ -57046,7 +56793,7 @@ impl ::core::default::Default for PhysicalDeviceOpticalFlowPropertiesNV<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceOpticalFlowPropertiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceOpticalFlowPropertiesNV<'_> {} impl<'a> PhysicalDeviceOpticalFlowPropertiesNV<'a> { #[inline] pub fn supported_output_grid_sizes( @@ -57137,8 +56884,8 @@ impl ::core::default::Default for OpticalFlowImageFormatInfoNV<'_> { unsafe impl<'a> TaggedStructure for OpticalFlowImageFormatInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV; } -unsafe impl ExtendsPhysicalDeviceImageFormatInfo2 for OpticalFlowImageFormatInfoNV<'_> {} -unsafe impl ExtendsImageCreateInfo for OpticalFlowImageFormatInfoNV<'_> {} +unsafe impl Extends> for OpticalFlowImageFormatInfoNV<'_> {} +unsafe impl Extends> for OpticalFlowImageFormatInfoNV<'_> {} impl<'a> OpticalFlowImageFormatInfoNV<'a> { #[inline] pub fn usage(mut self, usage: OpticalFlowUsageFlagsNV) -> Self { @@ -57223,7 +56970,6 @@ impl ::core::default::Default for OpticalFlowSessionCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV; } -pub unsafe trait ExtendsOpticalFlowSessionCreateInfoNV {} impl<'a> OpticalFlowSessionCreateInfoNV<'a> { #[inline] pub fn width(mut self, width: u32) -> Self { @@ -57279,10 +57025,7 @@ impl<'a> OpticalFlowSessionCreateInfoNV<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -57306,10 +57049,7 @@ impl<'a> OpticalFlowSessionCreateInfoNV<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -57317,10 +57057,7 @@ impl<'a> OpticalFlowSessionCreateInfoNV<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -57356,7 +57093,7 @@ unsafe impl<'a> TaggedStructure for OpticalFlowSessionCreatePrivateDataInfoNV<'a const STRUCTURE_TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV; } -unsafe impl ExtendsOpticalFlowSessionCreateInfoNV +unsafe impl Extends> for OpticalFlowSessionCreatePrivateDataInfoNV<'_> { } @@ -57450,8 +57187,8 @@ impl ::core::default::Default for PhysicalDeviceFaultFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceFaultFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFaultFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFaultFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFaultFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFaultFeaturesEXT<'_> {} impl<'a> PhysicalDeviceFaultFeaturesEXT<'a> { #[inline] pub fn device_fault(mut self, device_fault: bool) -> Self { @@ -57788,11 +57525,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePipelineLibraryGroupHandlesFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'_> {} impl<'a> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT<'a> { #[inline] pub fn pipeline_library_group_handles(mut self, pipeline_library_group_handles: bool) -> Self { @@ -57831,7 +57571,6 @@ impl ::core::default::Default for DepthBiasInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DepthBiasInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT; } -pub unsafe trait ExtendsDepthBiasInfoEXT {} impl<'a> DepthBiasInfoEXT<'a> { #[inline] pub fn depth_bias_constant_factor(mut self, depth_bias_constant_factor: f32) -> Self { @@ -57857,7 +57596,7 @@ impl<'a> DepthBiasInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -57881,7 +57620,7 @@ impl<'a> DepthBiasInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -57889,7 +57628,7 @@ impl<'a> DepthBiasInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -57922,8 +57661,11 @@ impl ::core::default::Default for DepthBiasRepresentationInfoEXT<'_> { unsafe impl<'a> TaggedStructure for DepthBiasRepresentationInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT; } -unsafe impl ExtendsDepthBiasInfoEXT for DepthBiasRepresentationInfoEXT<'_> {} -unsafe impl ExtendsPipelineRasterizationStateCreateInfo for DepthBiasRepresentationInfoEXT<'_> {} +unsafe impl Extends> for DepthBiasRepresentationInfoEXT<'_> {} +unsafe impl Extends> + for DepthBiasRepresentationInfoEXT<'_> +{ +} impl<'a> DepthBiasRepresentationInfoEXT<'a> { #[inline] pub fn depth_bias_representation( @@ -58013,7 +57755,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreBuiltinsPropertiesAR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'_> +{ +} impl<'a> PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a> { #[inline] pub fn shader_core_mask(mut self, shader_core_mask: u64) -> Self { @@ -58059,8 +57804,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCoreBuiltinsFeaturesARM< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'_> {} impl<'a> PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a> { #[inline] pub fn shader_core_builtins(mut self, shader_core_builtins: bool) -> Self { @@ -58111,10 +57859,10 @@ impl ::core::default::Default for FrameBoundaryEXT<'_> { unsafe impl<'a> TaggedStructure for FrameBoundaryEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT; } -unsafe impl ExtendsSubmitInfo for FrameBoundaryEXT<'_> {} -unsafe impl ExtendsSubmitInfo2 for FrameBoundaryEXT<'_> {} -unsafe impl ExtendsPresentInfoKHR for FrameBoundaryEXT<'_> {} -unsafe impl ExtendsBindSparseInfo for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} +unsafe impl Extends> for FrameBoundaryEXT<'_> {} impl<'a> FrameBoundaryEXT<'a> { #[inline] pub fn flags(mut self, flags: FrameBoundaryFlagsEXT) -> Self { @@ -58178,8 +57926,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceFrameBoundaryFeaturesEXT<'_> {} impl<'a> PhysicalDeviceFrameBoundaryFeaturesEXT<'a> { #[inline] pub fn frame_boundary(mut self, frame_boundary: bool) -> Self { @@ -58215,11 +57963,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingUnusedAttachme const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo +unsafe impl Extends> for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'_> { } @@ -58260,7 +58008,7 @@ impl ::core::default::Default for SurfacePresentModeEXT<'_> { unsafe impl<'a> TaggedStructure for SurfacePresentModeEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_EXT; } -unsafe impl ExtendsPhysicalDeviceSurfaceInfo2KHR for SurfacePresentModeEXT<'_> {} +unsafe impl Extends> for SurfacePresentModeEXT<'_> {} impl<'a> SurfacePresentModeEXT<'a> { #[inline] pub fn present_mode(mut self, present_mode: PresentModeKHR) -> Self { @@ -58303,7 +58051,7 @@ impl ::core::default::Default for SurfacePresentScalingCapabilitiesEXT<'_> { unsafe impl<'a> TaggedStructure for SurfacePresentScalingCapabilitiesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentScalingCapabilitiesEXT<'_> {} +unsafe impl Extends> for SurfacePresentScalingCapabilitiesEXT<'_> {} impl<'a> SurfacePresentScalingCapabilitiesEXT<'a> { #[inline] pub fn supported_present_scaling( @@ -58369,7 +58117,7 @@ impl ::core::default::Default for SurfacePresentModeCompatibilityEXT<'_> { unsafe impl<'a> TaggedStructure for SurfacePresentModeCompatibilityEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT; } -unsafe impl ExtendsSurfaceCapabilities2KHR for SurfacePresentModeCompatibilityEXT<'_> {} +unsafe impl Extends> for SurfacePresentModeCompatibilityEXT<'_> {} impl<'a> SurfacePresentModeCompatibilityEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { @@ -58406,8 +58154,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSwapchainMaintenance1FeaturesE const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'_> {} impl<'a> PhysicalDeviceSwapchainMaintenance1FeaturesEXT<'a> { #[inline] pub fn swapchain_maintenance1(mut self, swapchain_maintenance1: bool) -> Self { @@ -58444,7 +58195,7 @@ impl ::core::default::Default for SwapchainPresentFenceInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentFenceInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_EXT; } -unsafe impl ExtendsPresentInfoKHR for SwapchainPresentFenceInfoEXT<'_> {} +unsafe impl Extends> for SwapchainPresentFenceInfoEXT<'_> {} impl<'a> SwapchainPresentFenceInfoEXT<'a> { #[inline] pub fn fences(mut self, fences: &'a [Fence]) -> Self { @@ -58482,7 +58233,7 @@ impl ::core::default::Default for SwapchainPresentModesCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentModesCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentModesCreateInfoEXT<'_> {} +unsafe impl Extends> for SwapchainPresentModesCreateInfoEXT<'_> {} impl<'a> SwapchainPresentModesCreateInfoEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { @@ -58520,7 +58271,7 @@ impl ::core::default::Default for SwapchainPresentModeInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentModeInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_EXT; } -unsafe impl ExtendsPresentInfoKHR for SwapchainPresentModeInfoEXT<'_> {} +unsafe impl Extends> for SwapchainPresentModeInfoEXT<'_> {} impl<'a> SwapchainPresentModeInfoEXT<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a [PresentModeKHR]) -> Self { @@ -58560,7 +58311,7 @@ impl ::core::default::Default for SwapchainPresentScalingCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SwapchainPresentScalingCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainPresentScalingCreateInfoEXT<'_> {} +unsafe impl Extends> for SwapchainPresentScalingCreateInfoEXT<'_> {} impl<'a> SwapchainPresentScalingCreateInfoEXT<'a> { #[inline] pub fn scaling_behavior(mut self, scaling_behavior: PresentScalingFlagsEXT) -> Self { @@ -58656,8 +58407,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDepthBiasControlFeaturesEXT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceDepthBiasControlFeaturesEXT<'_> {} impl<'a> PhysicalDeviceDepthBiasControlFeaturesEXT<'a> { #[inline] pub fn depth_bias_control(mut self, depth_bias_control: bool) -> Self { @@ -58712,11 +58463,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingInvocationReorderFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'_> {} impl<'a> PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a> { #[inline] pub fn ray_tracing_invocation_reorder(mut self, ray_tracing_invocation_reorder: bool) -> Self { @@ -58753,7 +58507,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingInvocationReorderPro const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'_> { } @@ -58796,11 +58550,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedSparseAddressSpaceFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'_> {} impl<'a> PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a> { #[inline] pub fn extended_sparse_address_space(mut self, extended_sparse_address_space: bool) -> Self { @@ -58840,7 +58597,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExtendedSparseAddressSpaceProp const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'_> { } @@ -58958,7 +58715,7 @@ impl ::core::default::Default for DirectDriverLoadingListLUNARG<'_> { unsafe impl<'a> TaggedStructure for DirectDriverLoadingListLUNARG<'a> { const STRUCTURE_TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG; } -unsafe impl ExtendsInstanceCreateInfo for DirectDriverLoadingListLUNARG<'_> {} +unsafe impl Extends> for DirectDriverLoadingListLUNARG<'_> {} impl<'a> DirectDriverLoadingListLUNARG<'a> { #[inline] pub fn mode(mut self, mode: DirectDriverLoadingModeLUNARG) -> Self { @@ -59000,11 +58757,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewViewportsFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a> { #[inline] pub fn multiview_per_view_viewports(mut self, multiview_per_view_viewports: bool) -> Self { @@ -59040,11 +58800,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRayTracingPositionFetchFeature const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} +unsafe impl Extends> for PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'_> {} impl<'a> PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a> { #[inline] pub fn ray_tracing_position_fetch(mut self, ray_tracing_position_fetch: bool) -> Self { @@ -59124,7 +58884,7 @@ impl ::core::default::Default for PhysicalDeviceShaderCorePropertiesARM<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderCorePropertiesARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderCorePropertiesARM<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderCorePropertiesARM<'_> {} impl<'a> PhysicalDeviceShaderCorePropertiesARM<'a> { #[inline] pub fn pixel_rate(mut self, pixel_rate: u32) -> Self { @@ -59170,11 +58930,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMultiviewPerViewRenderAreasFea const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a> { #[inline] pub fn multiview_per_view_render_areas( @@ -59215,8 +58978,11 @@ unsafe impl<'a> TaggedStructure for MultiviewPerViewRenderAreasRenderPassBeginIn const STRUCTURE_TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM; } -unsafe impl ExtendsRenderPassBeginInfo for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} -unsafe impl ExtendsRenderingInfo for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} +unsafe impl Extends> + for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> +{ +} +unsafe impl Extends> for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'_> {} impl<'a> MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a> { #[inline] pub fn per_view_render_areas(mut self, per_view_render_areas: &'a [Rect2D]) -> Self { @@ -59252,7 +59018,7 @@ impl ::core::default::Default for QueryLowLatencySupportNV<'_> { unsafe impl<'a> TaggedStructure for QueryLowLatencySupportNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV; } -unsafe impl ExtendsSemaphoreCreateInfo for QueryLowLatencySupportNV<'_> {} +unsafe impl Extends> for QueryLowLatencySupportNV<'_> {} impl<'a> QueryLowLatencySupportNV<'a> { #[inline] pub fn queried_low_latency_data(mut self, queried_low_latency_data: *mut c_void) -> Self { @@ -59293,7 +59059,6 @@ impl ::core::default::Default for MemoryMapInfoKHR<'_> { unsafe impl<'a> TaggedStructure for MemoryMapInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_INFO_KHR; } -pub unsafe trait ExtendsMemoryMapInfoKHR {} impl<'a> MemoryMapInfoKHR<'a> { #[inline] pub fn flags(mut self, flags: MemoryMapFlags) -> Self { @@ -59324,7 +59089,7 @@ impl<'a> MemoryMapInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -59348,7 +59113,7 @@ impl<'a> MemoryMapInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -59356,7 +59121,7 @@ impl<'a> MemoryMapInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -59428,8 +59193,8 @@ impl ::core::default::Default for PhysicalDeviceShaderObjectFeaturesEXT<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderObjectFeaturesEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderObjectFeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderObjectFeaturesEXT<'a> { #[inline] pub fn shader_object(mut self, shader_object: bool) -> Self { @@ -59467,7 +59232,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderObjectPropertiesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderObjectPropertiesEXT<'_> {} impl<'a> PhysicalDeviceShaderObjectPropertiesEXT<'a> { #[inline] pub fn shader_binary_uuid(mut self, shader_binary_uuid: [u8; UUID_SIZE]) -> Self { @@ -59529,7 +59294,6 @@ impl ::core::default::Default for ShaderCreateInfoEXT<'_> { unsafe impl<'a> TaggedStructure for ShaderCreateInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT; } -pub unsafe trait ExtendsShaderCreateInfoEXT {} impl<'a> ShaderCreateInfoEXT<'a> { #[inline] pub fn flags(mut self, flags: ShaderCreateFlagsEXT) -> Self { @@ -59596,7 +59360,7 @@ impl<'a> ShaderCreateInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -59620,10 +59384,7 @@ impl<'a> ShaderCreateInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -59631,7 +59392,7 @@ impl<'a> ShaderCreateInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -59667,8 +59428,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTileImageFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderTileImageFeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderTileImageFeaturesEXT<'a> { #[inline] pub fn shader_tile_image_color_read_access( @@ -59727,7 +59488,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderTileImagePropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderTileImagePropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderTileImagePropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceShaderTileImagePropertiesEXT<'a> { #[inline] pub fn shader_tile_image_coherent_read_accelerated( @@ -59784,7 +59548,7 @@ impl ::core::default::Default for ImportScreenBufferInfoQNX<'_> { unsafe impl<'a> TaggedStructure for ImportScreenBufferInfoQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX; } -unsafe impl ExtendsMemoryAllocateInfo for ImportScreenBufferInfoQNX<'_> {} +unsafe impl Extends> for ImportScreenBufferInfoQNX<'_> {} impl<'a> ImportScreenBufferInfoQNX<'a> { #[inline] pub fn buffer(mut self, buffer: &'a mut _screen_buffer) -> Self { @@ -59821,7 +59585,6 @@ impl ::core::default::Default for ScreenBufferPropertiesQNX<'_> { unsafe impl<'a> TaggedStructure for ScreenBufferPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX; } -pub unsafe trait ExtendsScreenBufferPropertiesQNX {} impl<'a> ScreenBufferPropertiesQNX<'a> { #[inline] pub fn allocation_size(mut self, allocation_size: DeviceSize) -> Self { @@ -59842,7 +59605,7 @@ impl<'a> ScreenBufferPropertiesQNX<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -59866,10 +59629,7 @@ impl<'a> ScreenBufferPropertiesQNX<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -59877,10 +59637,7 @@ impl<'a> ScreenBufferPropertiesQNX<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -59927,7 +59684,7 @@ impl ::core::default::Default for ScreenBufferFormatPropertiesQNX<'_> { unsafe impl<'a> TaggedStructure for ScreenBufferFormatPropertiesQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX; } -unsafe impl ExtendsScreenBufferPropertiesQNX for ScreenBufferFormatPropertiesQNX<'_> {} +unsafe impl Extends> for ScreenBufferFormatPropertiesQNX<'_> {} impl<'a> ScreenBufferFormatPropertiesQNX<'a> { #[inline] pub fn format(mut self, format: Format) -> Self { @@ -60008,8 +59765,8 @@ impl ::core::default::Default for ExternalFormatQNX<'_> { unsafe impl<'a> TaggedStructure for ExternalFormatQNX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX; } -unsafe impl ExtendsImageCreateInfo for ExternalFormatQNX<'_> {} -unsafe impl ExtendsSamplerYcbcrConversionCreateInfo for ExternalFormatQNX<'_> {} +unsafe impl Extends> for ExternalFormatQNX<'_> {} +unsafe impl Extends> for ExternalFormatQNX<'_> {} impl<'a> ExternalFormatQNX<'a> { #[inline] pub fn external_format(mut self, external_format: u64) -> Self { @@ -60045,11 +59802,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalMemoryScreenBufferFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'_> {} impl<'a> PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a> { #[inline] pub fn screen_buffer_import(mut self, screen_buffer_import: bool) -> Self { @@ -60087,8 +59847,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceCooperativeMatrixFeaturesKHR<'_> {} impl<'a> PhysicalDeviceCooperativeMatrixFeaturesKHR<'a> { #[inline] pub fn cooperative_matrix(mut self, cooperative_matrix: bool) -> Self { @@ -60223,7 +59986,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCooperativeMatrixPropertiesKHR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceCooperativeMatrixPropertiesKHR<'_> +{ +} impl<'a> PhysicalDeviceCooperativeMatrixPropertiesKHR<'a> { #[inline] pub fn cooperative_matrix_supported_stages( @@ -60270,7 +60036,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEnqueuePropertiesAMDX<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderEnqueuePropertiesAMDX<'_> +{ +} impl<'a> PhysicalDeviceShaderEnqueuePropertiesAMDX<'a> { #[inline] pub fn max_execution_graph_depth(mut self, max_execution_graph_depth: u32) -> Self { @@ -60339,8 +60108,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} +unsafe impl Extends> for PhysicalDeviceShaderEnqueueFeaturesAMDX<'_> {} impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDX<'a> { #[inline] pub fn shader_enqueue(mut self, shader_enqueue: bool) -> Self { @@ -60387,7 +60156,6 @@ impl ::core::default::Default for ExecutionGraphPipelineCreateInfoAMDX<'_> { unsafe impl<'a> TaggedStructure for ExecutionGraphPipelineCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX; } -pub unsafe trait ExtendsExecutionGraphPipelineCreateInfoAMDX {} impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { #[inline] pub fn flags(mut self, flags: PipelineCreateFlags) -> Self { @@ -60429,10 +60197,7 @@ impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -60456,10 +60221,7 @@ impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -60467,10 +60229,7 @@ impl<'a> ExecutionGraphPipelineCreateInfoAMDX<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -60504,7 +60263,10 @@ unsafe impl<'a> TaggedStructure for PipelineShaderStageNodeCreateInfoAMDX<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX; } -unsafe impl ExtendsPipelineShaderStageCreateInfo for PipelineShaderStageNodeCreateInfoAMDX<'_> {} +unsafe impl Extends> + for PipelineShaderStageNodeCreateInfoAMDX<'_> +{ +} impl<'a> PipelineShaderStageNodeCreateInfoAMDX<'a> { #[inline] pub fn name(mut self, name: &'a CStr) -> Self { @@ -60665,8 +60427,8 @@ impl ::core::default::Default for PhysicalDeviceAntiLagFeaturesAMD<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceAntiLagFeaturesAMD<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceAntiLagFeaturesAMD<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +unsafe impl Extends> for PhysicalDeviceAntiLagFeaturesAMD<'_> {} +unsafe impl Extends> for PhysicalDeviceAntiLagFeaturesAMD<'_> {} impl<'a> PhysicalDeviceAntiLagFeaturesAMD<'a> { #[inline] pub fn anti_lag(mut self, anti_lag: bool) -> Self { @@ -60793,8 +60555,8 @@ impl ::core::default::Default for BindMemoryStatusKHR<'_> { unsafe impl<'a> TaggedStructure for BindMemoryStatusKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_MEMORY_STATUS_KHR; } -unsafe impl ExtendsBindBufferMemoryInfo for BindMemoryStatusKHR<'_> {} -unsafe impl ExtendsBindImageMemoryInfo for BindMemoryStatusKHR<'_> {} +unsafe impl Extends> for BindMemoryStatusKHR<'_> {} +unsafe impl Extends> for BindMemoryStatusKHR<'_> {} impl<'a> BindMemoryStatusKHR<'a> { #[inline] pub fn result(mut self, result: &'a mut Result) -> Self { @@ -60841,7 +60603,6 @@ impl ::core::default::Default for BindDescriptorSetsInfoKHR<'_> { unsafe impl<'a> TaggedStructure for BindDescriptorSetsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO_KHR; } -pub unsafe trait ExtendsBindDescriptorSetsInfoKHR {} impl<'a> BindDescriptorSetsInfoKHR<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -60879,7 +60640,7 @@ impl<'a> BindDescriptorSetsInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -60903,10 +60664,7 @@ impl<'a> BindDescriptorSetsInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -60914,10 +60672,7 @@ impl<'a> BindDescriptorSetsInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -60956,7 +60711,6 @@ impl ::core::default::Default for PushConstantsInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushConstantsInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO_KHR; } -pub unsafe trait ExtendsPushConstantsInfoKHR {} impl<'a> PushConstantsInfoKHR<'a> { #[inline] pub fn layout(mut self, layout: PipelineLayout) -> Self { @@ -60988,7 +60742,7 @@ impl<'a> PushConstantsInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -61012,10 +60766,7 @@ impl<'a> PushConstantsInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -61023,10 +60774,7 @@ impl<'a> PushConstantsInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -61065,7 +60813,6 @@ impl ::core::default::Default for PushDescriptorSetInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushDescriptorSetInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO_KHR; } -pub unsafe trait ExtendsPushDescriptorSetInfoKHR {} impl<'a> PushDescriptorSetInfoKHR<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -61097,7 +60844,7 @@ impl<'a> PushDescriptorSetInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -61121,10 +60868,7 @@ impl<'a> PushDescriptorSetInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -61132,10 +60876,7 @@ impl<'a> PushDescriptorSetInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -61172,7 +60913,6 @@ impl ::core::default::Default for PushDescriptorSetWithTemplateInfoKHR<'_> { unsafe impl<'a> TaggedStructure for PushDescriptorSetWithTemplateInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR; } -pub unsafe trait ExtendsPushDescriptorSetWithTemplateInfoKHR {} impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { #[inline] pub fn descriptor_update_template( @@ -61206,10 +60946,7 @@ impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -61233,10 +60970,7 @@ impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -61244,10 +60978,7 @@ impl<'a> PushDescriptorSetWithTemplateInfoKHR<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -61288,7 +61019,6 @@ impl ::core::default::Default for SetDescriptorBufferOffsetsInfoEXT<'_> { unsafe impl<'a> TaggedStructure for SetDescriptorBufferOffsetsInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT; } -pub unsafe trait ExtendsSetDescriptorBufferOffsetsInfoEXT {} impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -61326,10 +61056,7 @@ impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -61353,10 +61080,7 @@ impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -61364,10 +61088,7 @@ impl<'a> SetDescriptorBufferOffsetsInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -61403,7 +61124,6 @@ unsafe impl<'a> TaggedStructure for BindDescriptorBufferEmbeddedSamplersInfoEXT< const STRUCTURE_TYPE: StructureType = StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT; } -pub unsafe trait ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT {} impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { #[inline] pub fn stage_flags(mut self, stage_flags: ShaderStageFlags) -> Self { @@ -61429,10 +61149,7 @@ impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { #[doc = r" # Panics"] #[doc = r" If `next` contains a pointer chain of its own, this function will panic. Call"] #[doc = r" `unsafe` [`Self::extend()`] to insert this chain instead."] - pub fn push( - mut self, - next: &'a mut T, - ) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; assert!( next_base.p_next.is_null(), @@ -61456,10 +61173,7 @@ impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { #[doc = r" The last struct in this chain (i.e. the one where `p_next` is `NULL`) must"] #[doc = r" be writable memory, as its `p_next` field will be updated with the value of"] #[doc = r" `self.p_next`."] - pub unsafe fn extend( - mut self, - next: &'a mut T, - ) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { let last_next = ptr_chain_iter(next).last().unwrap(); (*last_next).p_next = self.p_next as _; self.p_next = <*mut T>::cast(next); @@ -61467,10 +61181,7 @@ impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXT<'a> { } #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next( - self, - next: &'a mut T, - ) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -61501,8 +61212,8 @@ impl ::core::default::Default for PhysicalDeviceCubicClampFeaturesQCOM<'_> { unsafe impl<'a> TaggedStructure for PhysicalDeviceCubicClampFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceCubicClampFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceCubicClampFeaturesQCOM<'a> { #[inline] pub fn cubic_range_clamp(mut self, cubic_range_clamp: bool) -> Self { @@ -61538,8 +61249,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceYcbcrDegammaFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> { #[inline] pub fn ycbcr_degamma(mut self, ycbcr_degamma: bool) -> Self { @@ -61577,7 +61288,7 @@ unsafe impl<'a> TaggedStructure for SamplerYcbcrConversionYcbcrDegammaCreateInfo const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM; } -unsafe impl ExtendsSamplerYcbcrConversionCreateInfo +unsafe impl Extends> for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'_> { } @@ -61621,8 +61332,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} +unsafe impl Extends> for PhysicalDeviceCubicWeightsFeaturesQCOM<'_> {} impl<'a> PhysicalDeviceCubicWeightsFeaturesQCOM<'a> { #[inline] pub fn selectable_cubic_weights(mut self, selectable_cubic_weights: bool) -> Self { @@ -61657,7 +61368,7 @@ impl ::core::default::Default for SamplerCubicWeightsCreateInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for SamplerCubicWeightsCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM; } -unsafe impl ExtendsSamplerCreateInfo for SamplerCubicWeightsCreateInfoQCOM<'_> {} +unsafe impl Extends> for SamplerCubicWeightsCreateInfoQCOM<'_> {} impl<'a> SamplerCubicWeightsCreateInfoQCOM<'a> { #[inline] pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { @@ -61692,7 +61403,7 @@ impl ::core::default::Default for BlitImageCubicWeightsInfoQCOM<'_> { unsafe impl<'a> TaggedStructure for BlitImageCubicWeightsInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM; } -unsafe impl ExtendsBlitImageInfo2 for BlitImageCubicWeightsInfoQCOM<'_> {} +unsafe impl Extends> for BlitImageCubicWeightsInfoQCOM<'_> {} impl<'a> BlitImageCubicWeightsInfoQCOM<'a> { #[inline] pub fn cubic_weights(mut self, cubic_weights: CubicFilterWeightsQCOM) -> Self { @@ -61728,8 +61439,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessing2FeaturesQCOM<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} +unsafe impl Extends> + for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImageProcessing2FeaturesQCOM<'_> {} impl<'a> PhysicalDeviceImageProcessing2FeaturesQCOM<'a> { #[inline] pub fn texture_block_match2(mut self, texture_block_match2: bool) -> Self { @@ -61765,7 +61479,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageProcessing2PropertiesQCOM const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> {} +unsafe impl Extends> + for PhysicalDeviceImageProcessing2PropertiesQCOM<'_> +{ +} impl<'a> PhysicalDeviceImageProcessing2PropertiesQCOM<'a> { #[inline] pub fn max_block_match_window(mut self, max_block_match_window: Extent2D) -> Self { @@ -61803,7 +61520,7 @@ unsafe impl<'a> TaggedStructure for SamplerBlockMatchWindowCreateInfoQCOM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM; } -unsafe impl ExtendsSamplerCreateInfo for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} +unsafe impl Extends> for SamplerBlockMatchWindowCreateInfoQCOM<'_> {} impl<'a> SamplerBlockMatchWindowCreateInfoQCOM<'a> { #[inline] pub fn window_extent(mut self, window_extent: Extent2D) -> Self { @@ -61847,11 +61564,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDescriptorPoolOverallocationFe const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'_> {} impl<'a> PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a> { #[inline] pub fn descriptor_pool_overallocation(mut self, descriptor_pool_overallocation: bool) -> Self { @@ -61887,7 +61607,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceLayeredDriverPropertiesMSFT<'a const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> {} +unsafe impl Extends> + for PhysicalDeviceLayeredDriverPropertiesMSFT<'_> +{ +} impl<'a> PhysicalDeviceLayeredDriverPropertiesMSFT<'a> { #[inline] pub fn underlying_api(mut self, underlying_api: LayeredDriverUnderlyingApiMSFT) -> Self { @@ -61925,8 +61648,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDevicePerStageDescriptorSetFeaturesN const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} +unsafe impl Extends> + for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDevicePerStageDescriptorSetFeaturesNV<'_> {} impl<'a> PhysicalDevicePerStageDescriptorSetFeaturesNV<'a> { #[inline] pub fn per_stage_descriptor_set(mut self, per_stage_descriptor_set: bool) -> Self { @@ -61967,11 +61693,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFormatResolveFeaturesA const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceExternalFormatResolveFeaturesANDROID<'_> {} impl<'a> PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a> { #[inline] pub fn external_format_resolve(mut self, external_format_resolve: bool) -> Self { @@ -62011,7 +61740,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceExternalFormatResolvePropertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceExternalFormatResolvePropertiesANDROID<'_> { } @@ -62070,7 +61799,7 @@ unsafe impl<'a> TaggedStructure for AndroidHardwareBufferFormatResolveProperties const STRUCTURE_TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID; } -unsafe impl ExtendsAndroidHardwareBufferPropertiesANDROID +unsafe impl Extends> for AndroidHardwareBufferFormatResolvePropertiesANDROID<'_> { } @@ -62434,8 +62163,8 @@ impl ::core::default::Default for LatencySubmissionPresentIdNV<'_> { unsafe impl<'a> TaggedStructure for LatencySubmissionPresentIdNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV; } -unsafe impl ExtendsSubmitInfo for LatencySubmissionPresentIdNV<'_> {} -unsafe impl ExtendsSubmitInfo2 for LatencySubmissionPresentIdNV<'_> {} +unsafe impl Extends> for LatencySubmissionPresentIdNV<'_> {} +unsafe impl Extends> for LatencySubmissionPresentIdNV<'_> {} impl<'a> LatencySubmissionPresentIdNV<'a> { #[inline] pub fn present_id(mut self, present_id: u64) -> Self { @@ -62470,7 +62199,7 @@ impl ::core::default::Default for SwapchainLatencyCreateInfoNV<'_> { unsafe impl<'a> TaggedStructure for SwapchainLatencyCreateInfoNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV; } -unsafe impl ExtendsSwapchainCreateInfoKHR for SwapchainLatencyCreateInfoNV<'_> {} +unsafe impl Extends> for SwapchainLatencyCreateInfoNV<'_> {} impl<'a> SwapchainLatencyCreateInfoNV<'a> { #[inline] pub fn latency_mode_enable(mut self, latency_mode_enable: bool) -> Self { @@ -62507,7 +62236,7 @@ impl ::core::default::Default for LatencySurfaceCapabilitiesNV<'_> { unsafe impl<'a> TaggedStructure for LatencySurfaceCapabilitiesNV<'a> { const STRUCTURE_TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV; } -unsafe impl ExtendsSurfaceCapabilities2KHR for LatencySurfaceCapabilitiesNV<'_> {} +unsafe impl Extends> for LatencySurfaceCapabilitiesNV<'_> {} impl<'a> LatencySurfaceCapabilitiesNV<'a> { #[inline] pub fn present_modes(mut self, present_modes: &'a mut [PresentModeKHR]) -> Self { @@ -62544,8 +62273,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCudaKernelLaunchFeaturesNV<'_> {} impl<'a> PhysicalDeviceCudaKernelLaunchFeaturesNV<'a> { #[inline] pub fn cuda_kernel_launch_features(mut self, cuda_kernel_launch_features: bool) -> Self { @@ -62583,7 +62312,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCudaKernelLaunchPropertiesNV<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> {} +unsafe impl Extends> + for PhysicalDeviceCudaKernelLaunchPropertiesNV<'_> +{ +} impl<'a> PhysicalDeviceCudaKernelLaunchPropertiesNV<'a> { #[inline] pub fn compute_capability_minor(mut self, compute_capability_minor: u32) -> Self { @@ -62624,8 +62356,8 @@ unsafe impl<'a> TaggedStructure for DeviceQueueShaderCoreControlCreateInfoARM<'a const STRUCTURE_TYPE: StructureType = StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM; } -unsafe impl ExtendsDeviceQueueCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +unsafe impl Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} +unsafe impl Extends> for DeviceQueueShaderCoreControlCreateInfoARM<'_> {} impl<'a> DeviceQueueShaderCoreControlCreateInfoARM<'a> { #[inline] pub fn shader_core_count(mut self, shader_core_count: u32) -> Self { @@ -62661,8 +62393,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSchedulingControlsFeaturesARM< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} +unsafe impl Extends> + for PhysicalDeviceSchedulingControlsFeaturesARM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceSchedulingControlsFeaturesARM<'_> {} impl<'a> PhysicalDeviceSchedulingControlsFeaturesARM<'a> { #[inline] pub fn scheduling_controls(mut self, scheduling_controls: bool) -> Self { @@ -62698,7 +62433,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceSchedulingControlsPropertiesAR const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceSchedulingControlsPropertiesARM<'_> {} +unsafe impl Extends> + for PhysicalDeviceSchedulingControlsPropertiesARM<'_> +{ +} impl<'a> PhysicalDeviceSchedulingControlsPropertiesARM<'a> { #[inline] pub fn scheduling_controls_flags( @@ -62737,11 +62475,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRelaxedLineRasterizationFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'_> {} impl<'a> PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a> { #[inline] pub fn relaxed_line_rasterization(mut self, relaxed_line_rasterization: bool) -> Self { @@ -62777,8 +62518,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRenderPassStripedFeaturesARM<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} +unsafe impl Extends> + for PhysicalDeviceRenderPassStripedFeaturesARM<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceRenderPassStripedFeaturesARM<'_> {} impl<'a> PhysicalDeviceRenderPassStripedFeaturesARM<'a> { #[inline] pub fn render_pass_striped(mut self, render_pass_striped: bool) -> Self { @@ -62816,7 +62560,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRenderPassStripedPropertiesARM const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceRenderPassStripedPropertiesARM<'_> {} +unsafe impl Extends> + for PhysicalDeviceRenderPassStripedPropertiesARM<'_> +{ +} impl<'a> PhysicalDeviceRenderPassStripedPropertiesARM<'a> { #[inline] pub fn render_pass_stripe_granularity( @@ -62895,8 +62642,8 @@ impl ::core::default::Default for RenderPassStripeBeginInfoARM<'_> { unsafe impl<'a> TaggedStructure for RenderPassStripeBeginInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM; } -unsafe impl ExtendsRenderingInfo for RenderPassStripeBeginInfoARM<'_> {} -unsafe impl ExtendsRenderPassBeginInfo for RenderPassStripeBeginInfoARM<'_> {} +unsafe impl Extends> for RenderPassStripeBeginInfoARM<'_> {} +unsafe impl Extends> for RenderPassStripeBeginInfoARM<'_> {} impl<'a> RenderPassStripeBeginInfoARM<'a> { #[inline] pub fn stripe_infos(mut self, stripe_infos: &'a [RenderPassStripeInfoARM<'a>]) -> Self { @@ -62934,7 +62681,7 @@ impl ::core::default::Default for RenderPassStripeSubmitInfoARM<'_> { unsafe impl<'a> TaggedStructure for RenderPassStripeSubmitInfoARM<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM; } -unsafe impl ExtendsCommandBufferSubmitInfo for RenderPassStripeSubmitInfoARM<'_> {} +unsafe impl Extends> for RenderPassStripeSubmitInfoARM<'_> {} impl<'a> RenderPassStripeSubmitInfoARM<'a> { #[inline] pub fn stripe_semaphore_infos( @@ -62974,11 +62721,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderMaximalReconvergenceFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a> { #[inline] pub fn shader_maximal_reconvergence(mut self, shader_maximal_reconvergence: bool) -> Self { @@ -63016,8 +62766,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderSubgroupRotateFeaturesKH const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderSubgroupRotateFeaturesKHR<'a> { #[inline] pub fn shader_subgroup_rotate(mut self, shader_subgroup_rotate: bool) -> Self { @@ -63061,8 +62814,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderExpectAssumeFeaturesKHR< const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderExpectAssumeFeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderExpectAssumeFeaturesKHR<'a> { #[inline] pub fn shader_expect_assume(mut self, shader_expect_assume: bool) -> Self { @@ -63098,8 +62854,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderFloatControls2FeaturesKH const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderFloatControls2FeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderFloatControls2FeaturesKHR<'a> { #[inline] pub fn shader_float_controls2(mut self, shader_float_controls2: bool) -> Self { @@ -63135,11 +62894,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceDynamicRenderingLocalReadFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'_> {} impl<'a> PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR<'a> { #[inline] pub fn dynamic_rendering_local_read(mut self, dynamic_rendering_local_read: bool) -> Self { @@ -63176,8 +62938,8 @@ impl ::core::default::Default for RenderingAttachmentLocationInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RenderingAttachmentLocationInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingAttachmentLocationInfoKHR<'_> {} -unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingAttachmentLocationInfoKHR<'_> {} +unsafe impl Extends> for RenderingAttachmentLocationInfoKHR<'_> {} +unsafe impl Extends> for RenderingAttachmentLocationInfoKHR<'_> {} impl<'a> RenderingAttachmentLocationInfoKHR<'a> { #[inline] pub fn color_attachment_locations(mut self, color_attachment_locations: &'a [u32]) -> Self { @@ -63219,8 +62981,8 @@ impl ::core::default::Default for RenderingInputAttachmentIndexInfoKHR<'_> { unsafe impl<'a> TaggedStructure for RenderingInputAttachmentIndexInfoKHR<'a> { const STRUCTURE_TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR; } -unsafe impl ExtendsGraphicsPipelineCreateInfo for RenderingInputAttachmentIndexInfoKHR<'_> {} -unsafe impl ExtendsCommandBufferInheritanceInfo for RenderingInputAttachmentIndexInfoKHR<'_> {} +unsafe impl Extends> for RenderingInputAttachmentIndexInfoKHR<'_> {} +unsafe impl Extends> for RenderingInputAttachmentIndexInfoKHR<'_> {} impl<'a> RenderingInputAttachmentIndexInfoKHR<'a> { #[inline] pub fn color_attachment_input_indices( @@ -63273,8 +63035,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderQuadControlFeaturesKHR<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} +unsafe impl Extends> + for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderQuadControlFeaturesKHR<'_> {} impl<'a> PhysicalDeviceShaderQuadControlFeaturesKHR<'a> { #[inline] pub fn shader_quad_control(mut self, shader_quad_control: bool) -> Self { @@ -63310,11 +63075,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderAtomicFloat16VectorFeatu const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'_> {} impl<'a> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a> { #[inline] pub fn shader_float16_vector_atomics(mut self, shader_float16_vector_atomics: bool) -> Self { @@ -63354,8 +63122,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} +unsafe impl Extends> for PhysicalDeviceMapMemoryPlacedFeaturesEXT<'_> {} impl<'a> PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a> { #[inline] pub fn memory_map_placed(mut self, memory_map_placed: bool) -> Self { @@ -63401,7 +63169,10 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceMapMemoryPlacedPropertiesEXT<' const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT; } -unsafe impl ExtendsPhysicalDeviceProperties2 for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> {} +unsafe impl Extends> + for PhysicalDeviceMapMemoryPlacedPropertiesEXT<'_> +{ +} impl<'a> PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a> { #[inline] pub fn min_placed_memory_map_alignment( @@ -63439,7 +63210,7 @@ impl ::core::default::Default for MemoryMapPlacedInfoEXT<'_> { unsafe impl<'a> TaggedStructure for MemoryMapPlacedInfoEXT<'a> { const STRUCTURE_TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT; } -unsafe impl ExtendsMemoryMapInfoKHR for MemoryMapPlacedInfoEXT<'_> {} +unsafe impl Extends> for MemoryMapPlacedInfoEXT<'_> {} impl<'a> MemoryMapPlacedInfoEXT<'a> { #[inline] pub fn placed_address(mut self, placed_address: *mut c_void) -> Self { @@ -63475,8 +63246,8 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceRawAccessChainsFeaturesNV<'a> const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceRawAccessChainsFeaturesNV<'_> {} impl<'a> PhysicalDeviceRawAccessChainsFeaturesNV<'a> { #[inline] pub fn shader_raw_access_chains(mut self, shader_raw_access_chains: bool) -> Self { @@ -63512,11 +63283,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceCommandBufferInheritanceFeatur const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} +unsafe impl Extends> for PhysicalDeviceCommandBufferInheritanceFeaturesNV<'_> {} impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a> { #[inline] pub fn command_buffer_inheritance(mut self, command_buffer_inheritance: bool) -> Self { @@ -63552,8 +63323,11 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlFeaturesM const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA; } -unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} +unsafe impl Extends> + for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceImageAlignmentControlFeaturesMESA<'_> {} impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESA<'a> { #[inline] pub fn image_alignment_control(mut self, image_alignment_control: bool) -> Self { @@ -63589,7 +63363,7 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceImageAlignmentControlPropertie const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA; } -unsafe impl ExtendsPhysicalDeviceProperties2 +unsafe impl Extends> for PhysicalDeviceImageAlignmentControlPropertiesMESA<'_> { } @@ -63627,7 +63401,7 @@ impl ::core::default::Default for ImageAlignmentControlCreateInfoMESA<'_> { unsafe impl<'a> TaggedStructure for ImageAlignmentControlCreateInfoMESA<'a> { const STRUCTURE_TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA; } -unsafe impl ExtendsImageCreateInfo for ImageAlignmentControlCreateInfoMESA<'_> {} +unsafe impl Extends> for ImageAlignmentControlCreateInfoMESA<'_> {} impl<'a> ImageAlignmentControlCreateInfoMESA<'a> { #[inline] pub fn maximum_requested_alignment(mut self, maximum_requested_alignment: u32) -> Self { @@ -63663,11 +63437,14 @@ unsafe impl<'a> TaggedStructure for PhysicalDeviceShaderReplicatedCompositesFeat const STRUCTURE_TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT; } -unsafe impl ExtendsPhysicalDeviceFeatures2 +unsafe impl Extends> + for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> +{ +} +unsafe impl Extends> for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> { } -unsafe impl ExtendsDeviceCreateInfo for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'_> {} impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a> { #[inline] pub fn shader_replicated_composites(mut self, shader_replicated_composites: bool) -> Self { diff --git a/ash/src/vk/prelude.rs b/ash/src/vk/prelude.rs index 5f77f147..ef8ecf0d 100644 --- a/ash/src/vk/prelude.rs +++ b/ash/src/vk/prelude.rs @@ -63,6 +63,15 @@ pub unsafe trait TaggedStructure { const STRUCTURE_TYPE: vk::StructureType; } +/// Implemented for every structure that extends base structure `B`. Concretely that means struct +/// `B` is listed in its array of [`structextends` in the Vulkan registry][1]. +/// +/// Similar to [`TaggedStructure`] , all `unsafe` implementers of this trait must guarantee that +/// their structure is layout-compatible [`vk::BaseInStructure`] and [`vk::BaseOutStructure`]. +/// +/// [1]: https://registry.khronos.org/vulkan/specs/latest/styleguide.html#extensions-interactions +pub unsafe trait Extends {} + #[inline] pub(crate) fn wrap_c_str_slice_until_nul( str: &[c_char], diff --git a/generator/src/lib.rs b/generator/src/lib.rs index b56eb458..8b11d9c8 100644 --- a/generator/src/lib.rs +++ b/generator/src/lib.rs @@ -2312,8 +2312,6 @@ fn derive_getters_and_setters( }) }); - let extends_name = format_ident!("Extends{}", name); - // The `p_next` field should only be considered if this struct is also a root struct let root_struct_next_field = next_field.filter(|_| root_structs.contains(&name)); @@ -2331,7 +2329,7 @@ fn derive_getters_and_setters( /// # Panics /// If `next` contains a pointer chain of its own, this function will panic. Call /// `unsafe` [`Self::extend()`] to insert this chain instead. - pub fn push(mut self, next: &'a mut T) -> Self { + pub fn push + ?Sized>(mut self, next: &'a mut T) -> Self { // SAFETY: All implementors of T are required to have the `BaseOutStructure` layout let next_base = unsafe { &mut *<*mut T>::cast::>(next) }; // `next` here can contain a pointer chain. This function refuses to insert the struct, @@ -2356,7 +2354,7 @@ fn derive_getters_and_setters( /// The last struct in this chain (i.e. the one where `p_next` is `NULL`) must /// be writable memory, as its `p_next` field will be updated with the value of /// `self.p_next`. - pub unsafe fn extend(mut self, next: &'a mut T) -> Self { + pub unsafe fn extend + ?Sized>(mut self, next: &'a mut T) -> Self { // `next` here can contain a pointer chain. This means that we must correctly // attach he head to the root and the tail to the rest of the chain // For example: @@ -2374,7 +2372,7 @@ fn derive_getters_and_setters( #[doc(hidden)] #[deprecated = "Migrate to `push()` if `next` does not have an existing chain (i.e. `p_next` is `NULL`), `extend()` otherwise"] - pub unsafe fn push_next(self, next: &'a mut T) -> Self { + pub unsafe fn push_next + ?Sized>(self, next: &'a mut T) -> Self { self.extend(next) } } @@ -2382,14 +2380,6 @@ fn derive_getters_and_setters( quote!() }; - // Root structs come with their own trait that structs that extend - // this struct will implement - let next_trait = if root_struct_next_field.is_some() { - quote!(pub unsafe trait #extends_name {}) - } else { - quote!() - }; - let lifetime = has_lifetimes.contains(&name).then(|| quote!(<'a>)); // If the struct extends something we need to implement the traits. @@ -2397,10 +2387,10 @@ fn derive_getters_and_setters( .extends .iter() .flat_map(|extends| extends.split(',')) - .map(|extends| format_ident!("Extends{}", name_to_tokens(extends))) .map(|extends| { + let base = name_to_tokens(extends); // Extension structs always have a pNext, and therefore always have a lifetime. - quote!(unsafe impl #extends for #name<'_> {}) + quote!(unsafe impl Extends<#base<'_>> for #name<'_> {}) }); let impl_structure_type_trait = structure_type_field.map(|member| { @@ -2423,7 +2413,6 @@ fn derive_getters_and_setters( let q = quote! { #impl_structure_type_trait #(#impl_extend_trait)* - #next_trait impl #lifetime #name #lifetime { #(#setters)*