1use crate as vk;
3
4impl<'a> crate::construction::sealed::ChainNode for vk::ApplicationInfo<'a> {
5 const S_TYPE: vk::StructureType = vk::StructureType::APPLICATION_INFO;
6
7 fn s_type(&self) -> vk::StructureType {
8 self.s_type
9 }
10
11 fn p_next(&self) -> *const std::ffi::c_void {
12 self.p_next
13 }
14
15 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16 self.p_next = p_next.cast_const();
17 }
18
19 fn address(&mut self) -> *mut std::ffi::c_void {
20 std::ptr::from_mut(self).cast()
21 }
22}
23
24impl<'a> crate::construction::sealed::ChainNode for vk::DeviceQueueCreateInfo<'a> {
25 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_QUEUE_CREATE_INFO;
26
27 fn s_type(&self) -> vk::StructureType {
28 self.s_type
29 }
30
31 fn p_next(&self) -> *const std::ffi::c_void {
32 self.p_next
33 }
34
35 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
36 self.p_next = p_next.cast_const();
37 }
38
39 fn address(&mut self) -> *mut std::ffi::c_void {
40 std::ptr::from_mut(self).cast()
41 }
42}
43
44impl<'a> crate::construction::sealed::ChainNode for vk::DeviceCreateInfo<'a> {
45 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_CREATE_INFO;
46
47 fn s_type(&self) -> vk::StructureType {
48 self.s_type
49 }
50
51 fn p_next(&self) -> *const std::ffi::c_void {
52 self.p_next
53 }
54
55 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
56 self.p_next = p_next.cast_const();
57 }
58
59 fn address(&mut self) -> *mut std::ffi::c_void {
60 std::ptr::from_mut(self).cast()
61 }
62}
63
64impl<'a> crate::construction::sealed::ChainNode for vk::InstanceCreateInfo<'a> {
65 const S_TYPE: vk::StructureType = vk::StructureType::INSTANCE_CREATE_INFO;
66
67 fn s_type(&self) -> vk::StructureType {
68 self.s_type
69 }
70
71 fn p_next(&self) -> *const std::ffi::c_void {
72 self.p_next
73 }
74
75 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
76 self.p_next = p_next.cast_const();
77 }
78
79 fn address(&mut self) -> *mut std::ffi::c_void {
80 std::ptr::from_mut(self).cast()
81 }
82}
83
84impl<'a> crate::construction::sealed::ChainNode for vk::MemoryAllocateInfo<'a> {
85 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_ALLOCATE_INFO;
86
87 fn s_type(&self) -> vk::StructureType {
88 self.s_type
89 }
90
91 fn p_next(&self) -> *const std::ffi::c_void {
92 self.p_next
93 }
94
95 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
96 self.p_next = p_next.cast_const();
97 }
98
99 fn address(&mut self) -> *mut std::ffi::c_void {
100 std::ptr::from_mut(self).cast()
101 }
102}
103
104impl<'a> crate::construction::sealed::ChainNode for vk::MappedMemoryRange<'a> {
105 const S_TYPE: vk::StructureType = vk::StructureType::MAPPED_MEMORY_RANGE;
106
107 fn s_type(&self) -> vk::StructureType {
108 self.s_type
109 }
110
111 fn p_next(&self) -> *const std::ffi::c_void {
112 self.p_next
113 }
114
115 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
116 self.p_next = p_next.cast_const();
117 }
118
119 fn address(&mut self) -> *mut std::ffi::c_void {
120 std::ptr::from_mut(self).cast()
121 }
122}
123
124impl<'a> crate::construction::sealed::ChainNode for vk::WriteDescriptorSet<'a> {
125 const S_TYPE: vk::StructureType = vk::StructureType::WRITE_DESCRIPTOR_SET;
126
127 fn s_type(&self) -> vk::StructureType {
128 self.s_type
129 }
130
131 fn p_next(&self) -> *const std::ffi::c_void {
132 self.p_next
133 }
134
135 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
136 self.p_next = p_next.cast_const();
137 }
138
139 fn address(&mut self) -> *mut std::ffi::c_void {
140 std::ptr::from_mut(self).cast()
141 }
142}
143
144impl<'a> crate::construction::sealed::ChainNode for vk::CopyDescriptorSet<'a> {
145 const S_TYPE: vk::StructureType = vk::StructureType::COPY_DESCRIPTOR_SET;
146
147 fn s_type(&self) -> vk::StructureType {
148 self.s_type
149 }
150
151 fn p_next(&self) -> *const std::ffi::c_void {
152 self.p_next
153 }
154
155 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
156 self.p_next = p_next.cast_const();
157 }
158
159 fn address(&mut self) -> *mut std::ffi::c_void {
160 std::ptr::from_mut(self).cast()
161 }
162}
163
164impl<'a> crate::construction::sealed::ChainNode for vk::BufferUsageFlags2CreateInfo<'a> {
165 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO;
166
167 fn s_type(&self) -> vk::StructureType {
168 self.s_type
169 }
170
171 fn p_next(&self) -> *const std::ffi::c_void {
172 self.p_next
173 }
174
175 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
176 self.p_next = p_next.cast_const();
177 }
178
179 fn address(&mut self) -> *mut std::ffi::c_void {
180 std::ptr::from_mut(self).cast()
181 }
182}
183
184impl<'a, 'root> crate::Extends<vk::BufferViewCreateInfo<'root>>
185 for vk::BufferUsageFlags2CreateInfo<'a>
186{
187}
188
189impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
190 for vk::BufferUsageFlags2CreateInfo<'a>
191{
192}
193
194impl<'a, 'root> crate::Extends<vk::PhysicalDeviceExternalBufferInfo<'root>>
195 for vk::BufferUsageFlags2CreateInfo<'a>
196{
197}
198
199impl<'a, 'root> crate::Extends<vk::DescriptorBufferBindingInfoEXT<'root>>
200 for vk::BufferUsageFlags2CreateInfo<'a>
201{
202}
203
204impl<'a> crate::construction::sealed::ChainNode for vk::BufferCreateInfo<'a> {
205 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_CREATE_INFO;
206
207 fn s_type(&self) -> vk::StructureType {
208 self.s_type
209 }
210
211 fn p_next(&self) -> *const std::ffi::c_void {
212 self.p_next
213 }
214
215 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
216 self.p_next = p_next.cast_const();
217 }
218
219 fn address(&mut self) -> *mut std::ffi::c_void {
220 std::ptr::from_mut(self).cast()
221 }
222}
223
224impl<'a> crate::construction::sealed::ChainNode for vk::BufferViewCreateInfo<'a> {
225 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_VIEW_CREATE_INFO;
226
227 fn s_type(&self) -> vk::StructureType {
228 self.s_type
229 }
230
231 fn p_next(&self) -> *const std::ffi::c_void {
232 self.p_next
233 }
234
235 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
236 self.p_next = p_next.cast_const();
237 }
238
239 fn address(&mut self) -> *mut std::ffi::c_void {
240 std::ptr::from_mut(self).cast()
241 }
242}
243
244impl<'a> crate::construction::sealed::ChainNode for vk::MemoryBarrier<'a> {
245 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_BARRIER;
246
247 fn s_type(&self) -> vk::StructureType {
248 self.s_type
249 }
250
251 fn p_next(&self) -> *const std::ffi::c_void {
252 self.p_next
253 }
254
255 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
256 self.p_next = p_next.cast_const();
257 }
258
259 fn address(&mut self) -> *mut std::ffi::c_void {
260 std::ptr::from_mut(self).cast()
261 }
262}
263
264impl<'a> crate::construction::sealed::ChainNode for vk::BufferMemoryBarrier<'a> {
265 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_MEMORY_BARRIER;
266
267 fn s_type(&self) -> vk::StructureType {
268 self.s_type
269 }
270
271 fn p_next(&self) -> *const std::ffi::c_void {
272 self.p_next
273 }
274
275 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
276 self.p_next = p_next.cast_const();
277 }
278
279 fn address(&mut self) -> *mut std::ffi::c_void {
280 std::ptr::from_mut(self).cast()
281 }
282}
283
284impl<'a> crate::construction::sealed::ChainNode for vk::ImageMemoryBarrier<'a> {
285 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_MEMORY_BARRIER;
286
287 fn s_type(&self) -> vk::StructureType {
288 self.s_type
289 }
290
291 fn p_next(&self) -> *const std::ffi::c_void {
292 self.p_next
293 }
294
295 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
296 self.p_next = p_next.cast_const();
297 }
298
299 fn address(&mut self) -> *mut std::ffi::c_void {
300 std::ptr::from_mut(self).cast()
301 }
302}
303
304impl<'a> crate::construction::sealed::ChainNode for vk::ImageCreateInfo<'a> {
305 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_CREATE_INFO;
306
307 fn s_type(&self) -> vk::StructureType {
308 self.s_type
309 }
310
311 fn p_next(&self) -> *const std::ffi::c_void {
312 self.p_next
313 }
314
315 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
316 self.p_next = p_next.cast_const();
317 }
318
319 fn address(&mut self) -> *mut std::ffi::c_void {
320 std::ptr::from_mut(self).cast()
321 }
322}
323
324impl<'a> crate::construction::sealed::ChainNode for vk::ImageCreateFlags2CreateInfoKHR<'a> {
325 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_CREATE_FLAGS_2_CREATE_INFO_KHR;
326
327 fn s_type(&self) -> vk::StructureType {
328 self.s_type
329 }
330
331 fn p_next(&self) -> *const std::ffi::c_void {
332 self.p_next.cast_const()
333 }
334
335 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
336 self.p_next = p_next;
337 }
338
339 fn address(&mut self) -> *mut std::ffi::c_void {
340 std::ptr::from_mut(self).cast()
341 }
342}
343
344impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
345 for vk::ImageCreateFlags2CreateInfoKHR<'a>
346{
347}
348
349impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
350 for vk::ImageCreateFlags2CreateInfoKHR<'a>
351{
352}
353
354impl<'a, 'root> crate::Extends<vk::FramebufferAttachmentImageInfo<'root>>
355 for vk::ImageCreateFlags2CreateInfoKHR<'a>
356{
357}
358
359impl<'a, 'root> crate::Extends<vk::VideoFormatPropertiesKHR<'root>>
360 for vk::ImageCreateFlags2CreateInfoKHR<'a>
361{
362}
363
364impl<'a> crate::construction::sealed::ChainNode for vk::ImageUsageFlags2CreateInfoKHR<'a> {
365 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_USAGE_FLAGS_2_CREATE_INFO_KHR;
366
367 fn s_type(&self) -> vk::StructureType {
368 self.s_type
369 }
370
371 fn p_next(&self) -> *const std::ffi::c_void {
372 self.p_next.cast_const()
373 }
374
375 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
376 self.p_next = p_next;
377 }
378
379 fn address(&mut self) -> *mut std::ffi::c_void {
380 std::ptr::from_mut(self).cast()
381 }
382}
383
384impl<'a, 'root> crate::Extends<vk::FramebufferAttachmentImageInfo<'root>>
385 for vk::ImageUsageFlags2CreateInfoKHR<'a>
386{
387}
388
389impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
390 for vk::ImageUsageFlags2CreateInfoKHR<'a>
391{
392}
393
394impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
395 for vk::ImageUsageFlags2CreateInfoKHR<'a>
396{
397}
398
399impl<'a, 'root> crate::Extends<vk::PhysicalDeviceSparseImageFormatInfo2<'root>>
400 for vk::ImageUsageFlags2CreateInfoKHR<'a>
401{
402}
403
404impl<'a, 'root> crate::Extends<vk::PhysicalDeviceVideoFormatInfoKHR<'root>>
405 for vk::ImageUsageFlags2CreateInfoKHR<'a>
406{
407}
408
409impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
410 for vk::ImageUsageFlags2CreateInfoKHR<'a>
411{
412}
413
414impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
415 for vk::ImageUsageFlags2CreateInfoKHR<'a>
416{
417}
418
419impl<'a, 'root> crate::Extends<vk::VideoFormatPropertiesKHR<'root>>
420 for vk::ImageUsageFlags2CreateInfoKHR<'a>
421{
422}
423
424impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewCreateInfo<'a> {
425 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_CREATE_INFO;
426
427 fn s_type(&self) -> vk::StructureType {
428 self.s_type
429 }
430
431 fn p_next(&self) -> *const std::ffi::c_void {
432 self.p_next
433 }
434
435 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
436 self.p_next = p_next.cast_const();
437 }
438
439 fn address(&mut self) -> *mut std::ffi::c_void {
440 std::ptr::from_mut(self).cast()
441 }
442}
443
444impl<'a> crate::construction::sealed::ChainNode for vk::BindSparseInfo<'a> {
445 const S_TYPE: vk::StructureType = vk::StructureType::BIND_SPARSE_INFO;
446
447 fn s_type(&self) -> vk::StructureType {
448 self.s_type
449 }
450
451 fn p_next(&self) -> *const std::ffi::c_void {
452 self.p_next
453 }
454
455 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
456 self.p_next = p_next.cast_const();
457 }
458
459 fn address(&mut self) -> *mut std::ffi::c_void {
460 std::ptr::from_mut(self).cast()
461 }
462}
463
464impl<'a> crate::construction::sealed::ChainNode for vk::CopyMemoryIndirectInfoKHR<'a> {
465 const S_TYPE: vk::StructureType = vk::StructureType::COPY_MEMORY_INDIRECT_INFO_KHR;
466
467 fn s_type(&self) -> vk::StructureType {
468 self.s_type
469 }
470
471 fn p_next(&self) -> *const std::ffi::c_void {
472 self.p_next
473 }
474
475 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
476 self.p_next = p_next.cast_const();
477 }
478
479 fn address(&mut self) -> *mut std::ffi::c_void {
480 std::ptr::from_mut(self).cast()
481 }
482}
483
484impl<'a> crate::construction::sealed::ChainNode for vk::CopyMemoryToImageIndirectInfoKHR<'a> {
485 const S_TYPE: vk::StructureType = vk::StructureType::COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR;
486
487 fn s_type(&self) -> vk::StructureType {
488 self.s_type
489 }
490
491 fn p_next(&self) -> *const std::ffi::c_void {
492 self.p_next
493 }
494
495 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
496 self.p_next = p_next.cast_const();
497 }
498
499 fn address(&mut self) -> *mut std::ffi::c_void {
500 std::ptr::from_mut(self).cast()
501 }
502}
503
504impl<'a> crate::construction::sealed::ChainNode for vk::ShaderModuleCreateInfo<'a> {
505 const S_TYPE: vk::StructureType = vk::StructureType::SHADER_MODULE_CREATE_INFO;
506
507 fn s_type(&self) -> vk::StructureType {
508 self.s_type
509 }
510
511 fn p_next(&self) -> *const std::ffi::c_void {
512 self.p_next
513 }
514
515 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
516 self.p_next = p_next.cast_const();
517 }
518
519 fn address(&mut self) -> *mut std::ffi::c_void {
520 std::ptr::from_mut(self).cast()
521 }
522}
523
524impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
525 for vk::ShaderModuleCreateInfo<'a>
526{
527}
528
529impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
530 for vk::ShaderModuleCreateInfo<'a>
531{
532}
533
534impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorSetLayoutCreateInfo<'a> {
535 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
536
537 fn s_type(&self) -> vk::StructureType {
538 self.s_type
539 }
540
541 fn p_next(&self) -> *const std::ffi::c_void {
542 self.p_next
543 }
544
545 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
546 self.p_next = p_next.cast_const();
547 }
548
549 fn address(&mut self) -> *mut std::ffi::c_void {
550 std::ptr::from_mut(self).cast()
551 }
552}
553
554impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorPoolCreateInfo<'a> {
555 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_POOL_CREATE_INFO;
556
557 fn s_type(&self) -> vk::StructureType {
558 self.s_type
559 }
560
561 fn p_next(&self) -> *const std::ffi::c_void {
562 self.p_next
563 }
564
565 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
566 self.p_next = p_next.cast_const();
567 }
568
569 fn address(&mut self) -> *mut std::ffi::c_void {
570 std::ptr::from_mut(self).cast()
571 }
572}
573
574impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorSetAllocateInfo<'a> {
575 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_SET_ALLOCATE_INFO;
576
577 fn s_type(&self) -> vk::StructureType {
578 self.s_type
579 }
580
581 fn p_next(&self) -> *const std::ffi::c_void {
582 self.p_next
583 }
584
585 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
586 self.p_next = p_next.cast_const();
587 }
588
589 fn address(&mut self) -> *mut std::ffi::c_void {
590 std::ptr::from_mut(self).cast()
591 }
592}
593
594impl<'a> crate::construction::sealed::ChainNode for vk::PipelineShaderStageCreateInfo<'a> {
595 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO;
596
597 fn s_type(&self) -> vk::StructureType {
598 self.s_type
599 }
600
601 fn p_next(&self) -> *const std::ffi::c_void {
602 self.p_next
603 }
604
605 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
606 self.p_next = p_next.cast_const();
607 }
608
609 fn address(&mut self) -> *mut std::ffi::c_void {
610 std::ptr::from_mut(self).cast()
611 }
612}
613
614impl<'a> crate::construction::sealed::ChainNode for vk::ComputePipelineCreateInfo<'a> {
615 const S_TYPE: vk::StructureType = vk::StructureType::COMPUTE_PIPELINE_CREATE_INFO;
616
617 fn s_type(&self) -> vk::StructureType {
618 self.s_type
619 }
620
621 fn p_next(&self) -> *const std::ffi::c_void {
622 self.p_next
623 }
624
625 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
626 self.p_next = p_next.cast_const();
627 }
628
629 fn address(&mut self) -> *mut std::ffi::c_void {
630 std::ptr::from_mut(self).cast()
631 }
632}
633
634impl<'a, 'root> crate::Extends<vk::PipelineCreateInfoKHR<'root>>
635 for vk::ComputePipelineCreateInfo<'a>
636{
637}
638
639impl<'a> crate::construction::sealed::ChainNode for vk::ComputePipelineIndirectBufferInfoNV<'a> {
640 const S_TYPE: vk::StructureType = vk::StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV;
641
642 fn s_type(&self) -> vk::StructureType {
643 self.s_type
644 }
645
646 fn p_next(&self) -> *const std::ffi::c_void {
647 self.p_next
648 }
649
650 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
651 self.p_next = p_next.cast_const();
652 }
653
654 fn address(&mut self) -> *mut std::ffi::c_void {
655 std::ptr::from_mut(self).cast()
656 }
657}
658
659impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
660 for vk::ComputePipelineIndirectBufferInfoNV<'a>
661{
662}
663
664impl<'a> crate::construction::sealed::ChainNode for vk::PipelineCreateFlags2CreateInfo<'a> {
665 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO;
666
667 fn s_type(&self) -> vk::StructureType {
668 self.s_type
669 }
670
671 fn p_next(&self) -> *const std::ffi::c_void {
672 self.p_next
673 }
674
675 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
676 self.p_next = p_next.cast_const();
677 }
678
679 fn address(&mut self) -> *mut std::ffi::c_void {
680 std::ptr::from_mut(self).cast()
681 }
682}
683
684impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
685 for vk::PipelineCreateFlags2CreateInfo<'a>
686{
687}
688
689impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
690 for vk::PipelineCreateFlags2CreateInfo<'a>
691{
692}
693
694impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoNV<'root>>
695 for vk::PipelineCreateFlags2CreateInfo<'a>
696{
697}
698
699impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoKHR<'root>>
700 for vk::PipelineCreateFlags2CreateInfo<'a>
701{
702}
703
704impl<'a> crate::construction::sealed::ChainNode for vk::PipelineVertexInputStateCreateInfo<'a> {
705 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
706
707 fn s_type(&self) -> vk::StructureType {
708 self.s_type
709 }
710
711 fn p_next(&self) -> *const std::ffi::c_void {
712 self.p_next
713 }
714
715 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
716 self.p_next = p_next.cast_const();
717 }
718
719 fn address(&mut self) -> *mut std::ffi::c_void {
720 std::ptr::from_mut(self).cast()
721 }
722}
723
724impl<'a> crate::construction::sealed::ChainNode for vk::PipelineInputAssemblyStateCreateInfo<'a> {
725 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
726
727 fn s_type(&self) -> vk::StructureType {
728 self.s_type
729 }
730
731 fn p_next(&self) -> *const std::ffi::c_void {
732 self.p_next
733 }
734
735 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
736 self.p_next = p_next.cast_const();
737 }
738
739 fn address(&mut self) -> *mut std::ffi::c_void {
740 std::ptr::from_mut(self).cast()
741 }
742}
743
744impl<'a> crate::construction::sealed::ChainNode for vk::PipelineTessellationStateCreateInfo<'a> {
745 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO;
746
747 fn s_type(&self) -> vk::StructureType {
748 self.s_type
749 }
750
751 fn p_next(&self) -> *const std::ffi::c_void {
752 self.p_next
753 }
754
755 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
756 self.p_next = p_next.cast_const();
757 }
758
759 fn address(&mut self) -> *mut std::ffi::c_void {
760 std::ptr::from_mut(self).cast()
761 }
762}
763
764impl<'a> crate::construction::sealed::ChainNode for vk::PipelineViewportStateCreateInfo<'a> {
765 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO;
766
767 fn s_type(&self) -> vk::StructureType {
768 self.s_type
769 }
770
771 fn p_next(&self) -> *const std::ffi::c_void {
772 self.p_next
773 }
774
775 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
776 self.p_next = p_next.cast_const();
777 }
778
779 fn address(&mut self) -> *mut std::ffi::c_void {
780 std::ptr::from_mut(self).cast()
781 }
782}
783
784impl<'a> crate::construction::sealed::ChainNode for vk::PipelineRasterizationStateCreateInfo<'a> {
785 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
786
787 fn s_type(&self) -> vk::StructureType {
788 self.s_type
789 }
790
791 fn p_next(&self) -> *const std::ffi::c_void {
792 self.p_next
793 }
794
795 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
796 self.p_next = p_next.cast_const();
797 }
798
799 fn address(&mut self) -> *mut std::ffi::c_void {
800 std::ptr::from_mut(self).cast()
801 }
802}
803
804impl<'a> crate::construction::sealed::ChainNode for vk::PipelineMultisampleStateCreateInfo<'a> {
805 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
806
807 fn s_type(&self) -> vk::StructureType {
808 self.s_type
809 }
810
811 fn p_next(&self) -> *const std::ffi::c_void {
812 self.p_next
813 }
814
815 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
816 self.p_next = p_next.cast_const();
817 }
818
819 fn address(&mut self) -> *mut std::ffi::c_void {
820 std::ptr::from_mut(self).cast()
821 }
822}
823
824impl<'a> crate::construction::sealed::ChainNode for vk::PipelineColorBlendStateCreateInfo<'a> {
825 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
826
827 fn s_type(&self) -> vk::StructureType {
828 self.s_type
829 }
830
831 fn p_next(&self) -> *const std::ffi::c_void {
832 self.p_next
833 }
834
835 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
836 self.p_next = p_next.cast_const();
837 }
838
839 fn address(&mut self) -> *mut std::ffi::c_void {
840 std::ptr::from_mut(self).cast()
841 }
842}
843
844impl<'a> crate::construction::sealed::ChainNode for vk::PipelineDynamicStateCreateInfo<'a> {
845 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_DYNAMIC_STATE_CREATE_INFO;
846
847 fn s_type(&self) -> vk::StructureType {
848 self.s_type
849 }
850
851 fn p_next(&self) -> *const std::ffi::c_void {
852 self.p_next
853 }
854
855 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
856 self.p_next = p_next.cast_const();
857 }
858
859 fn address(&mut self) -> *mut std::ffi::c_void {
860 std::ptr::from_mut(self).cast()
861 }
862}
863
864impl<'a> crate::construction::sealed::ChainNode for vk::PipelineDepthStencilStateCreateInfo<'a> {
865 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
866
867 fn s_type(&self) -> vk::StructureType {
868 self.s_type
869 }
870
871 fn p_next(&self) -> *const std::ffi::c_void {
872 self.p_next
873 }
874
875 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
876 self.p_next = p_next.cast_const();
877 }
878
879 fn address(&mut self) -> *mut std::ffi::c_void {
880 std::ptr::from_mut(self).cast()
881 }
882}
883
884impl<'a> crate::construction::sealed::ChainNode for vk::GraphicsPipelineCreateInfo<'a> {
885 const S_TYPE: vk::StructureType = vk::StructureType::GRAPHICS_PIPELINE_CREATE_INFO;
886
887 fn s_type(&self) -> vk::StructureType {
888 self.s_type
889 }
890
891 fn p_next(&self) -> *const std::ffi::c_void {
892 self.p_next
893 }
894
895 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
896 self.p_next = p_next.cast_const();
897 }
898
899 fn address(&mut self) -> *mut std::ffi::c_void {
900 std::ptr::from_mut(self).cast()
901 }
902}
903
904impl<'a, 'root> crate::Extends<vk::PipelineCreateInfoKHR<'root>>
905 for vk::GraphicsPipelineCreateInfo<'a>
906{
907}
908
909impl<'a> crate::construction::sealed::ChainNode for vk::PipelineCacheCreateInfo<'a> {
910 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_CACHE_CREATE_INFO;
911
912 fn s_type(&self) -> vk::StructureType {
913 self.s_type
914 }
915
916 fn p_next(&self) -> *const std::ffi::c_void {
917 self.p_next
918 }
919
920 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
921 self.p_next = p_next.cast_const();
922 }
923
924 fn address(&mut self) -> *mut std::ffi::c_void {
925 std::ptr::from_mut(self).cast()
926 }
927}
928
929impl<'a> crate::construction::sealed::ChainNode for vk::PipelineBinaryCreateInfoKHR<'a> {
930 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_BINARY_CREATE_INFO_KHR;
931
932 fn s_type(&self) -> vk::StructureType {
933 self.s_type
934 }
935
936 fn p_next(&self) -> *const std::ffi::c_void {
937 self.p_next
938 }
939
940 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
941 self.p_next = p_next.cast_const();
942 }
943
944 fn address(&mut self) -> *mut std::ffi::c_void {
945 std::ptr::from_mut(self).cast()
946 }
947}
948
949impl<'a> crate::construction::sealed::ChainNode for vk::PipelineBinaryHandlesInfoKHR<'a> {
950 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR;
951
952 fn s_type(&self) -> vk::StructureType {
953 self.s_type
954 }
955
956 fn p_next(&self) -> *const std::ffi::c_void {
957 self.p_next
958 }
959
960 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
961 self.p_next = p_next.cast_const();
962 }
963
964 fn address(&mut self) -> *mut std::ffi::c_void {
965 std::ptr::from_mut(self).cast()
966 }
967}
968
969impl<'a> crate::construction::sealed::ChainNode for vk::PipelineBinaryKeyKHR<'a> {
970 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_BINARY_KEY_KHR;
971
972 fn s_type(&self) -> vk::StructureType {
973 self.s_type
974 }
975
976 fn p_next(&self) -> *const std::ffi::c_void {
977 self.p_next.cast_const()
978 }
979
980 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
981 self.p_next = p_next;
982 }
983
984 fn address(&mut self) -> *mut std::ffi::c_void {
985 std::ptr::from_mut(self).cast()
986 }
987}
988
989impl<'a> crate::construction::sealed::ChainNode for vk::PipelineBinaryInfoKHR<'a> {
990 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_BINARY_INFO_KHR;
991
992 fn s_type(&self) -> vk::StructureType {
993 self.s_type
994 }
995
996 fn p_next(&self) -> *const std::ffi::c_void {
997 self.p_next
998 }
999
1000 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1001 self.p_next = p_next.cast_const();
1002 }
1003
1004 fn address(&mut self) -> *mut std::ffi::c_void {
1005 std::ptr::from_mut(self).cast()
1006 }
1007}
1008
1009impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
1010 for vk::PipelineBinaryInfoKHR<'a>
1011{
1012}
1013
1014impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
1015 for vk::PipelineBinaryInfoKHR<'a>
1016{
1017}
1018
1019impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoKHR<'root>>
1020 for vk::PipelineBinaryInfoKHR<'a>
1021{
1022}
1023
1024impl<'a> crate::construction::sealed::ChainNode for vk::ReleaseCapturedPipelineDataInfoKHR<'a> {
1025 const S_TYPE: vk::StructureType = vk::StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR;
1026
1027 fn s_type(&self) -> vk::StructureType {
1028 self.s_type
1029 }
1030
1031 fn p_next(&self) -> *const std::ffi::c_void {
1032 self.p_next.cast_const()
1033 }
1034
1035 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1036 self.p_next = p_next;
1037 }
1038
1039 fn address(&mut self) -> *mut std::ffi::c_void {
1040 std::ptr::from_mut(self).cast()
1041 }
1042}
1043
1044impl<'a> crate::construction::sealed::ChainNode for vk::PipelineBinaryDataInfoKHR<'a> {
1045 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_BINARY_DATA_INFO_KHR;
1046
1047 fn s_type(&self) -> vk::StructureType {
1048 self.s_type
1049 }
1050
1051 fn p_next(&self) -> *const std::ffi::c_void {
1052 self.p_next.cast_const()
1053 }
1054
1055 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1056 self.p_next = p_next;
1057 }
1058
1059 fn address(&mut self) -> *mut std::ffi::c_void {
1060 std::ptr::from_mut(self).cast()
1061 }
1062}
1063
1064impl<'a> crate::construction::sealed::ChainNode for vk::PipelineCreateInfoKHR<'a> {
1065 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_CREATE_INFO_KHR;
1066
1067 fn s_type(&self) -> vk::StructureType {
1068 self.s_type
1069 }
1070
1071 fn p_next(&self) -> *const std::ffi::c_void {
1072 self.p_next.cast_const()
1073 }
1074
1075 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1076 self.p_next = p_next;
1077 }
1078
1079 fn address(&mut self) -> *mut std::ffi::c_void {
1080 std::ptr::from_mut(self).cast()
1081 }
1082}
1083
1084impl<'a> crate::construction::sealed::ChainNode for vk::PipelineLayoutCreateInfo<'a> {
1085 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_LAYOUT_CREATE_INFO;
1086
1087 fn s_type(&self) -> vk::StructureType {
1088 self.s_type
1089 }
1090
1091 fn p_next(&self) -> *const std::ffi::c_void {
1092 self.p_next
1093 }
1094
1095 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1096 self.p_next = p_next.cast_const();
1097 }
1098
1099 fn address(&mut self) -> *mut std::ffi::c_void {
1100 std::ptr::from_mut(self).cast()
1101 }
1102}
1103
1104impl<'a, 'root> crate::Extends<vk::BindDescriptorSetsInfo<'root>>
1105 for vk::PipelineLayoutCreateInfo<'a>
1106{
1107}
1108
1109impl<'a, 'root> crate::Extends<vk::PushConstantsInfo<'root>> for vk::PipelineLayoutCreateInfo<'a> {}
1110
1111impl<'a, 'root> crate::Extends<vk::PushDescriptorSetInfo<'root>>
1112 for vk::PipelineLayoutCreateInfo<'a>
1113{
1114}
1115
1116impl<'a, 'root> crate::Extends<vk::PushDescriptorSetWithTemplateInfo<'root>>
1117 for vk::PipelineLayoutCreateInfo<'a>
1118{
1119}
1120
1121impl<'a, 'root> crate::Extends<vk::SetDescriptorBufferOffsetsInfoEXT<'root>>
1122 for vk::PipelineLayoutCreateInfo<'a>
1123{
1124}
1125
1126impl<'a, 'root> crate::Extends<vk::BindDescriptorBufferEmbeddedSamplersInfoEXT<'root>>
1127 for vk::PipelineLayoutCreateInfo<'a>
1128{
1129}
1130
1131impl<'a, 'root> crate::Extends<vk::IndirectCommandsLayoutCreateInfoEXT<'root>>
1132 for vk::PipelineLayoutCreateInfo<'a>
1133{
1134}
1135
1136impl<'a> crate::construction::sealed::ChainNode for vk::SamplerCreateInfo<'a> {
1137 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_CREATE_INFO;
1138
1139 fn s_type(&self) -> vk::StructureType {
1140 self.s_type
1141 }
1142
1143 fn p_next(&self) -> *const std::ffi::c_void {
1144 self.p_next
1145 }
1146
1147 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1148 self.p_next = p_next.cast_const();
1149 }
1150
1151 fn address(&mut self) -> *mut std::ffi::c_void {
1152 std::ptr::from_mut(self).cast()
1153 }
1154}
1155
1156impl<'a> crate::construction::sealed::ChainNode for vk::CommandPoolCreateInfo<'a> {
1157 const S_TYPE: vk::StructureType = vk::StructureType::COMMAND_POOL_CREATE_INFO;
1158
1159 fn s_type(&self) -> vk::StructureType {
1160 self.s_type
1161 }
1162
1163 fn p_next(&self) -> *const std::ffi::c_void {
1164 self.p_next
1165 }
1166
1167 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1168 self.p_next = p_next.cast_const();
1169 }
1170
1171 fn address(&mut self) -> *mut std::ffi::c_void {
1172 std::ptr::from_mut(self).cast()
1173 }
1174}
1175
1176impl<'a> crate::construction::sealed::ChainNode for vk::CommandBufferAllocateInfo<'a> {
1177 const S_TYPE: vk::StructureType = vk::StructureType::COMMAND_BUFFER_ALLOCATE_INFO;
1178
1179 fn s_type(&self) -> vk::StructureType {
1180 self.s_type
1181 }
1182
1183 fn p_next(&self) -> *const std::ffi::c_void {
1184 self.p_next
1185 }
1186
1187 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1188 self.p_next = p_next.cast_const();
1189 }
1190
1191 fn address(&mut self) -> *mut std::ffi::c_void {
1192 std::ptr::from_mut(self).cast()
1193 }
1194}
1195
1196impl<'a> crate::construction::sealed::ChainNode for vk::CommandBufferInheritanceInfo<'a> {
1197 const S_TYPE: vk::StructureType = vk::StructureType::COMMAND_BUFFER_INHERITANCE_INFO;
1198
1199 fn s_type(&self) -> vk::StructureType {
1200 self.s_type
1201 }
1202
1203 fn p_next(&self) -> *const std::ffi::c_void {
1204 self.p_next
1205 }
1206
1207 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1208 self.p_next = p_next.cast_const();
1209 }
1210
1211 fn address(&mut self) -> *mut std::ffi::c_void {
1212 std::ptr::from_mut(self).cast()
1213 }
1214}
1215
1216impl<'a> crate::construction::sealed::ChainNode for vk::CommandBufferBeginInfo<'a> {
1217 const S_TYPE: vk::StructureType = vk::StructureType::COMMAND_BUFFER_BEGIN_INFO;
1218
1219 fn s_type(&self) -> vk::StructureType {
1220 self.s_type
1221 }
1222
1223 fn p_next(&self) -> *const std::ffi::c_void {
1224 self.p_next
1225 }
1226
1227 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1228 self.p_next = p_next.cast_const();
1229 }
1230
1231 fn address(&mut self) -> *mut std::ffi::c_void {
1232 std::ptr::from_mut(self).cast()
1233 }
1234}
1235
1236impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassBeginInfo<'a> {
1237 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_BEGIN_INFO;
1238
1239 fn s_type(&self) -> vk::StructureType {
1240 self.s_type
1241 }
1242
1243 fn p_next(&self) -> *const std::ffi::c_void {
1244 self.p_next
1245 }
1246
1247 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1248 self.p_next = p_next.cast_const();
1249 }
1250
1251 fn address(&mut self) -> *mut std::ffi::c_void {
1252 std::ptr::from_mut(self).cast()
1253 }
1254}
1255
1256impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassCreateInfo<'a> {
1257 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_CREATE_INFO;
1258
1259 fn s_type(&self) -> vk::StructureType {
1260 self.s_type
1261 }
1262
1263 fn p_next(&self) -> *const std::ffi::c_void {
1264 self.p_next
1265 }
1266
1267 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1268 self.p_next = p_next.cast_const();
1269 }
1270
1271 fn address(&mut self) -> *mut std::ffi::c_void {
1272 std::ptr::from_mut(self).cast()
1273 }
1274}
1275
1276impl<'a> crate::construction::sealed::ChainNode for vk::EventCreateInfo<'a> {
1277 const S_TYPE: vk::StructureType = vk::StructureType::EVENT_CREATE_INFO;
1278
1279 fn s_type(&self) -> vk::StructureType {
1280 self.s_type
1281 }
1282
1283 fn p_next(&self) -> *const std::ffi::c_void {
1284 self.p_next
1285 }
1286
1287 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1288 self.p_next = p_next.cast_const();
1289 }
1290
1291 fn address(&mut self) -> *mut std::ffi::c_void {
1292 std::ptr::from_mut(self).cast()
1293 }
1294}
1295
1296impl<'a> crate::construction::sealed::ChainNode for vk::FenceCreateInfo<'a> {
1297 const S_TYPE: vk::StructureType = vk::StructureType::FENCE_CREATE_INFO;
1298
1299 fn s_type(&self) -> vk::StructureType {
1300 self.s_type
1301 }
1302
1303 fn p_next(&self) -> *const std::ffi::c_void {
1304 self.p_next
1305 }
1306
1307 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1308 self.p_next = p_next.cast_const();
1309 }
1310
1311 fn address(&mut self) -> *mut std::ffi::c_void {
1312 std::ptr::from_mut(self).cast()
1313 }
1314}
1315
1316impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreCreateInfo<'a> {
1317 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_CREATE_INFO;
1318
1319 fn s_type(&self) -> vk::StructureType {
1320 self.s_type
1321 }
1322
1323 fn p_next(&self) -> *const std::ffi::c_void {
1324 self.p_next
1325 }
1326
1327 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1328 self.p_next = p_next.cast_const();
1329 }
1330
1331 fn address(&mut self) -> *mut std::ffi::c_void {
1332 std::ptr::from_mut(self).cast()
1333 }
1334}
1335
1336impl<'a> crate::construction::sealed::ChainNode for vk::QueryPoolCreateInfo<'a> {
1337 const S_TYPE: vk::StructureType = vk::StructureType::QUERY_POOL_CREATE_INFO;
1338
1339 fn s_type(&self) -> vk::StructureType {
1340 self.s_type
1341 }
1342
1343 fn p_next(&self) -> *const std::ffi::c_void {
1344 self.p_next
1345 }
1346
1347 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1348 self.p_next = p_next.cast_const();
1349 }
1350
1351 fn address(&mut self) -> *mut std::ffi::c_void {
1352 std::ptr::from_mut(self).cast()
1353 }
1354}
1355
1356impl<'a> crate::construction::sealed::ChainNode for vk::FramebufferCreateInfo<'a> {
1357 const S_TYPE: vk::StructureType = vk::StructureType::FRAMEBUFFER_CREATE_INFO;
1358
1359 fn s_type(&self) -> vk::StructureType {
1360 self.s_type
1361 }
1362
1363 fn p_next(&self) -> *const std::ffi::c_void {
1364 self.p_next
1365 }
1366
1367 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1368 self.p_next = p_next.cast_const();
1369 }
1370
1371 fn address(&mut self) -> *mut std::ffi::c_void {
1372 std::ptr::from_mut(self).cast()
1373 }
1374}
1375
1376impl<'a> crate::construction::sealed::ChainNode for vk::SubmitInfo<'a> {
1377 const S_TYPE: vk::StructureType = vk::StructureType::SUBMIT_INFO;
1378
1379 fn s_type(&self) -> vk::StructureType {
1380 self.s_type
1381 }
1382
1383 fn p_next(&self) -> *const std::ffi::c_void {
1384 self.p_next
1385 }
1386
1387 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1388 self.p_next = p_next.cast_const();
1389 }
1390
1391 fn address(&mut self) -> *mut std::ffi::c_void {
1392 std::ptr::from_mut(self).cast()
1393 }
1394}
1395
1396impl<'a> crate::construction::sealed::ChainNode for vk::DisplayModeCreateInfoKHR<'a> {
1397 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_MODE_CREATE_INFO_KHR;
1398
1399 fn s_type(&self) -> vk::StructureType {
1400 self.s_type
1401 }
1402
1403 fn p_next(&self) -> *const std::ffi::c_void {
1404 self.p_next
1405 }
1406
1407 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1408 self.p_next = p_next.cast_const();
1409 }
1410
1411 fn address(&mut self) -> *mut std::ffi::c_void {
1412 std::ptr::from_mut(self).cast()
1413 }
1414}
1415
1416impl<'a> crate::construction::sealed::ChainNode for vk::DisplaySurfaceCreateInfoKHR<'a> {
1417 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_SURFACE_CREATE_INFO_KHR;
1418
1419 fn s_type(&self) -> vk::StructureType {
1420 self.s_type
1421 }
1422
1423 fn p_next(&self) -> *const std::ffi::c_void {
1424 self.p_next
1425 }
1426
1427 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1428 self.p_next = p_next.cast_const();
1429 }
1430
1431 fn address(&mut self) -> *mut std::ffi::c_void {
1432 std::ptr::from_mut(self).cast()
1433 }
1434}
1435
1436impl<'a> crate::construction::sealed::ChainNode for vk::DisplaySurfaceStereoCreateInfoNV<'a> {
1437 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV;
1438
1439 fn s_type(&self) -> vk::StructureType {
1440 self.s_type
1441 }
1442
1443 fn p_next(&self) -> *const std::ffi::c_void {
1444 self.p_next
1445 }
1446
1447 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1448 self.p_next = p_next.cast_const();
1449 }
1450
1451 fn address(&mut self) -> *mut std::ffi::c_void {
1452 std::ptr::from_mut(self).cast()
1453 }
1454}
1455
1456impl<'a, 'root> crate::Extends<vk::DisplaySurfaceCreateInfoKHR<'root>>
1457 for vk::DisplaySurfaceStereoCreateInfoNV<'a>
1458{
1459}
1460
1461impl<'a> crate::construction::sealed::ChainNode for vk::DisplayPresentInfoKHR<'a> {
1462 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_PRESENT_INFO_KHR;
1463
1464 fn s_type(&self) -> vk::StructureType {
1465 self.s_type
1466 }
1467
1468 fn p_next(&self) -> *const std::ffi::c_void {
1469 self.p_next
1470 }
1471
1472 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1473 self.p_next = p_next.cast_const();
1474 }
1475
1476 fn address(&mut self) -> *mut std::ffi::c_void {
1477 std::ptr::from_mut(self).cast()
1478 }
1479}
1480
1481impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::DisplayPresentInfoKHR<'a> {}
1482
1483#[cfg(feature = "platform-android")]
1484impl<'a> crate::construction::sealed::ChainNode for vk::AndroidSurfaceCreateInfoKHR<'a> {
1485 const S_TYPE: vk::StructureType = vk::StructureType::ANDROID_SURFACE_CREATE_INFO_KHR;
1486
1487 fn s_type(&self) -> vk::StructureType {
1488 self.s_type
1489 }
1490
1491 fn p_next(&self) -> *const std::ffi::c_void {
1492 self.p_next
1493 }
1494
1495 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1496 self.p_next = p_next.cast_const();
1497 }
1498
1499 fn address(&mut self) -> *mut std::ffi::c_void {
1500 std::ptr::from_mut(self).cast()
1501 }
1502}
1503
1504#[cfg(feature = "platform-vi")]
1505impl<'a> crate::construction::sealed::ChainNode for vk::ViSurfaceCreateInfoNN<'a> {
1506 const S_TYPE: vk::StructureType = vk::StructureType::VI_SURFACE_CREATE_INFO_NN;
1507
1508 fn s_type(&self) -> vk::StructureType {
1509 self.s_type
1510 }
1511
1512 fn p_next(&self) -> *const std::ffi::c_void {
1513 self.p_next
1514 }
1515
1516 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1517 self.p_next = p_next.cast_const();
1518 }
1519
1520 fn address(&mut self) -> *mut std::ffi::c_void {
1521 std::ptr::from_mut(self).cast()
1522 }
1523}
1524
1525#[cfg(feature = "platform-wayland")]
1526impl<'a> crate::construction::sealed::ChainNode for vk::WaylandSurfaceCreateInfoKHR<'a> {
1527 const S_TYPE: vk::StructureType = vk::StructureType::WAYLAND_SURFACE_CREATE_INFO_KHR;
1528
1529 fn s_type(&self) -> vk::StructureType {
1530 self.s_type
1531 }
1532
1533 fn p_next(&self) -> *const std::ffi::c_void {
1534 self.p_next
1535 }
1536
1537 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1538 self.p_next = p_next.cast_const();
1539 }
1540
1541 fn address(&mut self) -> *mut std::ffi::c_void {
1542 std::ptr::from_mut(self).cast()
1543 }
1544}
1545
1546#[cfg(feature = "platform-ubm")]
1547impl<'a> crate::construction::sealed::ChainNode for vk::UbmSurfaceCreateInfoSEC<'a> {
1548 const S_TYPE: vk::StructureType = vk::StructureType::UBM_SURFACE_CREATE_INFO_SEC;
1549
1550 fn s_type(&self) -> vk::StructureType {
1551 self.s_type
1552 }
1553
1554 fn p_next(&self) -> *const std::ffi::c_void {
1555 self.p_next
1556 }
1557
1558 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1559 self.p_next = p_next.cast_const();
1560 }
1561
1562 fn address(&mut self) -> *mut std::ffi::c_void {
1563 std::ptr::from_mut(self).cast()
1564 }
1565}
1566
1567#[cfg(feature = "platform-win32")]
1568impl<'a> crate::construction::sealed::ChainNode for vk::Win32SurfaceCreateInfoKHR<'a> {
1569 const S_TYPE: vk::StructureType = vk::StructureType::WIN32_SURFACE_CREATE_INFO_KHR;
1570
1571 fn s_type(&self) -> vk::StructureType {
1572 self.s_type
1573 }
1574
1575 fn p_next(&self) -> *const std::ffi::c_void {
1576 self.p_next
1577 }
1578
1579 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1580 self.p_next = p_next.cast_const();
1581 }
1582
1583 fn address(&mut self) -> *mut std::ffi::c_void {
1584 std::ptr::from_mut(self).cast()
1585 }
1586}
1587
1588#[cfg(feature = "platform-xlib")]
1589impl<'a> crate::construction::sealed::ChainNode for vk::XlibSurfaceCreateInfoKHR<'a> {
1590 const S_TYPE: vk::StructureType = vk::StructureType::XLIB_SURFACE_CREATE_INFO_KHR;
1591
1592 fn s_type(&self) -> vk::StructureType {
1593 self.s_type
1594 }
1595
1596 fn p_next(&self) -> *const std::ffi::c_void {
1597 self.p_next
1598 }
1599
1600 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1601 self.p_next = p_next.cast_const();
1602 }
1603
1604 fn address(&mut self) -> *mut std::ffi::c_void {
1605 std::ptr::from_mut(self).cast()
1606 }
1607}
1608
1609#[cfg(feature = "platform-xcb")]
1610impl<'a> crate::construction::sealed::ChainNode for vk::XcbSurfaceCreateInfoKHR<'a> {
1611 const S_TYPE: vk::StructureType = vk::StructureType::XCB_SURFACE_CREATE_INFO_KHR;
1612
1613 fn s_type(&self) -> vk::StructureType {
1614 self.s_type
1615 }
1616
1617 fn p_next(&self) -> *const std::ffi::c_void {
1618 self.p_next
1619 }
1620
1621 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1622 self.p_next = p_next.cast_const();
1623 }
1624
1625 fn address(&mut self) -> *mut std::ffi::c_void {
1626 std::ptr::from_mut(self).cast()
1627 }
1628}
1629
1630#[cfg(feature = "platform-directfb")]
1631impl<'a> crate::construction::sealed::ChainNode for vk::DirectFBSurfaceCreateInfoEXT<'a> {
1632 const S_TYPE: vk::StructureType = vk::StructureType::DIRECTFB_SURFACE_CREATE_INFO_EXT;
1633
1634 fn s_type(&self) -> vk::StructureType {
1635 self.s_type
1636 }
1637
1638 fn p_next(&self) -> *const std::ffi::c_void {
1639 self.p_next
1640 }
1641
1642 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1643 self.p_next = p_next.cast_const();
1644 }
1645
1646 fn address(&mut self) -> *mut std::ffi::c_void {
1647 std::ptr::from_mut(self).cast()
1648 }
1649}
1650
1651#[cfg(feature = "platform-fuchsia")]
1652impl<'a> crate::construction::sealed::ChainNode for vk::ImagePipeSurfaceCreateInfoFUCHSIA<'a> {
1653 const S_TYPE: vk::StructureType = vk::StructureType::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
1654
1655 fn s_type(&self) -> vk::StructureType {
1656 self.s_type
1657 }
1658
1659 fn p_next(&self) -> *const std::ffi::c_void {
1660 self.p_next
1661 }
1662
1663 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1664 self.p_next = p_next.cast_const();
1665 }
1666
1667 fn address(&mut self) -> *mut std::ffi::c_void {
1668 std::ptr::from_mut(self).cast()
1669 }
1670}
1671
1672#[cfg(feature = "platform-ggp")]
1673impl<'a> crate::construction::sealed::ChainNode for vk::StreamDescriptorSurfaceCreateInfoGGP<'a> {
1674 const S_TYPE: vk::StructureType = vk::StructureType::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
1675
1676 fn s_type(&self) -> vk::StructureType {
1677 self.s_type
1678 }
1679
1680 fn p_next(&self) -> *const std::ffi::c_void {
1681 self.p_next
1682 }
1683
1684 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1685 self.p_next = p_next.cast_const();
1686 }
1687
1688 fn address(&mut self) -> *mut std::ffi::c_void {
1689 std::ptr::from_mut(self).cast()
1690 }
1691}
1692
1693#[cfg(feature = "platform-screen")]
1694impl<'a> crate::construction::sealed::ChainNode for vk::ScreenSurfaceCreateInfoQNX<'a> {
1695 const S_TYPE: vk::StructureType = vk::StructureType::SCREEN_SURFACE_CREATE_INFO_QNX;
1696
1697 fn s_type(&self) -> vk::StructureType {
1698 self.s_type
1699 }
1700
1701 fn p_next(&self) -> *const std::ffi::c_void {
1702 self.p_next
1703 }
1704
1705 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1706 self.p_next = p_next.cast_const();
1707 }
1708
1709 fn address(&mut self) -> *mut std::ffi::c_void {
1710 std::ptr::from_mut(self).cast()
1711 }
1712}
1713
1714impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainCreateInfoKHR<'a> {
1715 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_CREATE_INFO_KHR;
1716
1717 fn s_type(&self) -> vk::StructureType {
1718 self.s_type
1719 }
1720
1721 fn p_next(&self) -> *const std::ffi::c_void {
1722 self.p_next
1723 }
1724
1725 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1726 self.p_next = p_next.cast_const();
1727 }
1728
1729 fn address(&mut self) -> *mut std::ffi::c_void {
1730 std::ptr::from_mut(self).cast()
1731 }
1732}
1733
1734impl<'a> crate::construction::sealed::ChainNode for vk::PresentInfoKHR<'a> {
1735 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_INFO_KHR;
1736
1737 fn s_type(&self) -> vk::StructureType {
1738 self.s_type
1739 }
1740
1741 fn p_next(&self) -> *const std::ffi::c_void {
1742 self.p_next
1743 }
1744
1745 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1746 self.p_next = p_next.cast_const();
1747 }
1748
1749 fn address(&mut self) -> *mut std::ffi::c_void {
1750 std::ptr::from_mut(self).cast()
1751 }
1752}
1753
1754impl<'a> crate::construction::sealed::ChainNode for vk::DebugReportCallbackCreateInfoEXT<'a> {
1755 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
1756
1757 fn s_type(&self) -> vk::StructureType {
1758 self.s_type
1759 }
1760
1761 fn p_next(&self) -> *const std::ffi::c_void {
1762 self.p_next
1763 }
1764
1765 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1766 self.p_next = p_next.cast_const();
1767 }
1768
1769 fn address(&mut self) -> *mut std::ffi::c_void {
1770 std::ptr::from_mut(self).cast()
1771 }
1772}
1773
1774impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>>
1775 for vk::DebugReportCallbackCreateInfoEXT<'a>
1776{
1777}
1778
1779impl<'a> crate::construction::sealed::ChainNode for vk::ValidationFlagsEXT<'a> {
1780 const S_TYPE: vk::StructureType = vk::StructureType::VALIDATION_FLAGS_EXT;
1781
1782 fn s_type(&self) -> vk::StructureType {
1783 self.s_type
1784 }
1785
1786 fn p_next(&self) -> *const std::ffi::c_void {
1787 self.p_next
1788 }
1789
1790 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1791 self.p_next = p_next.cast_const();
1792 }
1793
1794 fn address(&mut self) -> *mut std::ffi::c_void {
1795 std::ptr::from_mut(self).cast()
1796 }
1797}
1798
1799impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>> for vk::ValidationFlagsEXT<'a> {}
1800
1801impl<'a> crate::construction::sealed::ChainNode for vk::ValidationFeaturesEXT<'a> {
1802 const S_TYPE: vk::StructureType = vk::StructureType::VALIDATION_FEATURES_EXT;
1803
1804 fn s_type(&self) -> vk::StructureType {
1805 self.s_type
1806 }
1807
1808 fn p_next(&self) -> *const std::ffi::c_void {
1809 self.p_next
1810 }
1811
1812 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1813 self.p_next = p_next.cast_const();
1814 }
1815
1816 fn address(&mut self) -> *mut std::ffi::c_void {
1817 std::ptr::from_mut(self).cast()
1818 }
1819}
1820
1821impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>> for vk::ValidationFeaturesEXT<'a> {}
1822
1823impl<'a, 'root> crate::Extends<vk::ShaderModuleCreateInfo<'root>>
1824 for vk::ValidationFeaturesEXT<'a>
1825{
1826}
1827
1828impl<'a, 'root> crate::Extends<vk::ShaderCreateInfoEXT<'root>> for vk::ValidationFeaturesEXT<'a> {}
1829
1830impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
1831 for vk::ValidationFeaturesEXT<'a>
1832{
1833}
1834
1835impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
1836 for vk::ValidationFeaturesEXT<'a>
1837{
1838}
1839
1840impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
1841 for vk::ValidationFeaturesEXT<'a>
1842{
1843}
1844
1845impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoKHR<'root>>
1846 for vk::ValidationFeaturesEXT<'a>
1847{
1848}
1849
1850impl<'a> crate::construction::sealed::ChainNode for vk::LayerSettingsCreateInfoEXT<'a> {
1851 const S_TYPE: vk::StructureType = vk::StructureType::LAYER_SETTINGS_CREATE_INFO_EXT;
1852
1853 fn s_type(&self) -> vk::StructureType {
1854 self.s_type
1855 }
1856
1857 fn p_next(&self) -> *const std::ffi::c_void {
1858 self.p_next
1859 }
1860
1861 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1862 self.p_next = p_next.cast_const();
1863 }
1864
1865 fn address(&mut self) -> *mut std::ffi::c_void {
1866 std::ptr::from_mut(self).cast()
1867 }
1868}
1869
1870impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>>
1871 for vk::LayerSettingsCreateInfoEXT<'a>
1872{
1873}
1874
1875impl<'a> crate::construction::sealed::ChainNode
1876 for vk::PipelineRasterizationStateRasterizationOrderAMD<'a>
1877{
1878 const S_TYPE: vk::StructureType =
1879 vk::StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
1880
1881 fn s_type(&self) -> vk::StructureType {
1882 self.s_type
1883 }
1884
1885 fn p_next(&self) -> *const std::ffi::c_void {
1886 self.p_next
1887 }
1888
1889 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1890 self.p_next = p_next.cast_const();
1891 }
1892
1893 fn address(&mut self) -> *mut std::ffi::c_void {
1894 std::ptr::from_mut(self).cast()
1895 }
1896}
1897
1898impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
1899 for vk::PipelineRasterizationStateRasterizationOrderAMD<'a>
1900{
1901}
1902
1903impl<'a> crate::construction::sealed::ChainNode for vk::DebugMarkerObjectNameInfoEXT<'a> {
1904 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
1905
1906 fn s_type(&self) -> vk::StructureType {
1907 self.s_type
1908 }
1909
1910 fn p_next(&self) -> *const std::ffi::c_void {
1911 self.p_next
1912 }
1913
1914 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1915 self.p_next = p_next.cast_const();
1916 }
1917
1918 fn address(&mut self) -> *mut std::ffi::c_void {
1919 std::ptr::from_mut(self).cast()
1920 }
1921}
1922
1923impl<'a> crate::construction::sealed::ChainNode for vk::DebugMarkerObjectTagInfoEXT<'a> {
1924 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
1925
1926 fn s_type(&self) -> vk::StructureType {
1927 self.s_type
1928 }
1929
1930 fn p_next(&self) -> *const std::ffi::c_void {
1931 self.p_next
1932 }
1933
1934 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1935 self.p_next = p_next.cast_const();
1936 }
1937
1938 fn address(&mut self) -> *mut std::ffi::c_void {
1939 std::ptr::from_mut(self).cast()
1940 }
1941}
1942
1943impl<'a> crate::construction::sealed::ChainNode for vk::DebugMarkerMarkerInfoEXT<'a> {
1944 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_MARKER_MARKER_INFO_EXT;
1945
1946 fn s_type(&self) -> vk::StructureType {
1947 self.s_type
1948 }
1949
1950 fn p_next(&self) -> *const std::ffi::c_void {
1951 self.p_next
1952 }
1953
1954 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1955 self.p_next = p_next.cast_const();
1956 }
1957
1958 fn address(&mut self) -> *mut std::ffi::c_void {
1959 std::ptr::from_mut(self).cast()
1960 }
1961}
1962
1963impl<'a> crate::construction::sealed::ChainNode for vk::DedicatedAllocationImageCreateInfoNV<'a> {
1964 const S_TYPE: vk::StructureType = vk::StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
1965
1966 fn s_type(&self) -> vk::StructureType {
1967 self.s_type
1968 }
1969
1970 fn p_next(&self) -> *const std::ffi::c_void {
1971 self.p_next
1972 }
1973
1974 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
1975 self.p_next = p_next.cast_const();
1976 }
1977
1978 fn address(&mut self) -> *mut std::ffi::c_void {
1979 std::ptr::from_mut(self).cast()
1980 }
1981}
1982
1983impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
1984 for vk::DedicatedAllocationImageCreateInfoNV<'a>
1985{
1986}
1987
1988impl<'a> crate::construction::sealed::ChainNode for vk::DedicatedAllocationBufferCreateInfoNV<'a> {
1989 const S_TYPE: vk::StructureType = vk::StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
1990
1991 fn s_type(&self) -> vk::StructureType {
1992 self.s_type
1993 }
1994
1995 fn p_next(&self) -> *const std::ffi::c_void {
1996 self.p_next
1997 }
1998
1999 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2000 self.p_next = p_next.cast_const();
2001 }
2002
2003 fn address(&mut self) -> *mut std::ffi::c_void {
2004 std::ptr::from_mut(self).cast()
2005 }
2006}
2007
2008impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
2009 for vk::DedicatedAllocationBufferCreateInfoNV<'a>
2010{
2011}
2012
2013impl<'a> crate::construction::sealed::ChainNode
2014 for vk::DedicatedAllocationMemoryAllocateInfoNV<'a>
2015{
2016 const S_TYPE: vk::StructureType = vk::StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
2017
2018 fn s_type(&self) -> vk::StructureType {
2019 self.s_type
2020 }
2021
2022 fn p_next(&self) -> *const std::ffi::c_void {
2023 self.p_next
2024 }
2025
2026 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2027 self.p_next = p_next.cast_const();
2028 }
2029
2030 fn address(&mut self) -> *mut std::ffi::c_void {
2031 std::ptr::from_mut(self).cast()
2032 }
2033}
2034
2035impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
2036 for vk::DedicatedAllocationMemoryAllocateInfoNV<'a>
2037{
2038}
2039
2040impl<'a> crate::construction::sealed::ChainNode for vk::ExternalMemoryImageCreateInfoNV<'a> {
2041 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
2042
2043 fn s_type(&self) -> vk::StructureType {
2044 self.s_type
2045 }
2046
2047 fn p_next(&self) -> *const std::ffi::c_void {
2048 self.p_next
2049 }
2050
2051 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2052 self.p_next = p_next.cast_const();
2053 }
2054
2055 fn address(&mut self) -> *mut std::ffi::c_void {
2056 std::ptr::from_mut(self).cast()
2057 }
2058}
2059
2060impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
2061 for vk::ExternalMemoryImageCreateInfoNV<'a>
2062{
2063}
2064
2065impl<'a> crate::construction::sealed::ChainNode for vk::ExportMemoryAllocateInfoNV<'a> {
2066 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV;
2067
2068 fn s_type(&self) -> vk::StructureType {
2069 self.s_type
2070 }
2071
2072 fn p_next(&self) -> *const std::ffi::c_void {
2073 self.p_next
2074 }
2075
2076 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2077 self.p_next = p_next.cast_const();
2078 }
2079
2080 fn address(&mut self) -> *mut std::ffi::c_void {
2081 std::ptr::from_mut(self).cast()
2082 }
2083}
2084
2085impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
2086 for vk::ExportMemoryAllocateInfoNV<'a>
2087{
2088}
2089
2090#[cfg(feature = "platform-win32")]
2091impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryWin32HandleInfoNV<'a> {
2092 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
2093
2094 fn s_type(&self) -> vk::StructureType {
2095 self.s_type
2096 }
2097
2098 fn p_next(&self) -> *const std::ffi::c_void {
2099 self.p_next
2100 }
2101
2102 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2103 self.p_next = p_next.cast_const();
2104 }
2105
2106 fn address(&mut self) -> *mut std::ffi::c_void {
2107 std::ptr::from_mut(self).cast()
2108 }
2109}
2110
2111#[cfg(feature = "platform-win32")]
2112impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
2113 for vk::ImportMemoryWin32HandleInfoNV<'a>
2114{
2115}
2116
2117#[cfg(feature = "platform-win32")]
2118impl<'a> crate::construction::sealed::ChainNode for vk::ExportMemoryWin32HandleInfoNV<'a> {
2119 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
2120
2121 fn s_type(&self) -> vk::StructureType {
2122 self.s_type
2123 }
2124
2125 fn p_next(&self) -> *const std::ffi::c_void {
2126 self.p_next
2127 }
2128
2129 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2130 self.p_next = p_next.cast_const();
2131 }
2132
2133 fn address(&mut self) -> *mut std::ffi::c_void {
2134 std::ptr::from_mut(self).cast()
2135 }
2136}
2137
2138#[cfg(feature = "platform-win32")]
2139impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
2140 for vk::ExportMemoryWin32HandleInfoNV<'a>
2141{
2142}
2143
2144#[cfg(feature = "platform-win32")]
2145impl<'a> crate::construction::sealed::ChainNode for vk::Win32KeyedMutexAcquireReleaseInfoNV<'a> {
2146 const S_TYPE: vk::StructureType = vk::StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
2147
2148 fn s_type(&self) -> vk::StructureType {
2149 self.s_type
2150 }
2151
2152 fn p_next(&self) -> *const std::ffi::c_void {
2153 self.p_next
2154 }
2155
2156 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2157 self.p_next = p_next.cast_const();
2158 }
2159
2160 fn address(&mut self) -> *mut std::ffi::c_void {
2161 std::ptr::from_mut(self).cast()
2162 }
2163}
2164
2165#[cfg(feature = "platform-win32")]
2166impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>>
2167 for vk::Win32KeyedMutexAcquireReleaseInfoNV<'a>
2168{
2169}
2170
2171#[cfg(feature = "platform-win32")]
2172impl<'a, 'root> crate::Extends<vk::SubmitInfo2<'root>>
2173 for vk::Win32KeyedMutexAcquireReleaseInfoNV<'a>
2174{
2175}
2176
2177impl<'a> crate::construction::sealed::ChainNode
2178 for vk::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a>
2179{
2180 const S_TYPE: vk::StructureType =
2181 vk::StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
2182
2183 fn s_type(&self) -> vk::StructureType {
2184 self.s_type
2185 }
2186
2187 fn p_next(&self) -> *const std::ffi::c_void {
2188 self.p_next.cast_const()
2189 }
2190
2191 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2192 self.p_next = p_next;
2193 }
2194
2195 fn address(&mut self) -> *mut std::ffi::c_void {
2196 std::ptr::from_mut(self).cast()
2197 }
2198}
2199
2200impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
2201 for vk::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a>
2202{
2203}
2204
2205impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2206 for vk::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV<'a>
2207{
2208}
2209
2210impl<'a> crate::construction::sealed::ChainNode for vk::PushConstantBankInfoNV<'a> {
2211 const S_TYPE: vk::StructureType = vk::StructureType::PUSH_CONSTANT_BANK_INFO_NV;
2212
2213 fn s_type(&self) -> vk::StructureType {
2214 self.s_type
2215 }
2216
2217 fn p_next(&self) -> *const std::ffi::c_void {
2218 self.p_next
2219 }
2220
2221 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2222 self.p_next = p_next.cast_const();
2223 }
2224
2225 fn address(&mut self) -> *mut std::ffi::c_void {
2226 std::ptr::from_mut(self).cast()
2227 }
2228}
2229
2230impl<'a, 'root> crate::Extends<vk::DescriptorSetAndBindingMappingEXT<'root>>
2231 for vk::PushConstantBankInfoNV<'a>
2232{
2233}
2234
2235impl<'a, 'root> crate::Extends<vk::PushDataInfoEXT<'root>> for vk::PushConstantBankInfoNV<'a> {}
2236
2237impl<'a, 'root> crate::Extends<vk::PushConstantsInfo<'root>> for vk::PushConstantBankInfoNV<'a> {}
2238
2239impl<'a, 'root> crate::Extends<vk::IndirectCommandsLayoutTokenEXT<'root>>
2240 for vk::PushConstantBankInfoNV<'a>
2241{
2242}
2243
2244impl<'a> crate::construction::sealed::ChainNode
2245 for vk::PhysicalDevicePushConstantBankFeaturesNV<'a>
2246{
2247 const S_TYPE: vk::StructureType =
2248 vk::StructureType::PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV;
2249
2250 fn s_type(&self) -> vk::StructureType {
2251 self.s_type
2252 }
2253
2254 fn p_next(&self) -> *const std::ffi::c_void {
2255 self.p_next.cast_const()
2256 }
2257
2258 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2259 self.p_next = p_next;
2260 }
2261
2262 fn address(&mut self) -> *mut std::ffi::c_void {
2263 std::ptr::from_mut(self).cast()
2264 }
2265}
2266
2267impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
2268 for vk::PhysicalDevicePushConstantBankFeaturesNV<'a>
2269{
2270}
2271
2272impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2273 for vk::PhysicalDevicePushConstantBankFeaturesNV<'a>
2274{
2275}
2276
2277impl<'a> crate::construction::sealed::ChainNode
2278 for vk::PhysicalDevicePushConstantBankPropertiesNV<'a>
2279{
2280 const S_TYPE: vk::StructureType =
2281 vk::StructureType::PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV;
2282
2283 fn s_type(&self) -> vk::StructureType {
2284 self.s_type
2285 }
2286
2287 fn p_next(&self) -> *const std::ffi::c_void {
2288 self.p_next.cast_const()
2289 }
2290
2291 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2292 self.p_next = p_next;
2293 }
2294
2295 fn address(&mut self) -> *mut std::ffi::c_void {
2296 std::ptr::from_mut(self).cast()
2297 }
2298}
2299
2300impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
2301 for vk::PhysicalDevicePushConstantBankPropertiesNV<'a>
2302{
2303}
2304
2305impl<'a> crate::construction::sealed::ChainNode
2306 for vk::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a>
2307{
2308 const S_TYPE: vk::StructureType =
2309 vk::StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV;
2310
2311 fn s_type(&self) -> vk::StructureType {
2312 self.s_type
2313 }
2314
2315 fn p_next(&self) -> *const std::ffi::c_void {
2316 self.p_next.cast_const()
2317 }
2318
2319 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2320 self.p_next = p_next;
2321 }
2322
2323 fn address(&mut self) -> *mut std::ffi::c_void {
2324 std::ptr::from_mut(self).cast()
2325 }
2326}
2327
2328impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
2329 for vk::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a>
2330{
2331}
2332
2333impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2334 for vk::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV<'a>
2335{
2336}
2337
2338impl<'a> crate::construction::sealed::ChainNode for vk::DevicePrivateDataCreateInfo<'a> {
2339 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO;
2340
2341 fn s_type(&self) -> vk::StructureType {
2342 self.s_type
2343 }
2344
2345 fn p_next(&self) -> *const std::ffi::c_void {
2346 self.p_next
2347 }
2348
2349 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2350 self.p_next = p_next.cast_const();
2351 }
2352
2353 fn address(&mut self) -> *mut std::ffi::c_void {
2354 std::ptr::from_mut(self).cast()
2355 }
2356}
2357
2358impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2359 for vk::DevicePrivateDataCreateInfo<'a>
2360{
2361}
2362
2363impl<'a> crate::construction::sealed::ChainNode for vk::PrivateDataSlotCreateInfo<'a> {
2364 const S_TYPE: vk::StructureType = vk::StructureType::PRIVATE_DATA_SLOT_CREATE_INFO;
2365
2366 fn s_type(&self) -> vk::StructureType {
2367 self.s_type
2368 }
2369
2370 fn p_next(&self) -> *const std::ffi::c_void {
2371 self.p_next
2372 }
2373
2374 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2375 self.p_next = p_next.cast_const();
2376 }
2377
2378 fn address(&mut self) -> *mut std::ffi::c_void {
2379 std::ptr::from_mut(self).cast()
2380 }
2381}
2382
2383impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePrivateDataFeatures<'a> {
2384 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
2385
2386 fn s_type(&self) -> vk::StructureType {
2387 self.s_type
2388 }
2389
2390 fn p_next(&self) -> *const std::ffi::c_void {
2391 self.p_next.cast_const()
2392 }
2393
2394 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2395 self.p_next = p_next;
2396 }
2397
2398 fn address(&mut self) -> *mut std::ffi::c_void {
2399 std::ptr::from_mut(self).cast()
2400 }
2401}
2402
2403impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
2404 for vk::PhysicalDevicePrivateDataFeatures<'a>
2405{
2406}
2407
2408impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2409 for vk::PhysicalDevicePrivateDataFeatures<'a>
2410{
2411}
2412
2413impl<'a> crate::construction::sealed::ChainNode
2414 for vk::PhysicalDevicePrivateDataBaseHandleFeaturesNV<'a>
2415{
2416 const S_TYPE: vk::StructureType =
2417 vk::StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_BASE_HANDLE_FEATURES_NV;
2418
2419 fn s_type(&self) -> vk::StructureType {
2420 self.s_type
2421 }
2422
2423 fn p_next(&self) -> *const std::ffi::c_void {
2424 self.p_next.cast_const()
2425 }
2426
2427 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2428 self.p_next = p_next;
2429 }
2430
2431 fn address(&mut self) -> *mut std::ffi::c_void {
2432 std::ptr::from_mut(self).cast()
2433 }
2434}
2435
2436impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
2437 for vk::PhysicalDevicePrivateDataBaseHandleFeaturesNV<'a>
2438{
2439}
2440
2441impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2442 for vk::PhysicalDevicePrivateDataBaseHandleFeaturesNV<'a>
2443{
2444}
2445
2446impl<'a> crate::construction::sealed::ChainNode
2447 for vk::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a>
2448{
2449 const S_TYPE: vk::StructureType =
2450 vk::StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
2451
2452 fn s_type(&self) -> vk::StructureType {
2453 self.s_type
2454 }
2455
2456 fn p_next(&self) -> *const std::ffi::c_void {
2457 self.p_next.cast_const()
2458 }
2459
2460 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2461 self.p_next = p_next;
2462 }
2463
2464 fn address(&mut self) -> *mut std::ffi::c_void {
2465 std::ptr::from_mut(self).cast()
2466 }
2467}
2468
2469impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
2470 for vk::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV<'a>
2471{
2472}
2473
2474impl<'a> crate::construction::sealed::ChainNode
2475 for vk::PhysicalDeviceClusterAccelerationStructureFeaturesNV<'a>
2476{
2477 const S_TYPE: vk::StructureType =
2478 vk::StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV;
2479
2480 fn s_type(&self) -> vk::StructureType {
2481 self.s_type
2482 }
2483
2484 fn p_next(&self) -> *const std::ffi::c_void {
2485 self.p_next.cast_const()
2486 }
2487
2488 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2489 self.p_next = p_next;
2490 }
2491
2492 fn address(&mut self) -> *mut std::ffi::c_void {
2493 std::ptr::from_mut(self).cast()
2494 }
2495}
2496
2497impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
2498 for vk::PhysicalDeviceClusterAccelerationStructureFeaturesNV<'a>
2499{
2500}
2501
2502impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
2503 for vk::PhysicalDeviceClusterAccelerationStructureFeaturesNV<'a>
2504{
2505}
2506
2507impl<'a> crate::construction::sealed::ChainNode
2508 for vk::PhysicalDeviceClusterAccelerationStructurePropertiesNV<'a>
2509{
2510 const S_TYPE: vk::StructureType =
2511 vk::StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV;
2512
2513 fn s_type(&self) -> vk::StructureType {
2514 self.s_type
2515 }
2516
2517 fn p_next(&self) -> *const std::ffi::c_void {
2518 self.p_next.cast_const()
2519 }
2520
2521 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2522 self.p_next = p_next;
2523 }
2524
2525 fn address(&mut self) -> *mut std::ffi::c_void {
2526 std::ptr::from_mut(self).cast()
2527 }
2528}
2529
2530impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
2531 for vk::PhysicalDeviceClusterAccelerationStructurePropertiesNV<'a>
2532{
2533}
2534
2535impl<'a> crate::construction::sealed::ChainNode
2536 for vk::RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'a>
2537{
2538 const S_TYPE: vk::StructureType =
2539 vk::StructureType::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
2540
2541 fn s_type(&self) -> vk::StructureType {
2542 self.s_type
2543 }
2544
2545 fn p_next(&self) -> *const std::ffi::c_void {
2546 self.p_next.cast_const()
2547 }
2548
2549 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2550 self.p_next = p_next;
2551 }
2552
2553 fn address(&mut self) -> *mut std::ffi::c_void {
2554 std::ptr::from_mut(self).cast()
2555 }
2556}
2557
2558impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoKHR<'root>>
2559 for vk::RayTracingPipelineClusterAccelerationStructureCreateInfoNV<'a>
2560{
2561}
2562
2563impl<'a> crate::construction::sealed::ChainNode
2564 for vk::ClusterAccelerationStructureClustersBottomLevelInputNV<'a>
2565{
2566 const S_TYPE: vk::StructureType =
2567 vk::StructureType::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV;
2568
2569 fn s_type(&self) -> vk::StructureType {
2570 self.s_type
2571 }
2572
2573 fn p_next(&self) -> *const std::ffi::c_void {
2574 self.p_next.cast_const()
2575 }
2576
2577 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2578 self.p_next = p_next;
2579 }
2580
2581 fn address(&mut self) -> *mut std::ffi::c_void {
2582 std::ptr::from_mut(self).cast()
2583 }
2584}
2585
2586impl<'a> crate::construction::sealed::ChainNode
2587 for vk::ClusterAccelerationStructureTriangleClusterInputNV<'a>
2588{
2589 const S_TYPE: vk::StructureType =
2590 vk::StructureType::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV;
2591
2592 fn s_type(&self) -> vk::StructureType {
2593 self.s_type
2594 }
2595
2596 fn p_next(&self) -> *const std::ffi::c_void {
2597 self.p_next.cast_const()
2598 }
2599
2600 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2601 self.p_next = p_next;
2602 }
2603
2604 fn address(&mut self) -> *mut std::ffi::c_void {
2605 std::ptr::from_mut(self).cast()
2606 }
2607}
2608
2609impl<'a> crate::construction::sealed::ChainNode
2610 for vk::ClusterAccelerationStructureMoveObjectsInputNV<'a>
2611{
2612 const S_TYPE: vk::StructureType =
2613 vk::StructureType::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV;
2614
2615 fn s_type(&self) -> vk::StructureType {
2616 self.s_type
2617 }
2618
2619 fn p_next(&self) -> *const std::ffi::c_void {
2620 self.p_next.cast_const()
2621 }
2622
2623 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2624 self.p_next = p_next;
2625 }
2626
2627 fn address(&mut self) -> *mut std::ffi::c_void {
2628 std::ptr::from_mut(self).cast()
2629 }
2630}
2631
2632impl<'a> crate::construction::sealed::ChainNode
2633 for vk::ClusterAccelerationStructureInputInfoNV<'a>
2634{
2635 const S_TYPE: vk::StructureType = vk::StructureType::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV;
2636
2637 fn s_type(&self) -> vk::StructureType {
2638 self.s_type
2639 }
2640
2641 fn p_next(&self) -> *const std::ffi::c_void {
2642 self.p_next.cast_const()
2643 }
2644
2645 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2646 self.p_next = p_next;
2647 }
2648
2649 fn address(&mut self) -> *mut std::ffi::c_void {
2650 std::ptr::from_mut(self).cast()
2651 }
2652}
2653
2654impl<'a> crate::construction::sealed::ChainNode
2655 for vk::ClusterAccelerationStructureCommandsInfoNV<'a>
2656{
2657 const S_TYPE: vk::StructureType =
2658 vk::StructureType::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV;
2659
2660 fn s_type(&self) -> vk::StructureType {
2661 self.s_type
2662 }
2663
2664 fn p_next(&self) -> *const std::ffi::c_void {
2665 self.p_next.cast_const()
2666 }
2667
2668 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2669 self.p_next = p_next;
2670 }
2671
2672 fn address(&mut self) -> *mut std::ffi::c_void {
2673 std::ptr::from_mut(self).cast()
2674 }
2675}
2676
2677impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMultiDrawPropertiesEXT<'a> {
2678 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
2679
2680 fn s_type(&self) -> vk::StructureType {
2681 self.s_type
2682 }
2683
2684 fn p_next(&self) -> *const std::ffi::c_void {
2685 self.p_next.cast_const()
2686 }
2687
2688 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2689 self.p_next = p_next;
2690 }
2691
2692 fn address(&mut self) -> *mut std::ffi::c_void {
2693 std::ptr::from_mut(self).cast()
2694 }
2695}
2696
2697impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
2698 for vk::PhysicalDeviceMultiDrawPropertiesEXT<'a>
2699{
2700}
2701
2702impl<'a> crate::construction::sealed::ChainNode for vk::GraphicsShaderGroupCreateInfoNV<'a> {
2703 const S_TYPE: vk::StructureType = vk::StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
2704
2705 fn s_type(&self) -> vk::StructureType {
2706 self.s_type
2707 }
2708
2709 fn p_next(&self) -> *const std::ffi::c_void {
2710 self.p_next
2711 }
2712
2713 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2714 self.p_next = p_next.cast_const();
2715 }
2716
2717 fn address(&mut self) -> *mut std::ffi::c_void {
2718 std::ptr::from_mut(self).cast()
2719 }
2720}
2721
2722impl<'a> crate::construction::sealed::ChainNode
2723 for vk::GraphicsPipelineShaderGroupsCreateInfoNV<'a>
2724{
2725 const S_TYPE: vk::StructureType =
2726 vk::StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
2727
2728 fn s_type(&self) -> vk::StructureType {
2729 self.s_type
2730 }
2731
2732 fn p_next(&self) -> *const std::ffi::c_void {
2733 self.p_next
2734 }
2735
2736 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2737 self.p_next = p_next.cast_const();
2738 }
2739
2740 fn address(&mut self) -> *mut std::ffi::c_void {
2741 std::ptr::from_mut(self).cast()
2742 }
2743}
2744
2745impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
2746 for vk::GraphicsPipelineShaderGroupsCreateInfoNV<'a>
2747{
2748}
2749
2750impl<'a> crate::construction::sealed::ChainNode for vk::IndirectCommandsLayoutTokenNV<'a> {
2751 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
2752
2753 fn s_type(&self) -> vk::StructureType {
2754 self.s_type
2755 }
2756
2757 fn p_next(&self) -> *const std::ffi::c_void {
2758 self.p_next
2759 }
2760
2761 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2762 self.p_next = p_next.cast_const();
2763 }
2764
2765 fn address(&mut self) -> *mut std::ffi::c_void {
2766 std::ptr::from_mut(self).cast()
2767 }
2768}
2769
2770impl<'a> crate::construction::sealed::ChainNode for vk::IndirectCommandsLayoutCreateInfoNV<'a> {
2771 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
2772
2773 fn s_type(&self) -> vk::StructureType {
2774 self.s_type
2775 }
2776
2777 fn p_next(&self) -> *const std::ffi::c_void {
2778 self.p_next
2779 }
2780
2781 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2782 self.p_next = p_next.cast_const();
2783 }
2784
2785 fn address(&mut self) -> *mut std::ffi::c_void {
2786 std::ptr::from_mut(self).cast()
2787 }
2788}
2789
2790impl<'a> crate::construction::sealed::ChainNode for vk::GeneratedCommandsInfoNV<'a> {
2791 const S_TYPE: vk::StructureType = vk::StructureType::GENERATED_COMMANDS_INFO_NV;
2792
2793 fn s_type(&self) -> vk::StructureType {
2794 self.s_type
2795 }
2796
2797 fn p_next(&self) -> *const std::ffi::c_void {
2798 self.p_next
2799 }
2800
2801 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2802 self.p_next = p_next.cast_const();
2803 }
2804
2805 fn address(&mut self) -> *mut std::ffi::c_void {
2806 std::ptr::from_mut(self).cast()
2807 }
2808}
2809
2810impl<'a> crate::construction::sealed::ChainNode
2811 for vk::GeneratedCommandsMemoryRequirementsInfoNV<'a>
2812{
2813 const S_TYPE: vk::StructureType =
2814 vk::StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
2815
2816 fn s_type(&self) -> vk::StructureType {
2817 self.s_type
2818 }
2819
2820 fn p_next(&self) -> *const std::ffi::c_void {
2821 self.p_next
2822 }
2823
2824 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2825 self.p_next = p_next.cast_const();
2826 }
2827
2828 fn address(&mut self) -> *mut std::ffi::c_void {
2829 std::ptr::from_mut(self).cast()
2830 }
2831}
2832
2833impl<'a> crate::construction::sealed::ChainNode for vk::PipelineIndirectDeviceAddressInfoNV<'a> {
2834 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV;
2835
2836 fn s_type(&self) -> vk::StructureType {
2837 self.s_type
2838 }
2839
2840 fn p_next(&self) -> *const std::ffi::c_void {
2841 self.p_next
2842 }
2843
2844 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2845 self.p_next = p_next.cast_const();
2846 }
2847
2848 fn address(&mut self) -> *mut std::ffi::c_void {
2849 std::ptr::from_mut(self).cast()
2850 }
2851}
2852
2853impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFeatures2<'a> {
2854 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FEATURES_2;
2855
2856 fn s_type(&self) -> vk::StructureType {
2857 self.s_type
2858 }
2859
2860 fn p_next(&self) -> *const std::ffi::c_void {
2861 self.p_next.cast_const()
2862 }
2863
2864 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2865 self.p_next = p_next;
2866 }
2867
2868 fn address(&mut self) -> *mut std::ffi::c_void {
2869 std::ptr::from_mut(self).cast()
2870 }
2871}
2872
2873impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>> for vk::PhysicalDeviceFeatures2<'a> {}
2874
2875impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceProperties2<'a> {
2876 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PROPERTIES_2;
2877
2878 fn s_type(&self) -> vk::StructureType {
2879 self.s_type
2880 }
2881
2882 fn p_next(&self) -> *const std::ffi::c_void {
2883 self.p_next.cast_const()
2884 }
2885
2886 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2887 self.p_next = p_next;
2888 }
2889
2890 fn address(&mut self) -> *mut std::ffi::c_void {
2891 std::ptr::from_mut(self).cast()
2892 }
2893}
2894
2895impl<'a> crate::construction::sealed::ChainNode for vk::FormatProperties2<'a> {
2896 const S_TYPE: vk::StructureType = vk::StructureType::FORMAT_PROPERTIES_2;
2897
2898 fn s_type(&self) -> vk::StructureType {
2899 self.s_type
2900 }
2901
2902 fn p_next(&self) -> *const std::ffi::c_void {
2903 self.p_next.cast_const()
2904 }
2905
2906 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2907 self.p_next = p_next;
2908 }
2909
2910 fn address(&mut self) -> *mut std::ffi::c_void {
2911 std::ptr::from_mut(self).cast()
2912 }
2913}
2914
2915impl<'a> crate::construction::sealed::ChainNode for vk::ImageFormatProperties2<'a> {
2916 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_FORMAT_PROPERTIES_2;
2917
2918 fn s_type(&self) -> vk::StructureType {
2919 self.s_type
2920 }
2921
2922 fn p_next(&self) -> *const std::ffi::c_void {
2923 self.p_next.cast_const()
2924 }
2925
2926 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2927 self.p_next = p_next;
2928 }
2929
2930 fn address(&mut self) -> *mut std::ffi::c_void {
2931 std::ptr::from_mut(self).cast()
2932 }
2933}
2934
2935impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceImageFormatInfo2<'a> {
2936 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
2937
2938 fn s_type(&self) -> vk::StructureType {
2939 self.s_type
2940 }
2941
2942 fn p_next(&self) -> *const std::ffi::c_void {
2943 self.p_next
2944 }
2945
2946 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2947 self.p_next = p_next.cast_const();
2948 }
2949
2950 fn address(&mut self) -> *mut std::ffi::c_void {
2951 std::ptr::from_mut(self).cast()
2952 }
2953}
2954
2955impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyProperties2<'a> {
2956 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_PROPERTIES_2;
2957
2958 fn s_type(&self) -> vk::StructureType {
2959 self.s_type
2960 }
2961
2962 fn p_next(&self) -> *const std::ffi::c_void {
2963 self.p_next.cast_const()
2964 }
2965
2966 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2967 self.p_next = p_next;
2968 }
2969
2970 fn address(&mut self) -> *mut std::ffi::c_void {
2971 std::ptr::from_mut(self).cast()
2972 }
2973}
2974
2975impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMemoryProperties2<'a> {
2976 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
2977
2978 fn s_type(&self) -> vk::StructureType {
2979 self.s_type
2980 }
2981
2982 fn p_next(&self) -> *const std::ffi::c_void {
2983 self.p_next.cast_const()
2984 }
2985
2986 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
2987 self.p_next = p_next;
2988 }
2989
2990 fn address(&mut self) -> *mut std::ffi::c_void {
2991 std::ptr::from_mut(self).cast()
2992 }
2993}
2994
2995impl<'a> crate::construction::sealed::ChainNode for vk::SparseImageFormatProperties2<'a> {
2996 const S_TYPE: vk::StructureType = vk::StructureType::SPARSE_IMAGE_FORMAT_PROPERTIES_2;
2997
2998 fn s_type(&self) -> vk::StructureType {
2999 self.s_type
3000 }
3001
3002 fn p_next(&self) -> *const std::ffi::c_void {
3003 self.p_next.cast_const()
3004 }
3005
3006 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3007 self.p_next = p_next;
3008 }
3009
3010 fn address(&mut self) -> *mut std::ffi::c_void {
3011 std::ptr::from_mut(self).cast()
3012 }
3013}
3014
3015impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceSparseImageFormatInfo2<'a> {
3016 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
3017
3018 fn s_type(&self) -> vk::StructureType {
3019 self.s_type
3020 }
3021
3022 fn p_next(&self) -> *const std::ffi::c_void {
3023 self.p_next
3024 }
3025
3026 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3027 self.p_next = p_next.cast_const();
3028 }
3029
3030 fn address(&mut self) -> *mut std::ffi::c_void {
3031 std::ptr::from_mut(self).cast()
3032 }
3033}
3034
3035impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePushDescriptorProperties<'a> {
3036 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES;
3037
3038 fn s_type(&self) -> vk::StructureType {
3039 self.s_type
3040 }
3041
3042 fn p_next(&self) -> *const std::ffi::c_void {
3043 self.p_next.cast_const()
3044 }
3045
3046 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3047 self.p_next = p_next;
3048 }
3049
3050 fn address(&mut self) -> *mut std::ffi::c_void {
3051 std::ptr::from_mut(self).cast()
3052 }
3053}
3054
3055impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
3056 for vk::PhysicalDevicePushDescriptorProperties<'a>
3057{
3058}
3059
3060impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceDriverProperties<'a> {
3061 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES;
3062
3063 fn s_type(&self) -> vk::StructureType {
3064 self.s_type
3065 }
3066
3067 fn p_next(&self) -> *const std::ffi::c_void {
3068 self.p_next.cast_const()
3069 }
3070
3071 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3072 self.p_next = p_next;
3073 }
3074
3075 fn address(&mut self) -> *mut std::ffi::c_void {
3076 std::ptr::from_mut(self).cast()
3077 }
3078}
3079
3080impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
3081 for vk::PhysicalDeviceDriverProperties<'a>
3082{
3083}
3084
3085impl<'a> crate::construction::sealed::ChainNode for vk::PresentRegionsKHR<'a> {
3086 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_REGIONS_KHR;
3087
3088 fn s_type(&self) -> vk::StructureType {
3089 self.s_type
3090 }
3091
3092 fn p_next(&self) -> *const std::ffi::c_void {
3093 self.p_next
3094 }
3095
3096 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3097 self.p_next = p_next.cast_const();
3098 }
3099
3100 fn address(&mut self) -> *mut std::ffi::c_void {
3101 std::ptr::from_mut(self).cast()
3102 }
3103}
3104
3105impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::PresentRegionsKHR<'a> {}
3106
3107impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVariablePointersFeatures<'a> {
3108 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
3109
3110 fn s_type(&self) -> vk::StructureType {
3111 self.s_type
3112 }
3113
3114 fn p_next(&self) -> *const std::ffi::c_void {
3115 self.p_next.cast_const()
3116 }
3117
3118 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3119 self.p_next = p_next;
3120 }
3121
3122 fn address(&mut self) -> *mut std::ffi::c_void {
3123 std::ptr::from_mut(self).cast()
3124 }
3125}
3126
3127impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
3128 for vk::PhysicalDeviceVariablePointersFeatures<'a>
3129{
3130}
3131
3132impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
3133 for vk::PhysicalDeviceVariablePointersFeatures<'a>
3134{
3135}
3136
3137impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceExternalImageFormatInfo<'a> {
3138 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
3139
3140 fn s_type(&self) -> vk::StructureType {
3141 self.s_type
3142 }
3143
3144 fn p_next(&self) -> *const std::ffi::c_void {
3145 self.p_next
3146 }
3147
3148 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3149 self.p_next = p_next.cast_const();
3150 }
3151
3152 fn address(&mut self) -> *mut std::ffi::c_void {
3153 std::ptr::from_mut(self).cast()
3154 }
3155}
3156
3157impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
3158 for vk::PhysicalDeviceExternalImageFormatInfo<'a>
3159{
3160}
3161
3162impl<'a> crate::construction::sealed::ChainNode for vk::ExternalImageFormatProperties<'a> {
3163 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES;
3164
3165 fn s_type(&self) -> vk::StructureType {
3166 self.s_type
3167 }
3168
3169 fn p_next(&self) -> *const std::ffi::c_void {
3170 self.p_next.cast_const()
3171 }
3172
3173 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3174 self.p_next = p_next;
3175 }
3176
3177 fn address(&mut self) -> *mut std::ffi::c_void {
3178 std::ptr::from_mut(self).cast()
3179 }
3180}
3181
3182impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
3183 for vk::ExternalImageFormatProperties<'a>
3184{
3185}
3186
3187impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceExternalBufferInfo<'a> {
3188 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
3189
3190 fn s_type(&self) -> vk::StructureType {
3191 self.s_type
3192 }
3193
3194 fn p_next(&self) -> *const std::ffi::c_void {
3195 self.p_next
3196 }
3197
3198 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3199 self.p_next = p_next.cast_const();
3200 }
3201
3202 fn address(&mut self) -> *mut std::ffi::c_void {
3203 std::ptr::from_mut(self).cast()
3204 }
3205}
3206
3207impl<'a> crate::construction::sealed::ChainNode for vk::ExternalBufferProperties<'a> {
3208 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_BUFFER_PROPERTIES;
3209
3210 fn s_type(&self) -> vk::StructureType {
3211 self.s_type
3212 }
3213
3214 fn p_next(&self) -> *const std::ffi::c_void {
3215 self.p_next.cast_const()
3216 }
3217
3218 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3219 self.p_next = p_next;
3220 }
3221
3222 fn address(&mut self) -> *mut std::ffi::c_void {
3223 std::ptr::from_mut(self).cast()
3224 }
3225}
3226
3227impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceIDProperties<'a> {
3228 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_ID_PROPERTIES;
3229
3230 fn s_type(&self) -> vk::StructureType {
3231 self.s_type
3232 }
3233
3234 fn p_next(&self) -> *const std::ffi::c_void {
3235 self.p_next.cast_const()
3236 }
3237
3238 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3239 self.p_next = p_next;
3240 }
3241
3242 fn address(&mut self) -> *mut std::ffi::c_void {
3243 std::ptr::from_mut(self).cast()
3244 }
3245}
3246
3247impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
3248 for vk::PhysicalDeviceIDProperties<'a>
3249{
3250}
3251
3252impl<'a> crate::construction::sealed::ChainNode for vk::ExternalMemoryImageCreateInfo<'a> {
3253 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
3254
3255 fn s_type(&self) -> vk::StructureType {
3256 self.s_type
3257 }
3258
3259 fn p_next(&self) -> *const std::ffi::c_void {
3260 self.p_next
3261 }
3262
3263 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3264 self.p_next = p_next.cast_const();
3265 }
3266
3267 fn address(&mut self) -> *mut std::ffi::c_void {
3268 std::ptr::from_mut(self).cast()
3269 }
3270}
3271
3272impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
3273 for vk::ExternalMemoryImageCreateInfo<'a>
3274{
3275}
3276
3277impl<'a> crate::construction::sealed::ChainNode for vk::ExternalMemoryBufferCreateInfo<'a> {
3278 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
3279
3280 fn s_type(&self) -> vk::StructureType {
3281 self.s_type
3282 }
3283
3284 fn p_next(&self) -> *const std::ffi::c_void {
3285 self.p_next
3286 }
3287
3288 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3289 self.p_next = p_next.cast_const();
3290 }
3291
3292 fn address(&mut self) -> *mut std::ffi::c_void {
3293 std::ptr::from_mut(self).cast()
3294 }
3295}
3296
3297impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
3298 for vk::ExternalMemoryBufferCreateInfo<'a>
3299{
3300}
3301
3302impl<'a> crate::construction::sealed::ChainNode for vk::ExportMemoryAllocateInfo<'a> {
3303 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_MEMORY_ALLOCATE_INFO;
3304
3305 fn s_type(&self) -> vk::StructureType {
3306 self.s_type
3307 }
3308
3309 fn p_next(&self) -> *const std::ffi::c_void {
3310 self.p_next
3311 }
3312
3313 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3314 self.p_next = p_next.cast_const();
3315 }
3316
3317 fn address(&mut self) -> *mut std::ffi::c_void {
3318 std::ptr::from_mut(self).cast()
3319 }
3320}
3321
3322impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>> for vk::ExportMemoryAllocateInfo<'a> {}
3323
3324#[cfg(feature = "platform-win32")]
3325impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryWin32HandleInfoKHR<'a> {
3326 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
3327
3328 fn s_type(&self) -> vk::StructureType {
3329 self.s_type
3330 }
3331
3332 fn p_next(&self) -> *const std::ffi::c_void {
3333 self.p_next
3334 }
3335
3336 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3337 self.p_next = p_next.cast_const();
3338 }
3339
3340 fn address(&mut self) -> *mut std::ffi::c_void {
3341 std::ptr::from_mut(self).cast()
3342 }
3343}
3344
3345#[cfg(feature = "platform-win32")]
3346impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
3347 for vk::ImportMemoryWin32HandleInfoKHR<'a>
3348{
3349}
3350
3351#[cfg(feature = "platform-win32")]
3352impl<'a> crate::construction::sealed::ChainNode for vk::ExportMemoryWin32HandleInfoKHR<'a> {
3353 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
3354
3355 fn s_type(&self) -> vk::StructureType {
3356 self.s_type
3357 }
3358
3359 fn p_next(&self) -> *const std::ffi::c_void {
3360 self.p_next
3361 }
3362
3363 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3364 self.p_next = p_next.cast_const();
3365 }
3366
3367 fn address(&mut self) -> *mut std::ffi::c_void {
3368 std::ptr::from_mut(self).cast()
3369 }
3370}
3371
3372#[cfg(feature = "platform-win32")]
3373impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
3374 for vk::ExportMemoryWin32HandleInfoKHR<'a>
3375{
3376}
3377
3378#[cfg(feature = "platform-fuchsia")]
3379impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryZirconHandleInfoFUCHSIA<'a> {
3380 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
3381
3382 fn s_type(&self) -> vk::StructureType {
3383 self.s_type
3384 }
3385
3386 fn p_next(&self) -> *const std::ffi::c_void {
3387 self.p_next
3388 }
3389
3390 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3391 self.p_next = p_next.cast_const();
3392 }
3393
3394 fn address(&mut self) -> *mut std::ffi::c_void {
3395 std::ptr::from_mut(self).cast()
3396 }
3397}
3398
3399#[cfg(feature = "platform-fuchsia")]
3400impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
3401 for vk::ImportMemoryZirconHandleInfoFUCHSIA<'a>
3402{
3403}
3404
3405#[cfg(feature = "platform-fuchsia")]
3406impl<'a> crate::construction::sealed::ChainNode for vk::MemoryZirconHandlePropertiesFUCHSIA<'a> {
3407 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
3408
3409 fn s_type(&self) -> vk::StructureType {
3410 self.s_type
3411 }
3412
3413 fn p_next(&self) -> *const std::ffi::c_void {
3414 self.p_next.cast_const()
3415 }
3416
3417 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3418 self.p_next = p_next;
3419 }
3420
3421 fn address(&mut self) -> *mut std::ffi::c_void {
3422 std::ptr::from_mut(self).cast()
3423 }
3424}
3425
3426#[cfg(feature = "platform-fuchsia")]
3427impl<'a> crate::construction::sealed::ChainNode for vk::MemoryGetZirconHandleInfoFUCHSIA<'a> {
3428 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
3429
3430 fn s_type(&self) -> vk::StructureType {
3431 self.s_type
3432 }
3433
3434 fn p_next(&self) -> *const std::ffi::c_void {
3435 self.p_next
3436 }
3437
3438 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3439 self.p_next = p_next.cast_const();
3440 }
3441
3442 fn address(&mut self) -> *mut std::ffi::c_void {
3443 std::ptr::from_mut(self).cast()
3444 }
3445}
3446
3447#[cfg(feature = "platform-win32")]
3448impl<'a> crate::construction::sealed::ChainNode for vk::MemoryWin32HandlePropertiesKHR<'a> {
3449 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
3450
3451 fn s_type(&self) -> vk::StructureType {
3452 self.s_type
3453 }
3454
3455 fn p_next(&self) -> *const std::ffi::c_void {
3456 self.p_next.cast_const()
3457 }
3458
3459 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3460 self.p_next = p_next;
3461 }
3462
3463 fn address(&mut self) -> *mut std::ffi::c_void {
3464 std::ptr::from_mut(self).cast()
3465 }
3466}
3467
3468#[cfg(feature = "platform-win32")]
3469impl<'a> crate::construction::sealed::ChainNode for vk::MemoryGetWin32HandleInfoKHR<'a> {
3470 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_GET_WIN32_HANDLE_INFO_KHR;
3471
3472 fn s_type(&self) -> vk::StructureType {
3473 self.s_type
3474 }
3475
3476 fn p_next(&self) -> *const std::ffi::c_void {
3477 self.p_next
3478 }
3479
3480 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3481 self.p_next = p_next.cast_const();
3482 }
3483
3484 fn address(&mut self) -> *mut std::ffi::c_void {
3485 std::ptr::from_mut(self).cast()
3486 }
3487}
3488
3489impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryFdInfoKHR<'a> {
3490 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_FD_INFO_KHR;
3491
3492 fn s_type(&self) -> vk::StructureType {
3493 self.s_type
3494 }
3495
3496 fn p_next(&self) -> *const std::ffi::c_void {
3497 self.p_next
3498 }
3499
3500 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3501 self.p_next = p_next.cast_const();
3502 }
3503
3504 fn address(&mut self) -> *mut std::ffi::c_void {
3505 std::ptr::from_mut(self).cast()
3506 }
3507}
3508
3509impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>> for vk::ImportMemoryFdInfoKHR<'a> {}
3510
3511impl<'a> crate::construction::sealed::ChainNode for vk::MemoryFdPropertiesKHR<'a> {
3512 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_FD_PROPERTIES_KHR;
3513
3514 fn s_type(&self) -> vk::StructureType {
3515 self.s_type
3516 }
3517
3518 fn p_next(&self) -> *const std::ffi::c_void {
3519 self.p_next.cast_const()
3520 }
3521
3522 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3523 self.p_next = p_next;
3524 }
3525
3526 fn address(&mut self) -> *mut std::ffi::c_void {
3527 std::ptr::from_mut(self).cast()
3528 }
3529}
3530
3531impl<'a> crate::construction::sealed::ChainNode for vk::MemoryGetFdInfoKHR<'a> {
3532 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_GET_FD_INFO_KHR;
3533
3534 fn s_type(&self) -> vk::StructureType {
3535 self.s_type
3536 }
3537
3538 fn p_next(&self) -> *const std::ffi::c_void {
3539 self.p_next
3540 }
3541
3542 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3543 self.p_next = p_next.cast_const();
3544 }
3545
3546 fn address(&mut self) -> *mut std::ffi::c_void {
3547 std::ptr::from_mut(self).cast()
3548 }
3549}
3550
3551#[cfg(feature = "platform-win32")]
3552impl<'a> crate::construction::sealed::ChainNode for vk::Win32KeyedMutexAcquireReleaseInfoKHR<'a> {
3553 const S_TYPE: vk::StructureType = vk::StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
3554
3555 fn s_type(&self) -> vk::StructureType {
3556 self.s_type
3557 }
3558
3559 fn p_next(&self) -> *const std::ffi::c_void {
3560 self.p_next
3561 }
3562
3563 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3564 self.p_next = p_next.cast_const();
3565 }
3566
3567 fn address(&mut self) -> *mut std::ffi::c_void {
3568 std::ptr::from_mut(self).cast()
3569 }
3570}
3571
3572#[cfg(feature = "platform-win32")]
3573impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>>
3574 for vk::Win32KeyedMutexAcquireReleaseInfoKHR<'a>
3575{
3576}
3577
3578#[cfg(feature = "platform-win32")]
3579impl<'a, 'root> crate::Extends<vk::SubmitInfo2<'root>>
3580 for vk::Win32KeyedMutexAcquireReleaseInfoKHR<'a>
3581{
3582}
3583
3584#[cfg(feature = "platform-metal")]
3585impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryMetalHandleInfoEXT<'a> {
3586 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT;
3587
3588 fn s_type(&self) -> vk::StructureType {
3589 self.s_type
3590 }
3591
3592 fn p_next(&self) -> *const std::ffi::c_void {
3593 self.p_next
3594 }
3595
3596 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3597 self.p_next = p_next.cast_const();
3598 }
3599
3600 fn address(&mut self) -> *mut std::ffi::c_void {
3601 std::ptr::from_mut(self).cast()
3602 }
3603}
3604
3605#[cfg(feature = "platform-metal")]
3606impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
3607 for vk::ImportMemoryMetalHandleInfoEXT<'a>
3608{
3609}
3610
3611#[cfg(feature = "platform-metal")]
3612impl<'a> crate::construction::sealed::ChainNode for vk::MemoryMetalHandlePropertiesEXT<'a> {
3613 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_METAL_HANDLE_PROPERTIES_EXT;
3614
3615 fn s_type(&self) -> vk::StructureType {
3616 self.s_type
3617 }
3618
3619 fn p_next(&self) -> *const std::ffi::c_void {
3620 self.p_next.cast_const()
3621 }
3622
3623 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3624 self.p_next = p_next;
3625 }
3626
3627 fn address(&mut self) -> *mut std::ffi::c_void {
3628 std::ptr::from_mut(self).cast()
3629 }
3630}
3631
3632#[cfg(feature = "platform-metal")]
3633impl<'a> crate::construction::sealed::ChainNode for vk::MemoryGetMetalHandleInfoEXT<'a> {
3634 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_GET_METAL_HANDLE_INFO_EXT;
3635
3636 fn s_type(&self) -> vk::StructureType {
3637 self.s_type
3638 }
3639
3640 fn p_next(&self) -> *const std::ffi::c_void {
3641 self.p_next
3642 }
3643
3644 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3645 self.p_next = p_next.cast_const();
3646 }
3647
3648 fn address(&mut self) -> *mut std::ffi::c_void {
3649 std::ptr::from_mut(self).cast()
3650 }
3651}
3652
3653impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceExternalSemaphoreInfo<'a> {
3654 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
3655
3656 fn s_type(&self) -> vk::StructureType {
3657 self.s_type
3658 }
3659
3660 fn p_next(&self) -> *const std::ffi::c_void {
3661 self.p_next
3662 }
3663
3664 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3665 self.p_next = p_next.cast_const();
3666 }
3667
3668 fn address(&mut self) -> *mut std::ffi::c_void {
3669 std::ptr::from_mut(self).cast()
3670 }
3671}
3672
3673impl<'a> crate::construction::sealed::ChainNode for vk::ExternalSemaphoreProperties<'a> {
3674 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_SEMAPHORE_PROPERTIES;
3675
3676 fn s_type(&self) -> vk::StructureType {
3677 self.s_type
3678 }
3679
3680 fn p_next(&self) -> *const std::ffi::c_void {
3681 self.p_next.cast_const()
3682 }
3683
3684 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3685 self.p_next = p_next;
3686 }
3687
3688 fn address(&mut self) -> *mut std::ffi::c_void {
3689 std::ptr::from_mut(self).cast()
3690 }
3691}
3692
3693impl<'a> crate::construction::sealed::ChainNode for vk::ExportSemaphoreCreateInfo<'a> {
3694 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_SEMAPHORE_CREATE_INFO;
3695
3696 fn s_type(&self) -> vk::StructureType {
3697 self.s_type
3698 }
3699
3700 fn p_next(&self) -> *const std::ffi::c_void {
3701 self.p_next
3702 }
3703
3704 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3705 self.p_next = p_next.cast_const();
3706 }
3707
3708 fn address(&mut self) -> *mut std::ffi::c_void {
3709 std::ptr::from_mut(self).cast()
3710 }
3711}
3712
3713impl<'a, 'root> crate::Extends<vk::SemaphoreCreateInfo<'root>>
3714 for vk::ExportSemaphoreCreateInfo<'a>
3715{
3716}
3717
3718#[cfg(feature = "platform-win32")]
3719impl<'a> crate::construction::sealed::ChainNode for vk::ImportSemaphoreWin32HandleInfoKHR<'a> {
3720 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
3721
3722 fn s_type(&self) -> vk::StructureType {
3723 self.s_type
3724 }
3725
3726 fn p_next(&self) -> *const std::ffi::c_void {
3727 self.p_next
3728 }
3729
3730 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3731 self.p_next = p_next.cast_const();
3732 }
3733
3734 fn address(&mut self) -> *mut std::ffi::c_void {
3735 std::ptr::from_mut(self).cast()
3736 }
3737}
3738
3739#[cfg(feature = "platform-win32")]
3740impl<'a> crate::construction::sealed::ChainNode for vk::ExportSemaphoreWin32HandleInfoKHR<'a> {
3741 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
3742
3743 fn s_type(&self) -> vk::StructureType {
3744 self.s_type
3745 }
3746
3747 fn p_next(&self) -> *const std::ffi::c_void {
3748 self.p_next
3749 }
3750
3751 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3752 self.p_next = p_next.cast_const();
3753 }
3754
3755 fn address(&mut self) -> *mut std::ffi::c_void {
3756 std::ptr::from_mut(self).cast()
3757 }
3758}
3759
3760#[cfg(feature = "platform-win32")]
3761impl<'a, 'root> crate::Extends<vk::SemaphoreCreateInfo<'root>>
3762 for vk::ExportSemaphoreWin32HandleInfoKHR<'a>
3763{
3764}
3765
3766#[cfg(feature = "platform-win32")]
3767impl<'a> crate::construction::sealed::ChainNode for vk::D3D12FenceSubmitInfoKHR<'a> {
3768 const S_TYPE: vk::StructureType = vk::StructureType::D3D12_FENCE_SUBMIT_INFO_KHR;
3769
3770 fn s_type(&self) -> vk::StructureType {
3771 self.s_type
3772 }
3773
3774 fn p_next(&self) -> *const std::ffi::c_void {
3775 self.p_next
3776 }
3777
3778 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3779 self.p_next = p_next.cast_const();
3780 }
3781
3782 fn address(&mut self) -> *mut std::ffi::c_void {
3783 std::ptr::from_mut(self).cast()
3784 }
3785}
3786
3787#[cfg(feature = "platform-win32")]
3788impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::D3D12FenceSubmitInfoKHR<'a> {}
3789
3790#[cfg(feature = "platform-win32")]
3791impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreGetWin32HandleInfoKHR<'a> {
3792 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
3793
3794 fn s_type(&self) -> vk::StructureType {
3795 self.s_type
3796 }
3797
3798 fn p_next(&self) -> *const std::ffi::c_void {
3799 self.p_next
3800 }
3801
3802 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3803 self.p_next = p_next.cast_const();
3804 }
3805
3806 fn address(&mut self) -> *mut std::ffi::c_void {
3807 std::ptr::from_mut(self).cast()
3808 }
3809}
3810
3811impl<'a> crate::construction::sealed::ChainNode for vk::ImportSemaphoreFdInfoKHR<'a> {
3812 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_SEMAPHORE_FD_INFO_KHR;
3813
3814 fn s_type(&self) -> vk::StructureType {
3815 self.s_type
3816 }
3817
3818 fn p_next(&self) -> *const std::ffi::c_void {
3819 self.p_next
3820 }
3821
3822 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3823 self.p_next = p_next.cast_const();
3824 }
3825
3826 fn address(&mut self) -> *mut std::ffi::c_void {
3827 std::ptr::from_mut(self).cast()
3828 }
3829}
3830
3831impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreGetFdInfoKHR<'a> {
3832 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_GET_FD_INFO_KHR;
3833
3834 fn s_type(&self) -> vk::StructureType {
3835 self.s_type
3836 }
3837
3838 fn p_next(&self) -> *const std::ffi::c_void {
3839 self.p_next
3840 }
3841
3842 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3843 self.p_next = p_next.cast_const();
3844 }
3845
3846 fn address(&mut self) -> *mut std::ffi::c_void {
3847 std::ptr::from_mut(self).cast()
3848 }
3849}
3850
3851#[cfg(feature = "platform-fuchsia")]
3852impl<'a> crate::construction::sealed::ChainNode for vk::ImportSemaphoreZirconHandleInfoFUCHSIA<'a> {
3853 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
3854
3855 fn s_type(&self) -> vk::StructureType {
3856 self.s_type
3857 }
3858
3859 fn p_next(&self) -> *const std::ffi::c_void {
3860 self.p_next
3861 }
3862
3863 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3864 self.p_next = p_next.cast_const();
3865 }
3866
3867 fn address(&mut self) -> *mut std::ffi::c_void {
3868 std::ptr::from_mut(self).cast()
3869 }
3870}
3871
3872#[cfg(feature = "platform-fuchsia")]
3873impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreGetZirconHandleInfoFUCHSIA<'a> {
3874 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
3875
3876 fn s_type(&self) -> vk::StructureType {
3877 self.s_type
3878 }
3879
3880 fn p_next(&self) -> *const std::ffi::c_void {
3881 self.p_next
3882 }
3883
3884 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3885 self.p_next = p_next.cast_const();
3886 }
3887
3888 fn address(&mut self) -> *mut std::ffi::c_void {
3889 std::ptr::from_mut(self).cast()
3890 }
3891}
3892
3893impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceExternalFenceInfo<'a> {
3894 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
3895
3896 fn s_type(&self) -> vk::StructureType {
3897 self.s_type
3898 }
3899
3900 fn p_next(&self) -> *const std::ffi::c_void {
3901 self.p_next
3902 }
3903
3904 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3905 self.p_next = p_next.cast_const();
3906 }
3907
3908 fn address(&mut self) -> *mut std::ffi::c_void {
3909 std::ptr::from_mut(self).cast()
3910 }
3911}
3912
3913impl<'a> crate::construction::sealed::ChainNode for vk::ExternalFenceProperties<'a> {
3914 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_FENCE_PROPERTIES;
3915
3916 fn s_type(&self) -> vk::StructureType {
3917 self.s_type
3918 }
3919
3920 fn p_next(&self) -> *const std::ffi::c_void {
3921 self.p_next.cast_const()
3922 }
3923
3924 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3925 self.p_next = p_next;
3926 }
3927
3928 fn address(&mut self) -> *mut std::ffi::c_void {
3929 std::ptr::from_mut(self).cast()
3930 }
3931}
3932
3933impl<'a> crate::construction::sealed::ChainNode for vk::ExportFenceCreateInfo<'a> {
3934 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_FENCE_CREATE_INFO;
3935
3936 fn s_type(&self) -> vk::StructureType {
3937 self.s_type
3938 }
3939
3940 fn p_next(&self) -> *const std::ffi::c_void {
3941 self.p_next
3942 }
3943
3944 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3945 self.p_next = p_next.cast_const();
3946 }
3947
3948 fn address(&mut self) -> *mut std::ffi::c_void {
3949 std::ptr::from_mut(self).cast()
3950 }
3951}
3952
3953impl<'a, 'root> crate::Extends<vk::FenceCreateInfo<'root>> for vk::ExportFenceCreateInfo<'a> {}
3954
3955#[cfg(feature = "platform-win32")]
3956impl<'a> crate::construction::sealed::ChainNode for vk::ImportFenceWin32HandleInfoKHR<'a> {
3957 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
3958
3959 fn s_type(&self) -> vk::StructureType {
3960 self.s_type
3961 }
3962
3963 fn p_next(&self) -> *const std::ffi::c_void {
3964 self.p_next
3965 }
3966
3967 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3968 self.p_next = p_next.cast_const();
3969 }
3970
3971 fn address(&mut self) -> *mut std::ffi::c_void {
3972 std::ptr::from_mut(self).cast()
3973 }
3974}
3975
3976#[cfg(feature = "platform-win32")]
3977impl<'a> crate::construction::sealed::ChainNode for vk::ExportFenceWin32HandleInfoKHR<'a> {
3978 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
3979
3980 fn s_type(&self) -> vk::StructureType {
3981 self.s_type
3982 }
3983
3984 fn p_next(&self) -> *const std::ffi::c_void {
3985 self.p_next
3986 }
3987
3988 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
3989 self.p_next = p_next.cast_const();
3990 }
3991
3992 fn address(&mut self) -> *mut std::ffi::c_void {
3993 std::ptr::from_mut(self).cast()
3994 }
3995}
3996
3997#[cfg(feature = "platform-win32")]
3998impl<'a, 'root> crate::Extends<vk::FenceCreateInfo<'root>>
3999 for vk::ExportFenceWin32HandleInfoKHR<'a>
4000{
4001}
4002
4003#[cfg(feature = "platform-win32")]
4004impl<'a> crate::construction::sealed::ChainNode for vk::FenceGetWin32HandleInfoKHR<'a> {
4005 const S_TYPE: vk::StructureType = vk::StructureType::FENCE_GET_WIN32_HANDLE_INFO_KHR;
4006
4007 fn s_type(&self) -> vk::StructureType {
4008 self.s_type
4009 }
4010
4011 fn p_next(&self) -> *const std::ffi::c_void {
4012 self.p_next
4013 }
4014
4015 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4016 self.p_next = p_next.cast_const();
4017 }
4018
4019 fn address(&mut self) -> *mut std::ffi::c_void {
4020 std::ptr::from_mut(self).cast()
4021 }
4022}
4023
4024impl<'a> crate::construction::sealed::ChainNode for vk::ImportFenceFdInfoKHR<'a> {
4025 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_FENCE_FD_INFO_KHR;
4026
4027 fn s_type(&self) -> vk::StructureType {
4028 self.s_type
4029 }
4030
4031 fn p_next(&self) -> *const std::ffi::c_void {
4032 self.p_next
4033 }
4034
4035 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4036 self.p_next = p_next.cast_const();
4037 }
4038
4039 fn address(&mut self) -> *mut std::ffi::c_void {
4040 std::ptr::from_mut(self).cast()
4041 }
4042}
4043
4044impl<'a> crate::construction::sealed::ChainNode for vk::FenceGetFdInfoKHR<'a> {
4045 const S_TYPE: vk::StructureType = vk::StructureType::FENCE_GET_FD_INFO_KHR;
4046
4047 fn s_type(&self) -> vk::StructureType {
4048 self.s_type
4049 }
4050
4051 fn p_next(&self) -> *const std::ffi::c_void {
4052 self.p_next
4053 }
4054
4055 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4056 self.p_next = p_next.cast_const();
4057 }
4058
4059 fn address(&mut self) -> *mut std::ffi::c_void {
4060 std::ptr::from_mut(self).cast()
4061 }
4062}
4063
4064impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMultiviewFeatures<'a> {
4065 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
4066
4067 fn s_type(&self) -> vk::StructureType {
4068 self.s_type
4069 }
4070
4071 fn p_next(&self) -> *const std::ffi::c_void {
4072 self.p_next.cast_const()
4073 }
4074
4075 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4076 self.p_next = p_next;
4077 }
4078
4079 fn address(&mut self) -> *mut std::ffi::c_void {
4080 std::ptr::from_mut(self).cast()
4081 }
4082}
4083
4084impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
4085 for vk::PhysicalDeviceMultiviewFeatures<'a>
4086{
4087}
4088
4089impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4090 for vk::PhysicalDeviceMultiviewFeatures<'a>
4091{
4092}
4093
4094impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMultiviewProperties<'a> {
4095 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
4096
4097 fn s_type(&self) -> vk::StructureType {
4098 self.s_type
4099 }
4100
4101 fn p_next(&self) -> *const std::ffi::c_void {
4102 self.p_next.cast_const()
4103 }
4104
4105 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4106 self.p_next = p_next;
4107 }
4108
4109 fn address(&mut self) -> *mut std::ffi::c_void {
4110 std::ptr::from_mut(self).cast()
4111 }
4112}
4113
4114impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
4115 for vk::PhysicalDeviceMultiviewProperties<'a>
4116{
4117}
4118
4119impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassMultiviewCreateInfo<'a> {
4120 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO;
4121
4122 fn s_type(&self) -> vk::StructureType {
4123 self.s_type
4124 }
4125
4126 fn p_next(&self) -> *const std::ffi::c_void {
4127 self.p_next
4128 }
4129
4130 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4131 self.p_next = p_next.cast_const();
4132 }
4133
4134 fn address(&mut self) -> *mut std::ffi::c_void {
4135 std::ptr::from_mut(self).cast()
4136 }
4137}
4138
4139impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo<'root>>
4140 for vk::RenderPassMultiviewCreateInfo<'a>
4141{
4142}
4143
4144impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceCapabilities2EXT<'a> {
4145 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_CAPABILITIES_2_EXT;
4146
4147 fn s_type(&self) -> vk::StructureType {
4148 self.s_type
4149 }
4150
4151 fn p_next(&self) -> *const std::ffi::c_void {
4152 self.p_next.cast_const()
4153 }
4154
4155 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4156 self.p_next = p_next;
4157 }
4158
4159 fn address(&mut self) -> *mut std::ffi::c_void {
4160 std::ptr::from_mut(self).cast()
4161 }
4162}
4163
4164impl<'a> crate::construction::sealed::ChainNode for vk::DisplayPowerInfoEXT<'a> {
4165 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_POWER_INFO_EXT;
4166
4167 fn s_type(&self) -> vk::StructureType {
4168 self.s_type
4169 }
4170
4171 fn p_next(&self) -> *const std::ffi::c_void {
4172 self.p_next
4173 }
4174
4175 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4176 self.p_next = p_next.cast_const();
4177 }
4178
4179 fn address(&mut self) -> *mut std::ffi::c_void {
4180 std::ptr::from_mut(self).cast()
4181 }
4182}
4183
4184impl<'a> crate::construction::sealed::ChainNode for vk::DeviceEventInfoEXT<'a> {
4185 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_EVENT_INFO_EXT;
4186
4187 fn s_type(&self) -> vk::StructureType {
4188 self.s_type
4189 }
4190
4191 fn p_next(&self) -> *const std::ffi::c_void {
4192 self.p_next
4193 }
4194
4195 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4196 self.p_next = p_next.cast_const();
4197 }
4198
4199 fn address(&mut self) -> *mut std::ffi::c_void {
4200 std::ptr::from_mut(self).cast()
4201 }
4202}
4203
4204impl<'a> crate::construction::sealed::ChainNode for vk::DisplayEventInfoEXT<'a> {
4205 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_EVENT_INFO_EXT;
4206
4207 fn s_type(&self) -> vk::StructureType {
4208 self.s_type
4209 }
4210
4211 fn p_next(&self) -> *const std::ffi::c_void {
4212 self.p_next
4213 }
4214
4215 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4216 self.p_next = p_next.cast_const();
4217 }
4218
4219 fn address(&mut self) -> *mut std::ffi::c_void {
4220 std::ptr::from_mut(self).cast()
4221 }
4222}
4223
4224impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainCounterCreateInfoEXT<'a> {
4225 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
4226
4227 fn s_type(&self) -> vk::StructureType {
4228 self.s_type
4229 }
4230
4231 fn p_next(&self) -> *const std::ffi::c_void {
4232 self.p_next
4233 }
4234
4235 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4236 self.p_next = p_next.cast_const();
4237 }
4238
4239 fn address(&mut self) -> *mut std::ffi::c_void {
4240 std::ptr::from_mut(self).cast()
4241 }
4242}
4243
4244impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
4245 for vk::SwapchainCounterCreateInfoEXT<'a>
4246{
4247}
4248
4249impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceGroupProperties<'a> {
4250 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_GROUP_PROPERTIES;
4251
4252 fn s_type(&self) -> vk::StructureType {
4253 self.s_type
4254 }
4255
4256 fn p_next(&self) -> *const std::ffi::c_void {
4257 self.p_next.cast_const()
4258 }
4259
4260 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4261 self.p_next = p_next;
4262 }
4263
4264 fn address(&mut self) -> *mut std::ffi::c_void {
4265 std::ptr::from_mut(self).cast()
4266 }
4267}
4268
4269impl<'a> crate::construction::sealed::ChainNode for vk::MemoryAllocateFlagsInfo<'a> {
4270 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_ALLOCATE_FLAGS_INFO;
4271
4272 fn s_type(&self) -> vk::StructureType {
4273 self.s_type
4274 }
4275
4276 fn p_next(&self) -> *const std::ffi::c_void {
4277 self.p_next
4278 }
4279
4280 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4281 self.p_next = p_next.cast_const();
4282 }
4283
4284 fn address(&mut self) -> *mut std::ffi::c_void {
4285 std::ptr::from_mut(self).cast()
4286 }
4287}
4288
4289impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>> for vk::MemoryAllocateFlagsInfo<'a> {}
4290
4291impl<'a> crate::construction::sealed::ChainNode for vk::BindBufferMemoryInfo<'a> {
4292 const S_TYPE: vk::StructureType = vk::StructureType::BIND_BUFFER_MEMORY_INFO;
4293
4294 fn s_type(&self) -> vk::StructureType {
4295 self.s_type
4296 }
4297
4298 fn p_next(&self) -> *const std::ffi::c_void {
4299 self.p_next
4300 }
4301
4302 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4303 self.p_next = p_next.cast_const();
4304 }
4305
4306 fn address(&mut self) -> *mut std::ffi::c_void {
4307 std::ptr::from_mut(self).cast()
4308 }
4309}
4310
4311impl<'a> crate::construction::sealed::ChainNode for vk::BindBufferMemoryDeviceGroupInfo<'a> {
4312 const S_TYPE: vk::StructureType = vk::StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
4313
4314 fn s_type(&self) -> vk::StructureType {
4315 self.s_type
4316 }
4317
4318 fn p_next(&self) -> *const std::ffi::c_void {
4319 self.p_next
4320 }
4321
4322 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4323 self.p_next = p_next.cast_const();
4324 }
4325
4326 fn address(&mut self) -> *mut std::ffi::c_void {
4327 std::ptr::from_mut(self).cast()
4328 }
4329}
4330
4331impl<'a, 'root> crate::Extends<vk::BindBufferMemoryInfo<'root>>
4332 for vk::BindBufferMemoryDeviceGroupInfo<'a>
4333{
4334}
4335
4336impl<'a> crate::construction::sealed::ChainNode for vk::BindImageMemoryInfo<'a> {
4337 const S_TYPE: vk::StructureType = vk::StructureType::BIND_IMAGE_MEMORY_INFO;
4338
4339 fn s_type(&self) -> vk::StructureType {
4340 self.s_type
4341 }
4342
4343 fn p_next(&self) -> *const std::ffi::c_void {
4344 self.p_next
4345 }
4346
4347 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4348 self.p_next = p_next.cast_const();
4349 }
4350
4351 fn address(&mut self) -> *mut std::ffi::c_void {
4352 std::ptr::from_mut(self).cast()
4353 }
4354}
4355
4356impl<'a> crate::construction::sealed::ChainNode for vk::BindImageMemoryDeviceGroupInfo<'a> {
4357 const S_TYPE: vk::StructureType = vk::StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
4358
4359 fn s_type(&self) -> vk::StructureType {
4360 self.s_type
4361 }
4362
4363 fn p_next(&self) -> *const std::ffi::c_void {
4364 self.p_next
4365 }
4366
4367 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4368 self.p_next = p_next.cast_const();
4369 }
4370
4371 fn address(&mut self) -> *mut std::ffi::c_void {
4372 std::ptr::from_mut(self).cast()
4373 }
4374}
4375
4376impl<'a, 'root> crate::Extends<vk::BindImageMemoryInfo<'root>>
4377 for vk::BindImageMemoryDeviceGroupInfo<'a>
4378{
4379}
4380
4381impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupRenderPassBeginInfo<'a> {
4382 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
4383
4384 fn s_type(&self) -> vk::StructureType {
4385 self.s_type
4386 }
4387
4388 fn p_next(&self) -> *const std::ffi::c_void {
4389 self.p_next
4390 }
4391
4392 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4393 self.p_next = p_next.cast_const();
4394 }
4395
4396 fn address(&mut self) -> *mut std::ffi::c_void {
4397 std::ptr::from_mut(self).cast()
4398 }
4399}
4400
4401impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
4402 for vk::DeviceGroupRenderPassBeginInfo<'a>
4403{
4404}
4405
4406impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
4407 for vk::DeviceGroupRenderPassBeginInfo<'a>
4408{
4409}
4410
4411impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupCommandBufferBeginInfo<'a> {
4412 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
4413
4414 fn s_type(&self) -> vk::StructureType {
4415 self.s_type
4416 }
4417
4418 fn p_next(&self) -> *const std::ffi::c_void {
4419 self.p_next
4420 }
4421
4422 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4423 self.p_next = p_next.cast_const();
4424 }
4425
4426 fn address(&mut self) -> *mut std::ffi::c_void {
4427 std::ptr::from_mut(self).cast()
4428 }
4429}
4430
4431impl<'a, 'root> crate::Extends<vk::CommandBufferBeginInfo<'root>>
4432 for vk::DeviceGroupCommandBufferBeginInfo<'a>
4433{
4434}
4435
4436impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupSubmitInfo<'a> {
4437 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_SUBMIT_INFO;
4438
4439 fn s_type(&self) -> vk::StructureType {
4440 self.s_type
4441 }
4442
4443 fn p_next(&self) -> *const std::ffi::c_void {
4444 self.p_next
4445 }
4446
4447 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4448 self.p_next = p_next.cast_const();
4449 }
4450
4451 fn address(&mut self) -> *mut std::ffi::c_void {
4452 std::ptr::from_mut(self).cast()
4453 }
4454}
4455
4456impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::DeviceGroupSubmitInfo<'a> {}
4457
4458impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupBindSparseInfo<'a> {
4459 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_BIND_SPARSE_INFO;
4460
4461 fn s_type(&self) -> vk::StructureType {
4462 self.s_type
4463 }
4464
4465 fn p_next(&self) -> *const std::ffi::c_void {
4466 self.p_next
4467 }
4468
4469 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4470 self.p_next = p_next.cast_const();
4471 }
4472
4473 fn address(&mut self) -> *mut std::ffi::c_void {
4474 std::ptr::from_mut(self).cast()
4475 }
4476}
4477
4478impl<'a, 'root> crate::Extends<vk::BindSparseInfo<'root>> for vk::DeviceGroupBindSparseInfo<'a> {}
4479
4480impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupPresentCapabilitiesKHR<'a> {
4481 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
4482
4483 fn s_type(&self) -> vk::StructureType {
4484 self.s_type
4485 }
4486
4487 fn p_next(&self) -> *const std::ffi::c_void {
4488 self.p_next.cast_const()
4489 }
4490
4491 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4492 self.p_next = p_next;
4493 }
4494
4495 fn address(&mut self) -> *mut std::ffi::c_void {
4496 std::ptr::from_mut(self).cast()
4497 }
4498}
4499
4500impl<'a> crate::construction::sealed::ChainNode for vk::ImageSwapchainCreateInfoKHR<'a> {
4501 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
4502
4503 fn s_type(&self) -> vk::StructureType {
4504 self.s_type
4505 }
4506
4507 fn p_next(&self) -> *const std::ffi::c_void {
4508 self.p_next
4509 }
4510
4511 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4512 self.p_next = p_next.cast_const();
4513 }
4514
4515 fn address(&mut self) -> *mut std::ffi::c_void {
4516 std::ptr::from_mut(self).cast()
4517 }
4518}
4519
4520impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ImageSwapchainCreateInfoKHR<'a> {}
4521
4522impl<'a> crate::construction::sealed::ChainNode for vk::BindImageMemorySwapchainInfoKHR<'a> {
4523 const S_TYPE: vk::StructureType = vk::StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
4524
4525 fn s_type(&self) -> vk::StructureType {
4526 self.s_type
4527 }
4528
4529 fn p_next(&self) -> *const std::ffi::c_void {
4530 self.p_next
4531 }
4532
4533 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4534 self.p_next = p_next.cast_const();
4535 }
4536
4537 fn address(&mut self) -> *mut std::ffi::c_void {
4538 std::ptr::from_mut(self).cast()
4539 }
4540}
4541
4542impl<'a, 'root> crate::Extends<vk::BindImageMemoryInfo<'root>>
4543 for vk::BindImageMemorySwapchainInfoKHR<'a>
4544{
4545}
4546
4547impl<'a> crate::construction::sealed::ChainNode for vk::AcquireNextImageInfoKHR<'a> {
4548 const S_TYPE: vk::StructureType = vk::StructureType::ACQUIRE_NEXT_IMAGE_INFO_KHR;
4549
4550 fn s_type(&self) -> vk::StructureType {
4551 self.s_type
4552 }
4553
4554 fn p_next(&self) -> *const std::ffi::c_void {
4555 self.p_next
4556 }
4557
4558 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4559 self.p_next = p_next.cast_const();
4560 }
4561
4562 fn address(&mut self) -> *mut std::ffi::c_void {
4563 std::ptr::from_mut(self).cast()
4564 }
4565}
4566
4567impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupPresentInfoKHR<'a> {
4568 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_PRESENT_INFO_KHR;
4569
4570 fn s_type(&self) -> vk::StructureType {
4571 self.s_type
4572 }
4573
4574 fn p_next(&self) -> *const std::ffi::c_void {
4575 self.p_next
4576 }
4577
4578 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4579 self.p_next = p_next.cast_const();
4580 }
4581
4582 fn address(&mut self) -> *mut std::ffi::c_void {
4583 std::ptr::from_mut(self).cast()
4584 }
4585}
4586
4587impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::DeviceGroupPresentInfoKHR<'a> {}
4588
4589impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupDeviceCreateInfo<'a> {
4590 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO;
4591
4592 fn s_type(&self) -> vk::StructureType {
4593 self.s_type
4594 }
4595
4596 fn p_next(&self) -> *const std::ffi::c_void {
4597 self.p_next
4598 }
4599
4600 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4601 self.p_next = p_next.cast_const();
4602 }
4603
4604 fn address(&mut self) -> *mut std::ffi::c_void {
4605 std::ptr::from_mut(self).cast()
4606 }
4607}
4608
4609impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4610 for vk::DeviceGroupDeviceCreateInfo<'a>
4611{
4612}
4613
4614impl<'a> crate::construction::sealed::ChainNode for vk::DeviceGroupSwapchainCreateInfoKHR<'a> {
4615 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
4616
4617 fn s_type(&self) -> vk::StructureType {
4618 self.s_type
4619 }
4620
4621 fn p_next(&self) -> *const std::ffi::c_void {
4622 self.p_next
4623 }
4624
4625 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4626 self.p_next = p_next.cast_const();
4627 }
4628
4629 fn address(&mut self) -> *mut std::ffi::c_void {
4630 std::ptr::from_mut(self).cast()
4631 }
4632}
4633
4634impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
4635 for vk::DeviceGroupSwapchainCreateInfoKHR<'a>
4636{
4637}
4638
4639impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorUpdateTemplateCreateInfo<'a> {
4640 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
4641
4642 fn s_type(&self) -> vk::StructureType {
4643 self.s_type
4644 }
4645
4646 fn p_next(&self) -> *const std::ffi::c_void {
4647 self.p_next
4648 }
4649
4650 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4651 self.p_next = p_next.cast_const();
4652 }
4653
4654 fn address(&mut self) -> *mut std::ffi::c_void {
4655 std::ptr::from_mut(self).cast()
4656 }
4657}
4658
4659impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePresentIdFeaturesKHR<'a> {
4660 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR;
4661
4662 fn s_type(&self) -> vk::StructureType {
4663 self.s_type
4664 }
4665
4666 fn p_next(&self) -> *const std::ffi::c_void {
4667 self.p_next.cast_const()
4668 }
4669
4670 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4671 self.p_next = p_next;
4672 }
4673
4674 fn address(&mut self) -> *mut std::ffi::c_void {
4675 std::ptr::from_mut(self).cast()
4676 }
4677}
4678
4679impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
4680 for vk::PhysicalDevicePresentIdFeaturesKHR<'a>
4681{
4682}
4683
4684impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4685 for vk::PhysicalDevicePresentIdFeaturesKHR<'a>
4686{
4687}
4688
4689impl<'a> crate::construction::sealed::ChainNode for vk::PresentIdKHR<'a> {
4690 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_ID_KHR;
4691
4692 fn s_type(&self) -> vk::StructureType {
4693 self.s_type
4694 }
4695
4696 fn p_next(&self) -> *const std::ffi::c_void {
4697 self.p_next
4698 }
4699
4700 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4701 self.p_next = p_next.cast_const();
4702 }
4703
4704 fn address(&mut self) -> *mut std::ffi::c_void {
4705 std::ptr::from_mut(self).cast()
4706 }
4707}
4708
4709impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::PresentIdKHR<'a> {}
4710
4711impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePresentId2FeaturesKHR<'a> {
4712 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR;
4713
4714 fn s_type(&self) -> vk::StructureType {
4715 self.s_type
4716 }
4717
4718 fn p_next(&self) -> *const std::ffi::c_void {
4719 self.p_next.cast_const()
4720 }
4721
4722 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4723 self.p_next = p_next;
4724 }
4725
4726 fn address(&mut self) -> *mut std::ffi::c_void {
4727 std::ptr::from_mut(self).cast()
4728 }
4729}
4730
4731impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
4732 for vk::PhysicalDevicePresentId2FeaturesKHR<'a>
4733{
4734}
4735
4736impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4737 for vk::PhysicalDevicePresentId2FeaturesKHR<'a>
4738{
4739}
4740
4741impl<'a> crate::construction::sealed::ChainNode for vk::PresentId2KHR<'a> {
4742 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_ID_2_KHR;
4743
4744 fn s_type(&self) -> vk::StructureType {
4745 self.s_type
4746 }
4747
4748 fn p_next(&self) -> *const std::ffi::c_void {
4749 self.p_next
4750 }
4751
4752 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4753 self.p_next = p_next.cast_const();
4754 }
4755
4756 fn address(&mut self) -> *mut std::ffi::c_void {
4757 std::ptr::from_mut(self).cast()
4758 }
4759}
4760
4761impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::PresentId2KHR<'a> {}
4762
4763impl<'a> crate::construction::sealed::ChainNode for vk::PresentWait2InfoKHR<'a> {
4764 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_WAIT_2_INFO_KHR;
4765
4766 fn s_type(&self) -> vk::StructureType {
4767 self.s_type
4768 }
4769
4770 fn p_next(&self) -> *const std::ffi::c_void {
4771 self.p_next
4772 }
4773
4774 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4775 self.p_next = p_next.cast_const();
4776 }
4777
4778 fn address(&mut self) -> *mut std::ffi::c_void {
4779 std::ptr::from_mut(self).cast()
4780 }
4781}
4782
4783impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePresentWaitFeaturesKHR<'a> {
4784 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR;
4785
4786 fn s_type(&self) -> vk::StructureType {
4787 self.s_type
4788 }
4789
4790 fn p_next(&self) -> *const std::ffi::c_void {
4791 self.p_next.cast_const()
4792 }
4793
4794 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4795 self.p_next = p_next;
4796 }
4797
4798 fn address(&mut self) -> *mut std::ffi::c_void {
4799 std::ptr::from_mut(self).cast()
4800 }
4801}
4802
4803impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
4804 for vk::PhysicalDevicePresentWaitFeaturesKHR<'a>
4805{
4806}
4807
4808impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4809 for vk::PhysicalDevicePresentWaitFeaturesKHR<'a>
4810{
4811}
4812
4813impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePresentWait2FeaturesKHR<'a> {
4814 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR;
4815
4816 fn s_type(&self) -> vk::StructureType {
4817 self.s_type
4818 }
4819
4820 fn p_next(&self) -> *const std::ffi::c_void {
4821 self.p_next.cast_const()
4822 }
4823
4824 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4825 self.p_next = p_next;
4826 }
4827
4828 fn address(&mut self) -> *mut std::ffi::c_void {
4829 std::ptr::from_mut(self).cast()
4830 }
4831}
4832
4833impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
4834 for vk::PhysicalDevicePresentWait2FeaturesKHR<'a>
4835{
4836}
4837
4838impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4839 for vk::PhysicalDevicePresentWait2FeaturesKHR<'a>
4840{
4841}
4842
4843impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePresentTimingFeaturesEXT<'a> {
4844 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT;
4845
4846 fn s_type(&self) -> vk::StructureType {
4847 self.s_type
4848 }
4849
4850 fn p_next(&self) -> *const std::ffi::c_void {
4851 self.p_next.cast_const()
4852 }
4853
4854 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4855 self.p_next = p_next;
4856 }
4857
4858 fn address(&mut self) -> *mut std::ffi::c_void {
4859 std::ptr::from_mut(self).cast()
4860 }
4861}
4862
4863impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
4864 for vk::PhysicalDevicePresentTimingFeaturesEXT<'a>
4865{
4866}
4867
4868impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
4869 for vk::PhysicalDevicePresentTimingFeaturesEXT<'a>
4870{
4871}
4872
4873impl<'a> crate::construction::sealed::ChainNode for vk::PresentTimingSurfaceCapabilitiesEXT<'a> {
4874 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_TIMING_SURFACE_CAPABILITIES_EXT;
4875
4876 fn s_type(&self) -> vk::StructureType {
4877 self.s_type
4878 }
4879
4880 fn p_next(&self) -> *const std::ffi::c_void {
4881 self.p_next.cast_const()
4882 }
4883
4884 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4885 self.p_next = p_next;
4886 }
4887
4888 fn address(&mut self) -> *mut std::ffi::c_void {
4889 std::ptr::from_mut(self).cast()
4890 }
4891}
4892
4893impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
4894 for vk::PresentTimingSurfaceCapabilitiesEXT<'a>
4895{
4896}
4897
4898impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainTimingPropertiesEXT<'a> {
4899 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_TIMING_PROPERTIES_EXT;
4900
4901 fn s_type(&self) -> vk::StructureType {
4902 self.s_type
4903 }
4904
4905 fn p_next(&self) -> *const std::ffi::c_void {
4906 self.p_next.cast_const()
4907 }
4908
4909 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4910 self.p_next = p_next;
4911 }
4912
4913 fn address(&mut self) -> *mut std::ffi::c_void {
4914 std::ptr::from_mut(self).cast()
4915 }
4916}
4917
4918impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainTimeDomainPropertiesEXT<'a> {
4919 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT;
4920
4921 fn s_type(&self) -> vk::StructureType {
4922 self.s_type
4923 }
4924
4925 fn p_next(&self) -> *const std::ffi::c_void {
4926 self.p_next.cast_const()
4927 }
4928
4929 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4930 self.p_next = p_next;
4931 }
4932
4933 fn address(&mut self) -> *mut std::ffi::c_void {
4934 std::ptr::from_mut(self).cast()
4935 }
4936}
4937
4938impl<'a> crate::construction::sealed::ChainNode for vk::PastPresentationTimingInfoEXT<'a> {
4939 const S_TYPE: vk::StructureType = vk::StructureType::PAST_PRESENTATION_TIMING_INFO_EXT;
4940
4941 fn s_type(&self) -> vk::StructureType {
4942 self.s_type
4943 }
4944
4945 fn p_next(&self) -> *const std::ffi::c_void {
4946 self.p_next
4947 }
4948
4949 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4950 self.p_next = p_next.cast_const();
4951 }
4952
4953 fn address(&mut self) -> *mut std::ffi::c_void {
4954 std::ptr::from_mut(self).cast()
4955 }
4956}
4957
4958impl<'a> crate::construction::sealed::ChainNode for vk::PastPresentationTimingPropertiesEXT<'a> {
4959 const S_TYPE: vk::StructureType = vk::StructureType::PAST_PRESENTATION_TIMING_PROPERTIES_EXT;
4960
4961 fn s_type(&self) -> vk::StructureType {
4962 self.s_type
4963 }
4964
4965 fn p_next(&self) -> *const std::ffi::c_void {
4966 self.p_next.cast_const()
4967 }
4968
4969 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4970 self.p_next = p_next;
4971 }
4972
4973 fn address(&mut self) -> *mut std::ffi::c_void {
4974 std::ptr::from_mut(self).cast()
4975 }
4976}
4977
4978impl<'a> crate::construction::sealed::ChainNode for vk::PastPresentationTimingEXT<'a> {
4979 const S_TYPE: vk::StructureType = vk::StructureType::PAST_PRESENTATION_TIMING_EXT;
4980
4981 fn s_type(&self) -> vk::StructureType {
4982 self.s_type
4983 }
4984
4985 fn p_next(&self) -> *const std::ffi::c_void {
4986 self.p_next.cast_const()
4987 }
4988
4989 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
4990 self.p_next = p_next;
4991 }
4992
4993 fn address(&mut self) -> *mut std::ffi::c_void {
4994 std::ptr::from_mut(self).cast()
4995 }
4996}
4997
4998impl<'a> crate::construction::sealed::ChainNode for vk::PresentTimingsInfoEXT<'a> {
4999 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_TIMINGS_INFO_EXT;
5000
5001 fn s_type(&self) -> vk::StructureType {
5002 self.s_type
5003 }
5004
5005 fn p_next(&self) -> *const std::ffi::c_void {
5006 self.p_next
5007 }
5008
5009 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5010 self.p_next = p_next.cast_const();
5011 }
5012
5013 fn address(&mut self) -> *mut std::ffi::c_void {
5014 std::ptr::from_mut(self).cast()
5015 }
5016}
5017
5018impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::PresentTimingsInfoEXT<'a> {}
5019
5020impl<'a> crate::construction::sealed::ChainNode for vk::PresentTimingInfoEXT<'a> {
5021 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_TIMING_INFO_EXT;
5022
5023 fn s_type(&self) -> vk::StructureType {
5024 self.s_type
5025 }
5026
5027 fn p_next(&self) -> *const std::ffi::c_void {
5028 self.p_next
5029 }
5030
5031 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5032 self.p_next = p_next.cast_const();
5033 }
5034
5035 fn address(&mut self) -> *mut std::ffi::c_void {
5036 std::ptr::from_mut(self).cast()
5037 }
5038}
5039
5040impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainCalibratedTimestampInfoEXT<'a> {
5041 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT;
5042
5043 fn s_type(&self) -> vk::StructureType {
5044 self.s_type
5045 }
5046
5047 fn p_next(&self) -> *const std::ffi::c_void {
5048 self.p_next
5049 }
5050
5051 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5052 self.p_next = p_next.cast_const();
5053 }
5054
5055 fn address(&mut self) -> *mut std::ffi::c_void {
5056 std::ptr::from_mut(self).cast()
5057 }
5058}
5059
5060impl<'a, 'root> crate::Extends<vk::CalibratedTimestampInfoKHR<'root>>
5061 for vk::SwapchainCalibratedTimestampInfoEXT<'a>
5062{
5063}
5064
5065impl<'a> crate::construction::sealed::ChainNode for vk::HdrMetadataEXT<'a> {
5066 const S_TYPE: vk::StructureType = vk::StructureType::HDR_METADATA_EXT;
5067
5068 fn s_type(&self) -> vk::StructureType {
5069 self.s_type
5070 }
5071
5072 fn p_next(&self) -> *const std::ffi::c_void {
5073 self.p_next
5074 }
5075
5076 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5077 self.p_next = p_next.cast_const();
5078 }
5079
5080 fn address(&mut self) -> *mut std::ffi::c_void {
5081 std::ptr::from_mut(self).cast()
5082 }
5083}
5084
5085impl<'a> crate::construction::sealed::ChainNode for vk::HdrVividDynamicMetadataHUAWEI<'a> {
5086 const S_TYPE: vk::StructureType = vk::StructureType::HDR_VIVID_DYNAMIC_METADATA_HUAWEI;
5087
5088 fn s_type(&self) -> vk::StructureType {
5089 self.s_type
5090 }
5091
5092 fn p_next(&self) -> *const std::ffi::c_void {
5093 self.p_next
5094 }
5095
5096 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5097 self.p_next = p_next.cast_const();
5098 }
5099
5100 fn address(&mut self) -> *mut std::ffi::c_void {
5101 std::ptr::from_mut(self).cast()
5102 }
5103}
5104
5105impl<'a, 'root> crate::Extends<vk::HdrMetadataEXT<'root>>
5106 for vk::HdrVividDynamicMetadataHUAWEI<'a>
5107{
5108}
5109
5110impl<'a> crate::construction::sealed::ChainNode for vk::DisplayNativeHdrSurfaceCapabilitiesAMD<'a> {
5111 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
5112
5113 fn s_type(&self) -> vk::StructureType {
5114 self.s_type
5115 }
5116
5117 fn p_next(&self) -> *const std::ffi::c_void {
5118 self.p_next.cast_const()
5119 }
5120
5121 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5122 self.p_next = p_next;
5123 }
5124
5125 fn address(&mut self) -> *mut std::ffi::c_void {
5126 std::ptr::from_mut(self).cast()
5127 }
5128}
5129
5130impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
5131 for vk::DisplayNativeHdrSurfaceCapabilitiesAMD<'a>
5132{
5133}
5134
5135impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainDisplayNativeHdrCreateInfoAMD<'a> {
5136 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
5137
5138 fn s_type(&self) -> vk::StructureType {
5139 self.s_type
5140 }
5141
5142 fn p_next(&self) -> *const std::ffi::c_void {
5143 self.p_next
5144 }
5145
5146 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5147 self.p_next = p_next.cast_const();
5148 }
5149
5150 fn address(&mut self) -> *mut std::ffi::c_void {
5151 std::ptr::from_mut(self).cast()
5152 }
5153}
5154
5155impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
5156 for vk::SwapchainDisplayNativeHdrCreateInfoAMD<'a>
5157{
5158}
5159
5160impl<'a> crate::construction::sealed::ChainNode for vk::PresentTimesInfoGOOGLE<'a> {
5161 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_TIMES_INFO_GOOGLE;
5162
5163 fn s_type(&self) -> vk::StructureType {
5164 self.s_type
5165 }
5166
5167 fn p_next(&self) -> *const std::ffi::c_void {
5168 self.p_next
5169 }
5170
5171 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5172 self.p_next = p_next.cast_const();
5173 }
5174
5175 fn address(&mut self) -> *mut std::ffi::c_void {
5176 std::ptr::from_mut(self).cast()
5177 }
5178}
5179
5180impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::PresentTimesInfoGOOGLE<'a> {}
5181
5182#[cfg(feature = "platform-ios")]
5183impl<'a> crate::construction::sealed::ChainNode for vk::IOSSurfaceCreateInfoMVK<'a> {
5184 const S_TYPE: vk::StructureType = vk::StructureType::IOS_SURFACE_CREATE_INFO_MVK;
5185
5186 fn s_type(&self) -> vk::StructureType {
5187 self.s_type
5188 }
5189
5190 fn p_next(&self) -> *const std::ffi::c_void {
5191 self.p_next
5192 }
5193
5194 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5195 self.p_next = p_next.cast_const();
5196 }
5197
5198 fn address(&mut self) -> *mut std::ffi::c_void {
5199 std::ptr::from_mut(self).cast()
5200 }
5201}
5202
5203#[cfg(feature = "platform-macos")]
5204impl<'a> crate::construction::sealed::ChainNode for vk::MacOSSurfaceCreateInfoMVK<'a> {
5205 const S_TYPE: vk::StructureType = vk::StructureType::MACOS_SURFACE_CREATE_INFO_MVK;
5206
5207 fn s_type(&self) -> vk::StructureType {
5208 self.s_type
5209 }
5210
5211 fn p_next(&self) -> *const std::ffi::c_void {
5212 self.p_next
5213 }
5214
5215 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5216 self.p_next = p_next.cast_const();
5217 }
5218
5219 fn address(&mut self) -> *mut std::ffi::c_void {
5220 std::ptr::from_mut(self).cast()
5221 }
5222}
5223
5224#[cfg(feature = "platform-metal")]
5225impl<'a> crate::construction::sealed::ChainNode for vk::MetalSurfaceCreateInfoEXT<'a> {
5226 const S_TYPE: vk::StructureType = vk::StructureType::METAL_SURFACE_CREATE_INFO_EXT;
5227
5228 fn s_type(&self) -> vk::StructureType {
5229 self.s_type
5230 }
5231
5232 fn p_next(&self) -> *const std::ffi::c_void {
5233 self.p_next
5234 }
5235
5236 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5237 self.p_next = p_next.cast_const();
5238 }
5239
5240 fn address(&mut self) -> *mut std::ffi::c_void {
5241 std::ptr::from_mut(self).cast()
5242 }
5243}
5244
5245impl<'a> crate::construction::sealed::ChainNode
5246 for vk::PipelineViewportWScalingStateCreateInfoNV<'a>
5247{
5248 const S_TYPE: vk::StructureType =
5249 vk::StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
5250
5251 fn s_type(&self) -> vk::StructureType {
5252 self.s_type
5253 }
5254
5255 fn p_next(&self) -> *const std::ffi::c_void {
5256 self.p_next
5257 }
5258
5259 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5260 self.p_next = p_next.cast_const();
5261 }
5262
5263 fn address(&mut self) -> *mut std::ffi::c_void {
5264 std::ptr::from_mut(self).cast()
5265 }
5266}
5267
5268impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
5269 for vk::PipelineViewportWScalingStateCreateInfoNV<'a>
5270{
5271}
5272
5273impl<'a> crate::construction::sealed::ChainNode
5274 for vk::PipelineViewportSwizzleStateCreateInfoNV<'a>
5275{
5276 const S_TYPE: vk::StructureType =
5277 vk::StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
5278
5279 fn s_type(&self) -> vk::StructureType {
5280 self.s_type
5281 }
5282
5283 fn p_next(&self) -> *const std::ffi::c_void {
5284 self.p_next
5285 }
5286
5287 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5288 self.p_next = p_next.cast_const();
5289 }
5290
5291 fn address(&mut self) -> *mut std::ffi::c_void {
5292 std::ptr::from_mut(self).cast()
5293 }
5294}
5295
5296impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
5297 for vk::PipelineViewportSwizzleStateCreateInfoNV<'a>
5298{
5299}
5300
5301impl<'a> crate::construction::sealed::ChainNode
5302 for vk::PhysicalDeviceDiscardRectanglePropertiesEXT<'a>
5303{
5304 const S_TYPE: vk::StructureType =
5305 vk::StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
5306
5307 fn s_type(&self) -> vk::StructureType {
5308 self.s_type
5309 }
5310
5311 fn p_next(&self) -> *const std::ffi::c_void {
5312 self.p_next.cast_const()
5313 }
5314
5315 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5316 self.p_next = p_next;
5317 }
5318
5319 fn address(&mut self) -> *mut std::ffi::c_void {
5320 std::ptr::from_mut(self).cast()
5321 }
5322}
5323
5324impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
5325 for vk::PhysicalDeviceDiscardRectanglePropertiesEXT<'a>
5326{
5327}
5328
5329impl<'a> crate::construction::sealed::ChainNode
5330 for vk::PipelineDiscardRectangleStateCreateInfoEXT<'a>
5331{
5332 const S_TYPE: vk::StructureType =
5333 vk::StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
5334
5335 fn s_type(&self) -> vk::StructureType {
5336 self.s_type
5337 }
5338
5339 fn p_next(&self) -> *const std::ffi::c_void {
5340 self.p_next
5341 }
5342
5343 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5344 self.p_next = p_next.cast_const();
5345 }
5346
5347 fn address(&mut self) -> *mut std::ffi::c_void {
5348 std::ptr::from_mut(self).cast()
5349 }
5350}
5351
5352impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
5353 for vk::PipelineDiscardRectangleStateCreateInfoEXT<'a>
5354{
5355}
5356
5357impl<'a> crate::construction::sealed::ChainNode
5358 for vk::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a>
5359{
5360 const S_TYPE: vk::StructureType =
5361 vk::StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
5362
5363 fn s_type(&self) -> vk::StructureType {
5364 self.s_type
5365 }
5366
5367 fn p_next(&self) -> *const std::ffi::c_void {
5368 self.p_next.cast_const()
5369 }
5370
5371 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5372 self.p_next = p_next;
5373 }
5374
5375 fn address(&mut self) -> *mut std::ffi::c_void {
5376 std::ptr::from_mut(self).cast()
5377 }
5378}
5379
5380impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
5381 for vk::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX<'a>
5382{
5383}
5384
5385impl<'a> crate::construction::sealed::ChainNode
5386 for vk::RenderPassInputAttachmentAspectCreateInfo<'a>
5387{
5388 const S_TYPE: vk::StructureType =
5389 vk::StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
5390
5391 fn s_type(&self) -> vk::StructureType {
5392 self.s_type
5393 }
5394
5395 fn p_next(&self) -> *const std::ffi::c_void {
5396 self.p_next
5397 }
5398
5399 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5400 self.p_next = p_next.cast_const();
5401 }
5402
5403 fn address(&mut self) -> *mut std::ffi::c_void {
5404 std::ptr::from_mut(self).cast()
5405 }
5406}
5407
5408impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo<'root>>
5409 for vk::RenderPassInputAttachmentAspectCreateInfo<'a>
5410{
5411}
5412
5413impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceSurfaceInfo2KHR<'a> {
5414 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
5415
5416 fn s_type(&self) -> vk::StructureType {
5417 self.s_type
5418 }
5419
5420 fn p_next(&self) -> *const std::ffi::c_void {
5421 self.p_next
5422 }
5423
5424 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5425 self.p_next = p_next.cast_const();
5426 }
5427
5428 fn address(&mut self) -> *mut std::ffi::c_void {
5429 std::ptr::from_mut(self).cast()
5430 }
5431}
5432
5433impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceCapabilities2KHR<'a> {
5434 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_CAPABILITIES_2_KHR;
5435
5436 fn s_type(&self) -> vk::StructureType {
5437 self.s_type
5438 }
5439
5440 fn p_next(&self) -> *const std::ffi::c_void {
5441 self.p_next.cast_const()
5442 }
5443
5444 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5445 self.p_next = p_next;
5446 }
5447
5448 fn address(&mut self) -> *mut std::ffi::c_void {
5449 std::ptr::from_mut(self).cast()
5450 }
5451}
5452
5453impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceFormat2KHR<'a> {
5454 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_FORMAT_2_KHR;
5455
5456 fn s_type(&self) -> vk::StructureType {
5457 self.s_type
5458 }
5459
5460 fn p_next(&self) -> *const std::ffi::c_void {
5461 self.p_next.cast_const()
5462 }
5463
5464 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5465 self.p_next = p_next;
5466 }
5467
5468 fn address(&mut self) -> *mut std::ffi::c_void {
5469 std::ptr::from_mut(self).cast()
5470 }
5471}
5472
5473impl<'a> crate::construction::sealed::ChainNode for vk::DisplayProperties2KHR<'a> {
5474 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_PROPERTIES_2_KHR;
5475
5476 fn s_type(&self) -> vk::StructureType {
5477 self.s_type
5478 }
5479
5480 fn p_next(&self) -> *const std::ffi::c_void {
5481 self.p_next.cast_const()
5482 }
5483
5484 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5485 self.p_next = p_next;
5486 }
5487
5488 fn address(&mut self) -> *mut std::ffi::c_void {
5489 std::ptr::from_mut(self).cast()
5490 }
5491}
5492
5493impl<'a> crate::construction::sealed::ChainNode for vk::DisplayPlaneProperties2KHR<'a> {
5494 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR;
5495
5496 fn s_type(&self) -> vk::StructureType {
5497 self.s_type
5498 }
5499
5500 fn p_next(&self) -> *const std::ffi::c_void {
5501 self.p_next.cast_const()
5502 }
5503
5504 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5505 self.p_next = p_next;
5506 }
5507
5508 fn address(&mut self) -> *mut std::ffi::c_void {
5509 std::ptr::from_mut(self).cast()
5510 }
5511}
5512
5513impl<'a> crate::construction::sealed::ChainNode for vk::DisplayModeProperties2KHR<'a> {
5514 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_MODE_PROPERTIES_2_KHR;
5515
5516 fn s_type(&self) -> vk::StructureType {
5517 self.s_type
5518 }
5519
5520 fn p_next(&self) -> *const std::ffi::c_void {
5521 self.p_next.cast_const()
5522 }
5523
5524 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5525 self.p_next = p_next;
5526 }
5527
5528 fn address(&mut self) -> *mut std::ffi::c_void {
5529 std::ptr::from_mut(self).cast()
5530 }
5531}
5532
5533impl<'a> crate::construction::sealed::ChainNode for vk::DisplayModeStereoPropertiesNV<'a> {
5534 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_MODE_STEREO_PROPERTIES_NV;
5535
5536 fn s_type(&self) -> vk::StructureType {
5537 self.s_type
5538 }
5539
5540 fn p_next(&self) -> *const std::ffi::c_void {
5541 self.p_next.cast_const()
5542 }
5543
5544 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5545 self.p_next = p_next;
5546 }
5547
5548 fn address(&mut self) -> *mut std::ffi::c_void {
5549 std::ptr::from_mut(self).cast()
5550 }
5551}
5552
5553impl<'a, 'root> crate::Extends<vk::DisplayModeProperties2KHR<'root>>
5554 for vk::DisplayModeStereoPropertiesNV<'a>
5555{
5556}
5557
5558impl<'a> crate::construction::sealed::ChainNode for vk::DisplayPlaneInfo2KHR<'a> {
5559 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_PLANE_INFO_2_KHR;
5560
5561 fn s_type(&self) -> vk::StructureType {
5562 self.s_type
5563 }
5564
5565 fn p_next(&self) -> *const std::ffi::c_void {
5566 self.p_next
5567 }
5568
5569 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5570 self.p_next = p_next.cast_const();
5571 }
5572
5573 fn address(&mut self) -> *mut std::ffi::c_void {
5574 std::ptr::from_mut(self).cast()
5575 }
5576}
5577
5578impl<'a> crate::construction::sealed::ChainNode for vk::DisplayPlaneCapabilities2KHR<'a> {
5579 const S_TYPE: vk::StructureType = vk::StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR;
5580
5581 fn s_type(&self) -> vk::StructureType {
5582 self.s_type
5583 }
5584
5585 fn p_next(&self) -> *const std::ffi::c_void {
5586 self.p_next.cast_const()
5587 }
5588
5589 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5590 self.p_next = p_next;
5591 }
5592
5593 fn address(&mut self) -> *mut std::ffi::c_void {
5594 std::ptr::from_mut(self).cast()
5595 }
5596}
5597
5598impl<'a> crate::construction::sealed::ChainNode for vk::SharedPresentSurfaceCapabilitiesKHR<'a> {
5599 const S_TYPE: vk::StructureType = vk::StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
5600
5601 fn s_type(&self) -> vk::StructureType {
5602 self.s_type
5603 }
5604
5605 fn p_next(&self) -> *const std::ffi::c_void {
5606 self.p_next.cast_const()
5607 }
5608
5609 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5610 self.p_next = p_next;
5611 }
5612
5613 fn address(&mut self) -> *mut std::ffi::c_void {
5614 std::ptr::from_mut(self).cast()
5615 }
5616}
5617
5618impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
5619 for vk::SharedPresentSurfaceCapabilitiesKHR<'a>
5620{
5621}
5622
5623impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainFlagsSurfaceCapabilitiesEXT<'a> {
5624 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_FLAGS_SURFACE_CAPABILITIES_EXT;
5625
5626 fn s_type(&self) -> vk::StructureType {
5627 self.s_type
5628 }
5629
5630 fn p_next(&self) -> *const std::ffi::c_void {
5631 self.p_next.cast_const()
5632 }
5633
5634 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5635 self.p_next = p_next;
5636 }
5637
5638 fn address(&mut self) -> *mut std::ffi::c_void {
5639 std::ptr::from_mut(self).cast()
5640 }
5641}
5642
5643impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
5644 for vk::SwapchainFlagsSurfaceCapabilitiesEXT<'a>
5645{
5646}
5647
5648impl<'a> crate::construction::sealed::ChainNode for vk::SharedPresentSurfaceCapabilities2KHR<'a> {
5649 const S_TYPE: vk::StructureType = vk::StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_2_KHR;
5650
5651 fn s_type(&self) -> vk::StructureType {
5652 self.s_type
5653 }
5654
5655 fn p_next(&self) -> *const std::ffi::c_void {
5656 self.p_next.cast_const()
5657 }
5658
5659 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5660 self.p_next = p_next;
5661 }
5662
5663 fn address(&mut self) -> *mut std::ffi::c_void {
5664 std::ptr::from_mut(self).cast()
5665 }
5666}
5667
5668impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
5669 for vk::SharedPresentSurfaceCapabilities2KHR<'a>
5670{
5671}
5672
5673impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevice16BitStorageFeatures<'a> {
5674 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
5675
5676 fn s_type(&self) -> vk::StructureType {
5677 self.s_type
5678 }
5679
5680 fn p_next(&self) -> *const std::ffi::c_void {
5681 self.p_next.cast_const()
5682 }
5683
5684 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5685 self.p_next = p_next;
5686 }
5687
5688 fn address(&mut self) -> *mut std::ffi::c_void {
5689 std::ptr::from_mut(self).cast()
5690 }
5691}
5692
5693impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
5694 for vk::PhysicalDevice16BitStorageFeatures<'a>
5695{
5696}
5697
5698impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
5699 for vk::PhysicalDevice16BitStorageFeatures<'a>
5700{
5701}
5702
5703impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceSubgroupProperties<'a> {
5704 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
5705
5706 fn s_type(&self) -> vk::StructureType {
5707 self.s_type
5708 }
5709
5710 fn p_next(&self) -> *const std::ffi::c_void {
5711 self.p_next.cast_const()
5712 }
5713
5714 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5715 self.p_next = p_next;
5716 }
5717
5718 fn address(&mut self) -> *mut std::ffi::c_void {
5719 std::ptr::from_mut(self).cast()
5720 }
5721}
5722
5723impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
5724 for vk::PhysicalDeviceSubgroupProperties<'a>
5725{
5726}
5727
5728impl<'a> crate::construction::sealed::ChainNode
5729 for vk::PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a>
5730{
5731 const S_TYPE: vk::StructureType =
5732 vk::StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
5733
5734 fn s_type(&self) -> vk::StructureType {
5735 self.s_type
5736 }
5737
5738 fn p_next(&self) -> *const std::ffi::c_void {
5739 self.p_next.cast_const()
5740 }
5741
5742 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5743 self.p_next = p_next;
5744 }
5745
5746 fn address(&mut self) -> *mut std::ffi::c_void {
5747 std::ptr::from_mut(self).cast()
5748 }
5749}
5750
5751impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
5752 for vk::PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a>
5753{
5754}
5755
5756impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
5757 for vk::PhysicalDeviceShaderSubgroupExtendedTypesFeatures<'a>
5758{
5759}
5760
5761impl<'a> crate::construction::sealed::ChainNode for vk::BufferMemoryRequirementsInfo2<'a> {
5762 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_MEMORY_REQUIREMENTS_INFO_2;
5763
5764 fn s_type(&self) -> vk::StructureType {
5765 self.s_type
5766 }
5767
5768 fn p_next(&self) -> *const std::ffi::c_void {
5769 self.p_next
5770 }
5771
5772 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5773 self.p_next = p_next.cast_const();
5774 }
5775
5776 fn address(&mut self) -> *mut std::ffi::c_void {
5777 std::ptr::from_mut(self).cast()
5778 }
5779}
5780
5781impl<'a> crate::construction::sealed::ChainNode for vk::DeviceBufferMemoryRequirements<'a> {
5782 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_BUFFER_MEMORY_REQUIREMENTS;
5783
5784 fn s_type(&self) -> vk::StructureType {
5785 self.s_type
5786 }
5787
5788 fn p_next(&self) -> *const std::ffi::c_void {
5789 self.p_next
5790 }
5791
5792 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5793 self.p_next = p_next.cast_const();
5794 }
5795
5796 fn address(&mut self) -> *mut std::ffi::c_void {
5797 std::ptr::from_mut(self).cast()
5798 }
5799}
5800
5801impl<'a> crate::construction::sealed::ChainNode for vk::ImageMemoryRequirementsInfo2<'a> {
5802 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
5803
5804 fn s_type(&self) -> vk::StructureType {
5805 self.s_type
5806 }
5807
5808 fn p_next(&self) -> *const std::ffi::c_void {
5809 self.p_next
5810 }
5811
5812 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5813 self.p_next = p_next.cast_const();
5814 }
5815
5816 fn address(&mut self) -> *mut std::ffi::c_void {
5817 std::ptr::from_mut(self).cast()
5818 }
5819}
5820
5821impl<'a> crate::construction::sealed::ChainNode for vk::ImageSparseMemoryRequirementsInfo2<'a> {
5822 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
5823
5824 fn s_type(&self) -> vk::StructureType {
5825 self.s_type
5826 }
5827
5828 fn p_next(&self) -> *const std::ffi::c_void {
5829 self.p_next
5830 }
5831
5832 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5833 self.p_next = p_next.cast_const();
5834 }
5835
5836 fn address(&mut self) -> *mut std::ffi::c_void {
5837 std::ptr::from_mut(self).cast()
5838 }
5839}
5840
5841impl<'a> crate::construction::sealed::ChainNode for vk::DeviceImageMemoryRequirements<'a> {
5842 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_IMAGE_MEMORY_REQUIREMENTS;
5843
5844 fn s_type(&self) -> vk::StructureType {
5845 self.s_type
5846 }
5847
5848 fn p_next(&self) -> *const std::ffi::c_void {
5849 self.p_next
5850 }
5851
5852 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5853 self.p_next = p_next.cast_const();
5854 }
5855
5856 fn address(&mut self) -> *mut std::ffi::c_void {
5857 std::ptr::from_mut(self).cast()
5858 }
5859}
5860
5861impl<'a> crate::construction::sealed::ChainNode for vk::MemoryRequirements2<'a> {
5862 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_REQUIREMENTS_2;
5863
5864 fn s_type(&self) -> vk::StructureType {
5865 self.s_type
5866 }
5867
5868 fn p_next(&self) -> *const std::ffi::c_void {
5869 self.p_next.cast_const()
5870 }
5871
5872 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5873 self.p_next = p_next;
5874 }
5875
5876 fn address(&mut self) -> *mut std::ffi::c_void {
5877 std::ptr::from_mut(self).cast()
5878 }
5879}
5880
5881impl<'a> crate::construction::sealed::ChainNode for vk::SparseImageMemoryRequirements2<'a> {
5882 const S_TYPE: vk::StructureType = vk::StructureType::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
5883
5884 fn s_type(&self) -> vk::StructureType {
5885 self.s_type
5886 }
5887
5888 fn p_next(&self) -> *const std::ffi::c_void {
5889 self.p_next.cast_const()
5890 }
5891
5892 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5893 self.p_next = p_next;
5894 }
5895
5896 fn address(&mut self) -> *mut std::ffi::c_void {
5897 std::ptr::from_mut(self).cast()
5898 }
5899}
5900
5901impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePointClippingProperties<'a> {
5902 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
5903
5904 fn s_type(&self) -> vk::StructureType {
5905 self.s_type
5906 }
5907
5908 fn p_next(&self) -> *const std::ffi::c_void {
5909 self.p_next.cast_const()
5910 }
5911
5912 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5913 self.p_next = p_next;
5914 }
5915
5916 fn address(&mut self) -> *mut std::ffi::c_void {
5917 std::ptr::from_mut(self).cast()
5918 }
5919}
5920
5921impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
5922 for vk::PhysicalDevicePointClippingProperties<'a>
5923{
5924}
5925
5926impl<'a> crate::construction::sealed::ChainNode for vk::MemoryDedicatedRequirements<'a> {
5927 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_DEDICATED_REQUIREMENTS;
5928
5929 fn s_type(&self) -> vk::StructureType {
5930 self.s_type
5931 }
5932
5933 fn p_next(&self) -> *const std::ffi::c_void {
5934 self.p_next.cast_const()
5935 }
5936
5937 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5938 self.p_next = p_next;
5939 }
5940
5941 fn address(&mut self) -> *mut std::ffi::c_void {
5942 std::ptr::from_mut(self).cast()
5943 }
5944}
5945
5946impl<'a, 'root> crate::Extends<vk::MemoryRequirements2<'root>>
5947 for vk::MemoryDedicatedRequirements<'a>
5948{
5949}
5950
5951impl<'a> crate::construction::sealed::ChainNode for vk::MemoryDedicatedAllocateInfo<'a> {
5952 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_DEDICATED_ALLOCATE_INFO;
5953
5954 fn s_type(&self) -> vk::StructureType {
5955 self.s_type
5956 }
5957
5958 fn p_next(&self) -> *const std::ffi::c_void {
5959 self.p_next
5960 }
5961
5962 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5963 self.p_next = p_next.cast_const();
5964 }
5965
5966 fn address(&mut self) -> *mut std::ffi::c_void {
5967 std::ptr::from_mut(self).cast()
5968 }
5969}
5970
5971impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
5972 for vk::MemoryDedicatedAllocateInfo<'a>
5973{
5974}
5975
5976impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewUsageCreateInfo<'a> {
5977 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_USAGE_CREATE_INFO;
5978
5979 fn s_type(&self) -> vk::StructureType {
5980 self.s_type
5981 }
5982
5983 fn p_next(&self) -> *const std::ffi::c_void {
5984 self.p_next
5985 }
5986
5987 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
5988 self.p_next = p_next.cast_const();
5989 }
5990
5991 fn address(&mut self) -> *mut std::ffi::c_void {
5992 std::ptr::from_mut(self).cast()
5993 }
5994}
5995
5996impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
5997 for vk::ImageViewUsageCreateInfo<'a>
5998{
5999}
6000
6001impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewUsage2CreateInfoKHR<'a> {
6002 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_USAGE_2_CREATE_INFO_KHR;
6003
6004 fn s_type(&self) -> vk::StructureType {
6005 self.s_type
6006 }
6007
6008 fn p_next(&self) -> *const std::ffi::c_void {
6009 self.p_next.cast_const()
6010 }
6011
6012 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6013 self.p_next = p_next;
6014 }
6015
6016 fn address(&mut self) -> *mut std::ffi::c_void {
6017 std::ptr::from_mut(self).cast()
6018 }
6019}
6020
6021impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
6022 for vk::ImageViewUsage2CreateInfoKHR<'a>
6023{
6024}
6025
6026impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewSlicedCreateInfoEXT<'a> {
6027 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_SLICED_CREATE_INFO_EXT;
6028
6029 fn s_type(&self) -> vk::StructureType {
6030 self.s_type
6031 }
6032
6033 fn p_next(&self) -> *const std::ffi::c_void {
6034 self.p_next
6035 }
6036
6037 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6038 self.p_next = p_next.cast_const();
6039 }
6040
6041 fn address(&mut self) -> *mut std::ffi::c_void {
6042 std::ptr::from_mut(self).cast()
6043 }
6044}
6045
6046impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
6047 for vk::ImageViewSlicedCreateInfoEXT<'a>
6048{
6049}
6050
6051impl<'a> crate::construction::sealed::ChainNode
6052 for vk::PipelineTessellationDomainOriginStateCreateInfo<'a>
6053{
6054 const S_TYPE: vk::StructureType =
6055 vk::StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
6056
6057 fn s_type(&self) -> vk::StructureType {
6058 self.s_type
6059 }
6060
6061 fn p_next(&self) -> *const std::ffi::c_void {
6062 self.p_next
6063 }
6064
6065 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6066 self.p_next = p_next.cast_const();
6067 }
6068
6069 fn address(&mut self) -> *mut std::ffi::c_void {
6070 std::ptr::from_mut(self).cast()
6071 }
6072}
6073
6074impl<'a, 'root> crate::Extends<vk::PipelineTessellationStateCreateInfo<'root>>
6075 for vk::PipelineTessellationDomainOriginStateCreateInfo<'a>
6076{
6077}
6078
6079impl<'a> crate::construction::sealed::ChainNode for vk::SamplerYcbcrConversionInfo<'a> {
6080 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_YCBCR_CONVERSION_INFO;
6081
6082 fn s_type(&self) -> vk::StructureType {
6083 self.s_type
6084 }
6085
6086 fn p_next(&self) -> *const std::ffi::c_void {
6087 self.p_next
6088 }
6089
6090 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6091 self.p_next = p_next.cast_const();
6092 }
6093
6094 fn address(&mut self) -> *mut std::ffi::c_void {
6095 std::ptr::from_mut(self).cast()
6096 }
6097}
6098
6099impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
6100 for vk::SamplerYcbcrConversionInfo<'a>
6101{
6102}
6103
6104impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
6105 for vk::SamplerYcbcrConversionInfo<'a>
6106{
6107}
6108
6109impl<'a> crate::construction::sealed::ChainNode for vk::SamplerYcbcrConversionCreateInfo<'a> {
6110 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
6111
6112 fn s_type(&self) -> vk::StructureType {
6113 self.s_type
6114 }
6115
6116 fn p_next(&self) -> *const std::ffi::c_void {
6117 self.p_next
6118 }
6119
6120 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6121 self.p_next = p_next.cast_const();
6122 }
6123
6124 fn address(&mut self) -> *mut std::ffi::c_void {
6125 std::ptr::from_mut(self).cast()
6126 }
6127}
6128
6129impl<'a> crate::construction::sealed::ChainNode for vk::BindImagePlaneMemoryInfo<'a> {
6130 const S_TYPE: vk::StructureType = vk::StructureType::BIND_IMAGE_PLANE_MEMORY_INFO;
6131
6132 fn s_type(&self) -> vk::StructureType {
6133 self.s_type
6134 }
6135
6136 fn p_next(&self) -> *const std::ffi::c_void {
6137 self.p_next
6138 }
6139
6140 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6141 self.p_next = p_next.cast_const();
6142 }
6143
6144 fn address(&mut self) -> *mut std::ffi::c_void {
6145 std::ptr::from_mut(self).cast()
6146 }
6147}
6148
6149impl<'a, 'root> crate::Extends<vk::BindImageMemoryInfo<'root>>
6150 for vk::BindImagePlaneMemoryInfo<'a>
6151{
6152}
6153
6154impl<'a> crate::construction::sealed::ChainNode for vk::ImagePlaneMemoryRequirementsInfo<'a> {
6155 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
6156
6157 fn s_type(&self) -> vk::StructureType {
6158 self.s_type
6159 }
6160
6161 fn p_next(&self) -> *const std::ffi::c_void {
6162 self.p_next
6163 }
6164
6165 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6166 self.p_next = p_next.cast_const();
6167 }
6168
6169 fn address(&mut self) -> *mut std::ffi::c_void {
6170 std::ptr::from_mut(self).cast()
6171 }
6172}
6173
6174impl<'a, 'root> crate::Extends<vk::ImageMemoryRequirementsInfo2<'root>>
6175 for vk::ImagePlaneMemoryRequirementsInfo<'a>
6176{
6177}
6178
6179impl<'a> crate::construction::sealed::ChainNode
6180 for vk::PhysicalDeviceSamplerYcbcrConversionFeatures<'a>
6181{
6182 const S_TYPE: vk::StructureType =
6183 vk::StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
6184
6185 fn s_type(&self) -> vk::StructureType {
6186 self.s_type
6187 }
6188
6189 fn p_next(&self) -> *const std::ffi::c_void {
6190 self.p_next.cast_const()
6191 }
6192
6193 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6194 self.p_next = p_next;
6195 }
6196
6197 fn address(&mut self) -> *mut std::ffi::c_void {
6198 std::ptr::from_mut(self).cast()
6199 }
6200}
6201
6202impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
6203 for vk::PhysicalDeviceSamplerYcbcrConversionFeatures<'a>
6204{
6205}
6206
6207impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
6208 for vk::PhysicalDeviceSamplerYcbcrConversionFeatures<'a>
6209{
6210}
6211
6212impl<'a> crate::construction::sealed::ChainNode
6213 for vk::SamplerYcbcrConversionImageFormatProperties<'a>
6214{
6215 const S_TYPE: vk::StructureType =
6216 vk::StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
6217
6218 fn s_type(&self) -> vk::StructureType {
6219 self.s_type
6220 }
6221
6222 fn p_next(&self) -> *const std::ffi::c_void {
6223 self.p_next.cast_const()
6224 }
6225
6226 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6227 self.p_next = p_next;
6228 }
6229
6230 fn address(&mut self) -> *mut std::ffi::c_void {
6231 std::ptr::from_mut(self).cast()
6232 }
6233}
6234
6235impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
6236 for vk::SamplerYcbcrConversionImageFormatProperties<'a>
6237{
6238}
6239
6240impl<'a> crate::construction::sealed::ChainNode for vk::TextureLODGatherFormatPropertiesAMD<'a> {
6241 const S_TYPE: vk::StructureType = vk::StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
6242
6243 fn s_type(&self) -> vk::StructureType {
6244 self.s_type
6245 }
6246
6247 fn p_next(&self) -> *const std::ffi::c_void {
6248 self.p_next.cast_const()
6249 }
6250
6251 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6252 self.p_next = p_next;
6253 }
6254
6255 fn address(&mut self) -> *mut std::ffi::c_void {
6256 std::ptr::from_mut(self).cast()
6257 }
6258}
6259
6260impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
6261 for vk::TextureLODGatherFormatPropertiesAMD<'a>
6262{
6263}
6264
6265impl<'a> crate::construction::sealed::ChainNode for vk::ConditionalRenderingBeginInfoEXT<'a> {
6266 const S_TYPE: vk::StructureType = vk::StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
6267
6268 fn s_type(&self) -> vk::StructureType {
6269 self.s_type
6270 }
6271
6272 fn p_next(&self) -> *const std::ffi::c_void {
6273 self.p_next
6274 }
6275
6276 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6277 self.p_next = p_next.cast_const();
6278 }
6279
6280 fn address(&mut self) -> *mut std::ffi::c_void {
6281 std::ptr::from_mut(self).cast()
6282 }
6283}
6284
6285impl<'a> crate::construction::sealed::ChainNode for vk::ProtectedSubmitInfo<'a> {
6286 const S_TYPE: vk::StructureType = vk::StructureType::PROTECTED_SUBMIT_INFO;
6287
6288 fn s_type(&self) -> vk::StructureType {
6289 self.s_type
6290 }
6291
6292 fn p_next(&self) -> *const std::ffi::c_void {
6293 self.p_next
6294 }
6295
6296 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6297 self.p_next = p_next.cast_const();
6298 }
6299
6300 fn address(&mut self) -> *mut std::ffi::c_void {
6301 std::ptr::from_mut(self).cast()
6302 }
6303}
6304
6305impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::ProtectedSubmitInfo<'a> {}
6306
6307impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceProtectedMemoryFeatures<'a> {
6308 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
6309
6310 fn s_type(&self) -> vk::StructureType {
6311 self.s_type
6312 }
6313
6314 fn p_next(&self) -> *const std::ffi::c_void {
6315 self.p_next.cast_const()
6316 }
6317
6318 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6319 self.p_next = p_next;
6320 }
6321
6322 fn address(&mut self) -> *mut std::ffi::c_void {
6323 std::ptr::from_mut(self).cast()
6324 }
6325}
6326
6327impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
6328 for vk::PhysicalDeviceProtectedMemoryFeatures<'a>
6329{
6330}
6331
6332impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
6333 for vk::PhysicalDeviceProtectedMemoryFeatures<'a>
6334{
6335}
6336
6337impl<'a> crate::construction::sealed::ChainNode
6338 for vk::PhysicalDeviceProtectedMemoryProperties<'a>
6339{
6340 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
6341
6342 fn s_type(&self) -> vk::StructureType {
6343 self.s_type
6344 }
6345
6346 fn p_next(&self) -> *const std::ffi::c_void {
6347 self.p_next.cast_const()
6348 }
6349
6350 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6351 self.p_next = p_next;
6352 }
6353
6354 fn address(&mut self) -> *mut std::ffi::c_void {
6355 std::ptr::from_mut(self).cast()
6356 }
6357}
6358
6359impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
6360 for vk::PhysicalDeviceProtectedMemoryProperties<'a>
6361{
6362}
6363
6364impl<'a> crate::construction::sealed::ChainNode for vk::DeviceQueueInfo2<'a> {
6365 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_QUEUE_INFO_2;
6366
6367 fn s_type(&self) -> vk::StructureType {
6368 self.s_type
6369 }
6370
6371 fn p_next(&self) -> *const std::ffi::c_void {
6372 self.p_next
6373 }
6374
6375 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6376 self.p_next = p_next.cast_const();
6377 }
6378
6379 fn address(&mut self) -> *mut std::ffi::c_void {
6380 std::ptr::from_mut(self).cast()
6381 }
6382}
6383
6384impl<'a> crate::construction::sealed::ChainNode
6385 for vk::PipelineCoverageToColorStateCreateInfoNV<'a>
6386{
6387 const S_TYPE: vk::StructureType =
6388 vk::StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
6389
6390 fn s_type(&self) -> vk::StructureType {
6391 self.s_type
6392 }
6393
6394 fn p_next(&self) -> *const std::ffi::c_void {
6395 self.p_next
6396 }
6397
6398 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6399 self.p_next = p_next.cast_const();
6400 }
6401
6402 fn address(&mut self) -> *mut std::ffi::c_void {
6403 std::ptr::from_mut(self).cast()
6404 }
6405}
6406
6407impl<'a, 'root> crate::Extends<vk::PipelineMultisampleStateCreateInfo<'root>>
6408 for vk::PipelineCoverageToColorStateCreateInfoNV<'a>
6409{
6410}
6411
6412impl<'a> crate::construction::sealed::ChainNode
6413 for vk::PhysicalDeviceSamplerFilterMinmaxProperties<'a>
6414{
6415 const S_TYPE: vk::StructureType =
6416 vk::StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
6417
6418 fn s_type(&self) -> vk::StructureType {
6419 self.s_type
6420 }
6421
6422 fn p_next(&self) -> *const std::ffi::c_void {
6423 self.p_next.cast_const()
6424 }
6425
6426 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6427 self.p_next = p_next;
6428 }
6429
6430 fn address(&mut self) -> *mut std::ffi::c_void {
6431 std::ptr::from_mut(self).cast()
6432 }
6433}
6434
6435impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
6436 for vk::PhysicalDeviceSamplerFilterMinmaxProperties<'a>
6437{
6438}
6439
6440impl<'a> crate::construction::sealed::ChainNode for vk::SampleLocationsInfoEXT<'a> {
6441 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLE_LOCATIONS_INFO_EXT;
6442
6443 fn s_type(&self) -> vk::StructureType {
6444 self.s_type
6445 }
6446
6447 fn p_next(&self) -> *const std::ffi::c_void {
6448 self.p_next
6449 }
6450
6451 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6452 self.p_next = p_next.cast_const();
6453 }
6454
6455 fn address(&mut self) -> *mut std::ffi::c_void {
6456 std::ptr::from_mut(self).cast()
6457 }
6458}
6459
6460impl<'a, 'root> crate::Extends<vk::ImageMemoryBarrier<'root>> for vk::SampleLocationsInfoEXT<'a> {}
6461
6462impl<'a, 'root> crate::Extends<vk::ImageMemoryBarrier2<'root>> for vk::SampleLocationsInfoEXT<'a> {}
6463
6464impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassSampleLocationsBeginInfoEXT<'a> {
6465 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
6466
6467 fn s_type(&self) -> vk::StructureType {
6468 self.s_type
6469 }
6470
6471 fn p_next(&self) -> *const std::ffi::c_void {
6472 self.p_next
6473 }
6474
6475 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6476 self.p_next = p_next.cast_const();
6477 }
6478
6479 fn address(&mut self) -> *mut std::ffi::c_void {
6480 std::ptr::from_mut(self).cast()
6481 }
6482}
6483
6484impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
6485 for vk::RenderPassSampleLocationsBeginInfoEXT<'a>
6486{
6487}
6488
6489impl<'a> crate::construction::sealed::ChainNode
6490 for vk::PipelineSampleLocationsStateCreateInfoEXT<'a>
6491{
6492 const S_TYPE: vk::StructureType =
6493 vk::StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
6494
6495 fn s_type(&self) -> vk::StructureType {
6496 self.s_type
6497 }
6498
6499 fn p_next(&self) -> *const std::ffi::c_void {
6500 self.p_next
6501 }
6502
6503 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6504 self.p_next = p_next.cast_const();
6505 }
6506
6507 fn address(&mut self) -> *mut std::ffi::c_void {
6508 std::ptr::from_mut(self).cast()
6509 }
6510}
6511
6512impl<'a, 'root> crate::Extends<vk::PipelineMultisampleStateCreateInfo<'root>>
6513 for vk::PipelineSampleLocationsStateCreateInfoEXT<'a>
6514{
6515}
6516
6517impl<'a> crate::construction::sealed::ChainNode
6518 for vk::PhysicalDeviceSampleLocationsPropertiesEXT<'a>
6519{
6520 const S_TYPE: vk::StructureType =
6521 vk::StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
6522
6523 fn s_type(&self) -> vk::StructureType {
6524 self.s_type
6525 }
6526
6527 fn p_next(&self) -> *const std::ffi::c_void {
6528 self.p_next.cast_const()
6529 }
6530
6531 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6532 self.p_next = p_next;
6533 }
6534
6535 fn address(&mut self) -> *mut std::ffi::c_void {
6536 std::ptr::from_mut(self).cast()
6537 }
6538}
6539
6540impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
6541 for vk::PhysicalDeviceSampleLocationsPropertiesEXT<'a>
6542{
6543}
6544
6545impl<'a> crate::construction::sealed::ChainNode for vk::MultisamplePropertiesEXT<'a> {
6546 const S_TYPE: vk::StructureType = vk::StructureType::MULTISAMPLE_PROPERTIES_EXT;
6547
6548 fn s_type(&self) -> vk::StructureType {
6549 self.s_type
6550 }
6551
6552 fn p_next(&self) -> *const std::ffi::c_void {
6553 self.p_next.cast_const()
6554 }
6555
6556 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6557 self.p_next = p_next;
6558 }
6559
6560 fn address(&mut self) -> *mut std::ffi::c_void {
6561 std::ptr::from_mut(self).cast()
6562 }
6563}
6564
6565impl<'a> crate::construction::sealed::ChainNode for vk::SamplerReductionModeCreateInfo<'a> {
6566 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO;
6567
6568 fn s_type(&self) -> vk::StructureType {
6569 self.s_type
6570 }
6571
6572 fn p_next(&self) -> *const std::ffi::c_void {
6573 self.p_next
6574 }
6575
6576 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6577 self.p_next = p_next.cast_const();
6578 }
6579
6580 fn address(&mut self) -> *mut std::ffi::c_void {
6581 std::ptr::from_mut(self).cast()
6582 }
6583}
6584
6585impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
6586 for vk::SamplerReductionModeCreateInfo<'a>
6587{
6588}
6589
6590impl<'a> crate::construction::sealed::ChainNode
6591 for vk::PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a>
6592{
6593 const S_TYPE: vk::StructureType =
6594 vk::StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
6595
6596 fn s_type(&self) -> vk::StructureType {
6597 self.s_type
6598 }
6599
6600 fn p_next(&self) -> *const std::ffi::c_void {
6601 self.p_next.cast_const()
6602 }
6603
6604 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6605 self.p_next = p_next;
6606 }
6607
6608 fn address(&mut self) -> *mut std::ffi::c_void {
6609 std::ptr::from_mut(self).cast()
6610 }
6611}
6612
6613impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
6614 for vk::PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a>
6615{
6616}
6617
6618impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
6619 for vk::PhysicalDeviceBlendOperationAdvancedFeaturesEXT<'a>
6620{
6621}
6622
6623impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMultiDrawFeaturesEXT<'a> {
6624 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
6625
6626 fn s_type(&self) -> vk::StructureType {
6627 self.s_type
6628 }
6629
6630 fn p_next(&self) -> *const std::ffi::c_void {
6631 self.p_next.cast_const()
6632 }
6633
6634 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6635 self.p_next = p_next;
6636 }
6637
6638 fn address(&mut self) -> *mut std::ffi::c_void {
6639 std::ptr::from_mut(self).cast()
6640 }
6641}
6642
6643impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
6644 for vk::PhysicalDeviceMultiDrawFeaturesEXT<'a>
6645{
6646}
6647
6648impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
6649 for vk::PhysicalDeviceMultiDrawFeaturesEXT<'a>
6650{
6651}
6652
6653impl<'a> crate::construction::sealed::ChainNode
6654 for vk::PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a>
6655{
6656 const S_TYPE: vk::StructureType =
6657 vk::StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
6658
6659 fn s_type(&self) -> vk::StructureType {
6660 self.s_type
6661 }
6662
6663 fn p_next(&self) -> *const std::ffi::c_void {
6664 self.p_next.cast_const()
6665 }
6666
6667 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6668 self.p_next = p_next;
6669 }
6670
6671 fn address(&mut self) -> *mut std::ffi::c_void {
6672 std::ptr::from_mut(self).cast()
6673 }
6674}
6675
6676impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
6677 for vk::PhysicalDeviceBlendOperationAdvancedPropertiesEXT<'a>
6678{
6679}
6680
6681impl<'a> crate::construction::sealed::ChainNode
6682 for vk::PipelineColorBlendAdvancedStateCreateInfoEXT<'a>
6683{
6684 const S_TYPE: vk::StructureType =
6685 vk::StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
6686
6687 fn s_type(&self) -> vk::StructureType {
6688 self.s_type
6689 }
6690
6691 fn p_next(&self) -> *const std::ffi::c_void {
6692 self.p_next
6693 }
6694
6695 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6696 self.p_next = p_next.cast_const();
6697 }
6698
6699 fn address(&mut self) -> *mut std::ffi::c_void {
6700 std::ptr::from_mut(self).cast()
6701 }
6702}
6703
6704impl<'a, 'root> crate::Extends<vk::PipelineColorBlendStateCreateInfo<'root>>
6705 for vk::PipelineColorBlendAdvancedStateCreateInfoEXT<'a>
6706{
6707}
6708
6709impl<'a> crate::construction::sealed::ChainNode
6710 for vk::PhysicalDeviceInlineUniformBlockFeatures<'a>
6711{
6712 const S_TYPE: vk::StructureType =
6713 vk::StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
6714
6715 fn s_type(&self) -> vk::StructureType {
6716 self.s_type
6717 }
6718
6719 fn p_next(&self) -> *const std::ffi::c_void {
6720 self.p_next.cast_const()
6721 }
6722
6723 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6724 self.p_next = p_next;
6725 }
6726
6727 fn address(&mut self) -> *mut std::ffi::c_void {
6728 std::ptr::from_mut(self).cast()
6729 }
6730}
6731
6732impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
6733 for vk::PhysicalDeviceInlineUniformBlockFeatures<'a>
6734{
6735}
6736
6737impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
6738 for vk::PhysicalDeviceInlineUniformBlockFeatures<'a>
6739{
6740}
6741
6742impl<'a> crate::construction::sealed::ChainNode
6743 for vk::PhysicalDeviceInlineUniformBlockProperties<'a>
6744{
6745 const S_TYPE: vk::StructureType =
6746 vk::StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
6747
6748 fn s_type(&self) -> vk::StructureType {
6749 self.s_type
6750 }
6751
6752 fn p_next(&self) -> *const std::ffi::c_void {
6753 self.p_next.cast_const()
6754 }
6755
6756 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6757 self.p_next = p_next;
6758 }
6759
6760 fn address(&mut self) -> *mut std::ffi::c_void {
6761 std::ptr::from_mut(self).cast()
6762 }
6763}
6764
6765impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
6766 for vk::PhysicalDeviceInlineUniformBlockProperties<'a>
6767{
6768}
6769
6770impl<'a> crate::construction::sealed::ChainNode for vk::WriteDescriptorSetInlineUniformBlock<'a> {
6771 const S_TYPE: vk::StructureType = vk::StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
6772
6773 fn s_type(&self) -> vk::StructureType {
6774 self.s_type
6775 }
6776
6777 fn p_next(&self) -> *const std::ffi::c_void {
6778 self.p_next
6779 }
6780
6781 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6782 self.p_next = p_next.cast_const();
6783 }
6784
6785 fn address(&mut self) -> *mut std::ffi::c_void {
6786 std::ptr::from_mut(self).cast()
6787 }
6788}
6789
6790impl<'a, 'root> crate::Extends<vk::WriteDescriptorSet<'root>>
6791 for vk::WriteDescriptorSetInlineUniformBlock<'a>
6792{
6793}
6794
6795impl<'a> crate::construction::sealed::ChainNode
6796 for vk::DescriptorPoolInlineUniformBlockCreateInfo<'a>
6797{
6798 const S_TYPE: vk::StructureType =
6799 vk::StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
6800
6801 fn s_type(&self) -> vk::StructureType {
6802 self.s_type
6803 }
6804
6805 fn p_next(&self) -> *const std::ffi::c_void {
6806 self.p_next
6807 }
6808
6809 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6810 self.p_next = p_next.cast_const();
6811 }
6812
6813 fn address(&mut self) -> *mut std::ffi::c_void {
6814 std::ptr::from_mut(self).cast()
6815 }
6816}
6817
6818impl<'a, 'root> crate::Extends<vk::DescriptorPoolCreateInfo<'root>>
6819 for vk::DescriptorPoolInlineUniformBlockCreateInfo<'a>
6820{
6821}
6822
6823impl<'a> crate::construction::sealed::ChainNode
6824 for vk::PipelineCoverageModulationStateCreateInfoNV<'a>
6825{
6826 const S_TYPE: vk::StructureType =
6827 vk::StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
6828
6829 fn s_type(&self) -> vk::StructureType {
6830 self.s_type
6831 }
6832
6833 fn p_next(&self) -> *const std::ffi::c_void {
6834 self.p_next
6835 }
6836
6837 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6838 self.p_next = p_next.cast_const();
6839 }
6840
6841 fn address(&mut self) -> *mut std::ffi::c_void {
6842 std::ptr::from_mut(self).cast()
6843 }
6844}
6845
6846impl<'a, 'root> crate::Extends<vk::PipelineMultisampleStateCreateInfo<'root>>
6847 for vk::PipelineCoverageModulationStateCreateInfoNV<'a>
6848{
6849}
6850
6851impl<'a> crate::construction::sealed::ChainNode for vk::ImageFormatListCreateInfo<'a> {
6852 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_FORMAT_LIST_CREATE_INFO;
6853
6854 fn s_type(&self) -> vk::StructureType {
6855 self.s_type
6856 }
6857
6858 fn p_next(&self) -> *const std::ffi::c_void {
6859 self.p_next
6860 }
6861
6862 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6863 self.p_next = p_next.cast_const();
6864 }
6865
6866 fn address(&mut self) -> *mut std::ffi::c_void {
6867 std::ptr::from_mut(self).cast()
6868 }
6869}
6870
6871impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ImageFormatListCreateInfo<'a> {}
6872
6873impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
6874 for vk::ImageFormatListCreateInfo<'a>
6875{
6876}
6877
6878impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
6879 for vk::ImageFormatListCreateInfo<'a>
6880{
6881}
6882
6883impl<'a> crate::construction::sealed::ChainNode for vk::ValidationCacheCreateInfoEXT<'a> {
6884 const S_TYPE: vk::StructureType = vk::StructureType::VALIDATION_CACHE_CREATE_INFO_EXT;
6885
6886 fn s_type(&self) -> vk::StructureType {
6887 self.s_type
6888 }
6889
6890 fn p_next(&self) -> *const std::ffi::c_void {
6891 self.p_next
6892 }
6893
6894 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6895 self.p_next = p_next.cast_const();
6896 }
6897
6898 fn address(&mut self) -> *mut std::ffi::c_void {
6899 std::ptr::from_mut(self).cast()
6900 }
6901}
6902
6903impl<'a> crate::construction::sealed::ChainNode
6904 for vk::ShaderModuleValidationCacheCreateInfoEXT<'a>
6905{
6906 const S_TYPE: vk::StructureType =
6907 vk::StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
6908
6909 fn s_type(&self) -> vk::StructureType {
6910 self.s_type
6911 }
6912
6913 fn p_next(&self) -> *const std::ffi::c_void {
6914 self.p_next
6915 }
6916
6917 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6918 self.p_next = p_next.cast_const();
6919 }
6920
6921 fn address(&mut self) -> *mut std::ffi::c_void {
6922 std::ptr::from_mut(self).cast()
6923 }
6924}
6925
6926impl<'a, 'root> crate::Extends<vk::ShaderModuleCreateInfo<'root>>
6927 for vk::ShaderModuleValidationCacheCreateInfoEXT<'a>
6928{
6929}
6930
6931impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
6932 for vk::ShaderModuleValidationCacheCreateInfoEXT<'a>
6933{
6934}
6935
6936impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance3Properties<'a> {
6937 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
6938
6939 fn s_type(&self) -> vk::StructureType {
6940 self.s_type
6941 }
6942
6943 fn p_next(&self) -> *const std::ffi::c_void {
6944 self.p_next.cast_const()
6945 }
6946
6947 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6948 self.p_next = p_next;
6949 }
6950
6951 fn address(&mut self) -> *mut std::ffi::c_void {
6952 std::ptr::from_mut(self).cast()
6953 }
6954}
6955
6956impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
6957 for vk::PhysicalDeviceMaintenance3Properties<'a>
6958{
6959}
6960
6961impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance4Features<'a> {
6962 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
6963
6964 fn s_type(&self) -> vk::StructureType {
6965 self.s_type
6966 }
6967
6968 fn p_next(&self) -> *const std::ffi::c_void {
6969 self.p_next.cast_const()
6970 }
6971
6972 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
6973 self.p_next = p_next;
6974 }
6975
6976 fn address(&mut self) -> *mut std::ffi::c_void {
6977 std::ptr::from_mut(self).cast()
6978 }
6979}
6980
6981impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
6982 for vk::PhysicalDeviceMaintenance4Features<'a>
6983{
6984}
6985
6986impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
6987 for vk::PhysicalDeviceMaintenance4Features<'a>
6988{
6989}
6990
6991impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance4Properties<'a> {
6992 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
6993
6994 fn s_type(&self) -> vk::StructureType {
6995 self.s_type
6996 }
6997
6998 fn p_next(&self) -> *const std::ffi::c_void {
6999 self.p_next.cast_const()
7000 }
7001
7002 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7003 self.p_next = p_next;
7004 }
7005
7006 fn address(&mut self) -> *mut std::ffi::c_void {
7007 std::ptr::from_mut(self).cast()
7008 }
7009}
7010
7011impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7012 for vk::PhysicalDeviceMaintenance4Properties<'a>
7013{
7014}
7015
7016impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance5Features<'a> {
7017 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES;
7018
7019 fn s_type(&self) -> vk::StructureType {
7020 self.s_type
7021 }
7022
7023 fn p_next(&self) -> *const std::ffi::c_void {
7024 self.p_next.cast_const()
7025 }
7026
7027 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7028 self.p_next = p_next;
7029 }
7030
7031 fn address(&mut self) -> *mut std::ffi::c_void {
7032 std::ptr::from_mut(self).cast()
7033 }
7034}
7035
7036impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7037 for vk::PhysicalDeviceMaintenance5Features<'a>
7038{
7039}
7040
7041impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7042 for vk::PhysicalDeviceMaintenance5Features<'a>
7043{
7044}
7045
7046impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance5Properties<'a> {
7047 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES;
7048
7049 fn s_type(&self) -> vk::StructureType {
7050 self.s_type
7051 }
7052
7053 fn p_next(&self) -> *const std::ffi::c_void {
7054 self.p_next.cast_const()
7055 }
7056
7057 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7058 self.p_next = p_next;
7059 }
7060
7061 fn address(&mut self) -> *mut std::ffi::c_void {
7062 std::ptr::from_mut(self).cast()
7063 }
7064}
7065
7066impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7067 for vk::PhysicalDeviceMaintenance5Properties<'a>
7068{
7069}
7070
7071impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance6Features<'a> {
7072 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES;
7073
7074 fn s_type(&self) -> vk::StructureType {
7075 self.s_type
7076 }
7077
7078 fn p_next(&self) -> *const std::ffi::c_void {
7079 self.p_next.cast_const()
7080 }
7081
7082 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7083 self.p_next = p_next;
7084 }
7085
7086 fn address(&mut self) -> *mut std::ffi::c_void {
7087 std::ptr::from_mut(self).cast()
7088 }
7089}
7090
7091impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7092 for vk::PhysicalDeviceMaintenance6Features<'a>
7093{
7094}
7095
7096impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7097 for vk::PhysicalDeviceMaintenance6Features<'a>
7098{
7099}
7100
7101impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance6Properties<'a> {
7102 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES;
7103
7104 fn s_type(&self) -> vk::StructureType {
7105 self.s_type
7106 }
7107
7108 fn p_next(&self) -> *const std::ffi::c_void {
7109 self.p_next.cast_const()
7110 }
7111
7112 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7113 self.p_next = p_next;
7114 }
7115
7116 fn address(&mut self) -> *mut std::ffi::c_void {
7117 std::ptr::from_mut(self).cast()
7118 }
7119}
7120
7121impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7122 for vk::PhysicalDeviceMaintenance6Properties<'a>
7123{
7124}
7125
7126impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance7FeaturesKHR<'a> {
7127 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR;
7128
7129 fn s_type(&self) -> vk::StructureType {
7130 self.s_type
7131 }
7132
7133 fn p_next(&self) -> *const std::ffi::c_void {
7134 self.p_next.cast_const()
7135 }
7136
7137 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7138 self.p_next = p_next;
7139 }
7140
7141 fn address(&mut self) -> *mut std::ffi::c_void {
7142 std::ptr::from_mut(self).cast()
7143 }
7144}
7145
7146impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7147 for vk::PhysicalDeviceMaintenance7FeaturesKHR<'a>
7148{
7149}
7150
7151impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7152 for vk::PhysicalDeviceMaintenance7FeaturesKHR<'a>
7153{
7154}
7155
7156impl<'a> crate::construction::sealed::ChainNode
7157 for vk::PhysicalDeviceMaintenance7PropertiesKHR<'a>
7158{
7159 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR;
7160
7161 fn s_type(&self) -> vk::StructureType {
7162 self.s_type
7163 }
7164
7165 fn p_next(&self) -> *const std::ffi::c_void {
7166 self.p_next.cast_const()
7167 }
7168
7169 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7170 self.p_next = p_next;
7171 }
7172
7173 fn address(&mut self) -> *mut std::ffi::c_void {
7174 std::ptr::from_mut(self).cast()
7175 }
7176}
7177
7178impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7179 for vk::PhysicalDeviceMaintenance7PropertiesKHR<'a>
7180{
7181}
7182
7183impl<'a> crate::construction::sealed::ChainNode
7184 for vk::PhysicalDeviceLayeredApiPropertiesListKHR<'a>
7185{
7186 const S_TYPE: vk::StructureType =
7187 vk::StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR;
7188
7189 fn s_type(&self) -> vk::StructureType {
7190 self.s_type
7191 }
7192
7193 fn p_next(&self) -> *const std::ffi::c_void {
7194 self.p_next.cast_const()
7195 }
7196
7197 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7198 self.p_next = p_next;
7199 }
7200
7201 fn address(&mut self) -> *mut std::ffi::c_void {
7202 std::ptr::from_mut(self).cast()
7203 }
7204}
7205
7206impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7207 for vk::PhysicalDeviceLayeredApiPropertiesListKHR<'a>
7208{
7209}
7210
7211impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceLayeredApiPropertiesKHR<'a> {
7212 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR;
7213
7214 fn s_type(&self) -> vk::StructureType {
7215 self.s_type
7216 }
7217
7218 fn p_next(&self) -> *const std::ffi::c_void {
7219 self.p_next.cast_const()
7220 }
7221
7222 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7223 self.p_next = p_next;
7224 }
7225
7226 fn address(&mut self) -> *mut std::ffi::c_void {
7227 std::ptr::from_mut(self).cast()
7228 }
7229}
7230
7231impl<'a> crate::construction::sealed::ChainNode
7232 for vk::PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a>
7233{
7234 const S_TYPE: vk::StructureType =
7235 vk::StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR;
7236
7237 fn s_type(&self) -> vk::StructureType {
7238 self.s_type
7239 }
7240
7241 fn p_next(&self) -> *const std::ffi::c_void {
7242 self.p_next.cast_const()
7243 }
7244
7245 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7246 self.p_next = p_next;
7247 }
7248
7249 fn address(&mut self) -> *mut std::ffi::c_void {
7250 std::ptr::from_mut(self).cast()
7251 }
7252}
7253
7254impl<'a, 'root> crate::Extends<vk::PhysicalDeviceLayeredApiPropertiesKHR<'root>>
7255 for vk::PhysicalDeviceLayeredApiVulkanPropertiesKHR<'a>
7256{
7257}
7258
7259impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance8FeaturesKHR<'a> {
7260 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR;
7261
7262 fn s_type(&self) -> vk::StructureType {
7263 self.s_type
7264 }
7265
7266 fn p_next(&self) -> *const std::ffi::c_void {
7267 self.p_next.cast_const()
7268 }
7269
7270 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7271 self.p_next = p_next;
7272 }
7273
7274 fn address(&mut self) -> *mut std::ffi::c_void {
7275 std::ptr::from_mut(self).cast()
7276 }
7277}
7278
7279impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7280 for vk::PhysicalDeviceMaintenance8FeaturesKHR<'a>
7281{
7282}
7283
7284impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7285 for vk::PhysicalDeviceMaintenance8FeaturesKHR<'a>
7286{
7287}
7288
7289impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance9FeaturesKHR<'a> {
7290 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR;
7291
7292 fn s_type(&self) -> vk::StructureType {
7293 self.s_type
7294 }
7295
7296 fn p_next(&self) -> *const std::ffi::c_void {
7297 self.p_next.cast_const()
7298 }
7299
7300 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7301 self.p_next = p_next;
7302 }
7303
7304 fn address(&mut self) -> *mut std::ffi::c_void {
7305 std::ptr::from_mut(self).cast()
7306 }
7307}
7308
7309impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7310 for vk::PhysicalDeviceMaintenance9FeaturesKHR<'a>
7311{
7312}
7313
7314impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7315 for vk::PhysicalDeviceMaintenance9FeaturesKHR<'a>
7316{
7317}
7318
7319impl<'a> crate::construction::sealed::ChainNode
7320 for vk::PhysicalDeviceMaintenance9PropertiesKHR<'a>
7321{
7322 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR;
7323
7324 fn s_type(&self) -> vk::StructureType {
7325 self.s_type
7326 }
7327
7328 fn p_next(&self) -> *const std::ffi::c_void {
7329 self.p_next.cast_const()
7330 }
7331
7332 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7333 self.p_next = p_next;
7334 }
7335
7336 fn address(&mut self) -> *mut std::ffi::c_void {
7337 std::ptr::from_mut(self).cast()
7338 }
7339}
7340
7341impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7342 for vk::PhysicalDeviceMaintenance9PropertiesKHR<'a>
7343{
7344}
7345
7346impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance11FeaturesKHR<'a> {
7347 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_11_FEATURES_KHR;
7348
7349 fn s_type(&self) -> vk::StructureType {
7350 self.s_type
7351 }
7352
7353 fn p_next(&self) -> *const std::ffi::c_void {
7354 self.p_next.cast_const()
7355 }
7356
7357 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7358 self.p_next = p_next;
7359 }
7360
7361 fn address(&mut self) -> *mut std::ffi::c_void {
7362 std::ptr::from_mut(self).cast()
7363 }
7364}
7365
7366impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7367 for vk::PhysicalDeviceMaintenance11FeaturesKHR<'a>
7368{
7369}
7370
7371impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7372 for vk::PhysicalDeviceMaintenance11FeaturesKHR<'a>
7373{
7374}
7375
7376impl<'a> crate::construction::sealed::ChainNode
7377 for vk::PhysicalDeviceMaintenance10PropertiesKHR<'a>
7378{
7379 const S_TYPE: vk::StructureType =
7380 vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR;
7381
7382 fn s_type(&self) -> vk::StructureType {
7383 self.s_type
7384 }
7385
7386 fn p_next(&self) -> *const std::ffi::c_void {
7387 self.p_next.cast_const()
7388 }
7389
7390 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7391 self.p_next = p_next;
7392 }
7393
7394 fn address(&mut self) -> *mut std::ffi::c_void {
7395 std::ptr::from_mut(self).cast()
7396 }
7397}
7398
7399impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7400 for vk::PhysicalDeviceMaintenance10PropertiesKHR<'a>
7401{
7402}
7403
7404impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMaintenance10FeaturesKHR<'a> {
7405 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR;
7406
7407 fn s_type(&self) -> vk::StructureType {
7408 self.s_type
7409 }
7410
7411 fn p_next(&self) -> *const std::ffi::c_void {
7412 self.p_next.cast_const()
7413 }
7414
7415 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7416 self.p_next = p_next;
7417 }
7418
7419 fn address(&mut self) -> *mut std::ffi::c_void {
7420 std::ptr::from_mut(self).cast()
7421 }
7422}
7423
7424impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7425 for vk::PhysicalDeviceMaintenance10FeaturesKHR<'a>
7426{
7427}
7428
7429impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7430 for vk::PhysicalDeviceMaintenance10FeaturesKHR<'a>
7431{
7432}
7433
7434impl<'a> crate::construction::sealed::ChainNode
7435 for vk::QueueFamilyOwnershipTransferPropertiesKHR<'a>
7436{
7437 const S_TYPE: vk::StructureType =
7438 vk::StructureType::QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR;
7439
7440 fn s_type(&self) -> vk::StructureType {
7441 self.s_type
7442 }
7443
7444 fn p_next(&self) -> *const std::ffi::c_void {
7445 self.p_next.cast_const()
7446 }
7447
7448 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7449 self.p_next = p_next;
7450 }
7451
7452 fn address(&mut self) -> *mut std::ffi::c_void {
7453 std::ptr::from_mut(self).cast()
7454 }
7455}
7456
7457impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
7458 for vk::QueueFamilyOwnershipTransferPropertiesKHR<'a>
7459{
7460}
7461
7462impl<'a> crate::construction::sealed::ChainNode
7463 for vk::QueueFamilyOptimalImageTransferGranularityPropertiesKHR<'a>
7464{
7465 const S_TYPE: vk::StructureType =
7466 vk::StructureType::QUEUE_FAMILY_OPTIMAL_IMAGE_TRANSFER_GRANULARITY_PROPERTIES_KHR;
7467
7468 fn s_type(&self) -> vk::StructureType {
7469 self.s_type
7470 }
7471
7472 fn p_next(&self) -> *const std::ffi::c_void {
7473 self.p_next.cast_const()
7474 }
7475
7476 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7477 self.p_next = p_next;
7478 }
7479
7480 fn address(&mut self) -> *mut std::ffi::c_void {
7481 std::ptr::from_mut(self).cast()
7482 }
7483}
7484
7485impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
7486 for vk::QueueFamilyOptimalImageTransferGranularityPropertiesKHR<'a>
7487{
7488}
7489
7490impl<'a> crate::construction::sealed::ChainNode for vk::RenderingAreaInfo<'a> {
7491 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_AREA_INFO;
7492
7493 fn s_type(&self) -> vk::StructureType {
7494 self.s_type
7495 }
7496
7497 fn p_next(&self) -> *const std::ffi::c_void {
7498 self.p_next
7499 }
7500
7501 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7502 self.p_next = p_next.cast_const();
7503 }
7504
7505 fn address(&mut self) -> *mut std::ffi::c_void {
7506 std::ptr::from_mut(self).cast()
7507 }
7508}
7509
7510impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorSetLayoutSupport<'a> {
7511 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT;
7512
7513 fn s_type(&self) -> vk::StructureType {
7514 self.s_type
7515 }
7516
7517 fn p_next(&self) -> *const std::ffi::c_void {
7518 self.p_next.cast_const()
7519 }
7520
7521 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7522 self.p_next = p_next;
7523 }
7524
7525 fn address(&mut self) -> *mut std::ffi::c_void {
7526 std::ptr::from_mut(self).cast()
7527 }
7528}
7529
7530impl<'a> crate::construction::sealed::ChainNode
7531 for vk::PhysicalDeviceShaderDrawParametersFeatures<'a>
7532{
7533 const S_TYPE: vk::StructureType =
7534 vk::StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
7535
7536 fn s_type(&self) -> vk::StructureType {
7537 self.s_type
7538 }
7539
7540 fn p_next(&self) -> *const std::ffi::c_void {
7541 self.p_next.cast_const()
7542 }
7543
7544 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7545 self.p_next = p_next;
7546 }
7547
7548 fn address(&mut self) -> *mut std::ffi::c_void {
7549 std::ptr::from_mut(self).cast()
7550 }
7551}
7552
7553impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7554 for vk::PhysicalDeviceShaderDrawParametersFeatures<'a>
7555{
7556}
7557
7558impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7559 for vk::PhysicalDeviceShaderDrawParametersFeatures<'a>
7560{
7561}
7562
7563impl<'a> crate::construction::sealed::ChainNode
7564 for vk::PhysicalDeviceShaderFloat16Int8Features<'a>
7565{
7566 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
7567
7568 fn s_type(&self) -> vk::StructureType {
7569 self.s_type
7570 }
7571
7572 fn p_next(&self) -> *const std::ffi::c_void {
7573 self.p_next.cast_const()
7574 }
7575
7576 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7577 self.p_next = p_next;
7578 }
7579
7580 fn address(&mut self) -> *mut std::ffi::c_void {
7581 std::ptr::from_mut(self).cast()
7582 }
7583}
7584
7585impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7586 for vk::PhysicalDeviceShaderFloat16Int8Features<'a>
7587{
7588}
7589
7590impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7591 for vk::PhysicalDeviceShaderFloat16Int8Features<'a>
7592{
7593}
7594
7595impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFloatControlsProperties<'a> {
7596 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
7597
7598 fn s_type(&self) -> vk::StructureType {
7599 self.s_type
7600 }
7601
7602 fn p_next(&self) -> *const std::ffi::c_void {
7603 self.p_next.cast_const()
7604 }
7605
7606 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7607 self.p_next = p_next;
7608 }
7609
7610 fn address(&mut self) -> *mut std::ffi::c_void {
7611 std::ptr::from_mut(self).cast()
7612 }
7613}
7614
7615impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
7616 for vk::PhysicalDeviceFloatControlsProperties<'a>
7617{
7618}
7619
7620impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceHostQueryResetFeatures<'a> {
7621 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
7622
7623 fn s_type(&self) -> vk::StructureType {
7624 self.s_type
7625 }
7626
7627 fn p_next(&self) -> *const std::ffi::c_void {
7628 self.p_next.cast_const()
7629 }
7630
7631 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7632 self.p_next = p_next;
7633 }
7634
7635 fn address(&mut self) -> *mut std::ffi::c_void {
7636 std::ptr::from_mut(self).cast()
7637 }
7638}
7639
7640impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7641 for vk::PhysicalDeviceHostQueryResetFeatures<'a>
7642{
7643}
7644
7645impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7646 for vk::PhysicalDeviceHostQueryResetFeatures<'a>
7647{
7648}
7649
7650impl<'a> crate::construction::sealed::ChainNode
7651 for vk::PhysicalDeviceElapsedTimerQueryFeaturesQCOM<'a>
7652{
7653 const S_TYPE: vk::StructureType =
7654 vk::StructureType::PHYSICAL_DEVICE_ELAPSED_TIMER_QUERY_FEATURES_QCOM;
7655
7656 fn s_type(&self) -> vk::StructureType {
7657 self.s_type
7658 }
7659
7660 fn p_next(&self) -> *const std::ffi::c_void {
7661 self.p_next.cast_const()
7662 }
7663
7664 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7665 self.p_next = p_next;
7666 }
7667
7668 fn address(&mut self) -> *mut std::ffi::c_void {
7669 std::ptr::from_mut(self).cast()
7670 }
7671}
7672
7673impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7674 for vk::PhysicalDeviceElapsedTimerQueryFeaturesQCOM<'a>
7675{
7676}
7677
7678impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7679 for vk::PhysicalDeviceElapsedTimerQueryFeaturesQCOM<'a>
7680{
7681}
7682
7683impl<'a> crate::construction::sealed::ChainNode for vk::DeviceQueueGlobalPriorityCreateInfo<'a> {
7684 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO;
7685
7686 fn s_type(&self) -> vk::StructureType {
7687 self.s_type
7688 }
7689
7690 fn p_next(&self) -> *const std::ffi::c_void {
7691 self.p_next
7692 }
7693
7694 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7695 self.p_next = p_next.cast_const();
7696 }
7697
7698 fn address(&mut self) -> *mut std::ffi::c_void {
7699 std::ptr::from_mut(self).cast()
7700 }
7701}
7702
7703impl<'a, 'root> crate::Extends<vk::DeviceQueueCreateInfo<'root>>
7704 for vk::DeviceQueueGlobalPriorityCreateInfo<'a>
7705{
7706}
7707
7708impl<'a> crate::construction::sealed::ChainNode
7709 for vk::PhysicalDeviceGlobalPriorityQueryFeatures<'a>
7710{
7711 const S_TYPE: vk::StructureType =
7712 vk::StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES;
7713
7714 fn s_type(&self) -> vk::StructureType {
7715 self.s_type
7716 }
7717
7718 fn p_next(&self) -> *const std::ffi::c_void {
7719 self.p_next.cast_const()
7720 }
7721
7722 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7723 self.p_next = p_next;
7724 }
7725
7726 fn address(&mut self) -> *mut std::ffi::c_void {
7727 std::ptr::from_mut(self).cast()
7728 }
7729}
7730
7731impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7732 for vk::PhysicalDeviceGlobalPriorityQueryFeatures<'a>
7733{
7734}
7735
7736impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7737 for vk::PhysicalDeviceGlobalPriorityQueryFeatures<'a>
7738{
7739}
7740
7741impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyGlobalPriorityProperties<'a> {
7742 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES;
7743
7744 fn s_type(&self) -> vk::StructureType {
7745 self.s_type
7746 }
7747
7748 fn p_next(&self) -> *const std::ffi::c_void {
7749 self.p_next.cast_const()
7750 }
7751
7752 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7753 self.p_next = p_next;
7754 }
7755
7756 fn address(&mut self) -> *mut std::ffi::c_void {
7757 std::ptr::from_mut(self).cast()
7758 }
7759}
7760
7761impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
7762 for vk::QueueFamilyGlobalPriorityProperties<'a>
7763{
7764}
7765
7766impl<'a> crate::construction::sealed::ChainNode for vk::DebugUtilsObjectNameInfoEXT<'a> {
7767 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
7768
7769 fn s_type(&self) -> vk::StructureType {
7770 self.s_type
7771 }
7772
7773 fn p_next(&self) -> *const std::ffi::c_void {
7774 self.p_next
7775 }
7776
7777 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7778 self.p_next = p_next.cast_const();
7779 }
7780
7781 fn address(&mut self) -> *mut std::ffi::c_void {
7782 std::ptr::from_mut(self).cast()
7783 }
7784}
7785
7786impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
7787 for vk::DebugUtilsObjectNameInfoEXT<'a>
7788{
7789}
7790
7791impl<'a, 'root> crate::Extends<vk::ResourceDescriptorInfoEXT<'root>>
7792 for vk::DebugUtilsObjectNameInfoEXT<'a>
7793{
7794}
7795
7796impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
7797 for vk::DebugUtilsObjectNameInfoEXT<'a>
7798{
7799}
7800
7801impl<'a> crate::construction::sealed::ChainNode for vk::DebugUtilsObjectTagInfoEXT<'a> {
7802 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
7803
7804 fn s_type(&self) -> vk::StructureType {
7805 self.s_type
7806 }
7807
7808 fn p_next(&self) -> *const std::ffi::c_void {
7809 self.p_next
7810 }
7811
7812 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7813 self.p_next = p_next.cast_const();
7814 }
7815
7816 fn address(&mut self) -> *mut std::ffi::c_void {
7817 std::ptr::from_mut(self).cast()
7818 }
7819}
7820
7821impl<'a> crate::construction::sealed::ChainNode for vk::DebugUtilsLabelEXT<'a> {
7822 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_UTILS_LABEL_EXT;
7823
7824 fn s_type(&self) -> vk::StructureType {
7825 self.s_type
7826 }
7827
7828 fn p_next(&self) -> *const std::ffi::c_void {
7829 self.p_next
7830 }
7831
7832 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7833 self.p_next = p_next.cast_const();
7834 }
7835
7836 fn address(&mut self) -> *mut std::ffi::c_void {
7837 std::ptr::from_mut(self).cast()
7838 }
7839}
7840
7841impl<'a> crate::construction::sealed::ChainNode for vk::DebugUtilsMessengerCreateInfoEXT<'a> {
7842 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
7843
7844 fn s_type(&self) -> vk::StructureType {
7845 self.s_type
7846 }
7847
7848 fn p_next(&self) -> *const std::ffi::c_void {
7849 self.p_next
7850 }
7851
7852 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7853 self.p_next = p_next.cast_const();
7854 }
7855
7856 fn address(&mut self) -> *mut std::ffi::c_void {
7857 std::ptr::from_mut(self).cast()
7858 }
7859}
7860
7861impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>>
7862 for vk::DebugUtilsMessengerCreateInfoEXT<'a>
7863{
7864}
7865
7866impl<'a> crate::construction::sealed::ChainNode for vk::DebugUtilsMessengerCallbackDataEXT<'a> {
7867 const S_TYPE: vk::StructureType = vk::StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
7868
7869 fn s_type(&self) -> vk::StructureType {
7870 self.s_type
7871 }
7872
7873 fn p_next(&self) -> *const std::ffi::c_void {
7874 self.p_next
7875 }
7876
7877 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7878 self.p_next = p_next.cast_const();
7879 }
7880
7881 fn address(&mut self) -> *mut std::ffi::c_void {
7882 std::ptr::from_mut(self).cast()
7883 }
7884}
7885
7886impl<'a> crate::construction::sealed::ChainNode
7887 for vk::PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a>
7888{
7889 const S_TYPE: vk::StructureType =
7890 vk::StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
7891
7892 fn s_type(&self) -> vk::StructureType {
7893 self.s_type
7894 }
7895
7896 fn p_next(&self) -> *const std::ffi::c_void {
7897 self.p_next.cast_const()
7898 }
7899
7900 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7901 self.p_next = p_next;
7902 }
7903
7904 fn address(&mut self) -> *mut std::ffi::c_void {
7905 std::ptr::from_mut(self).cast()
7906 }
7907}
7908
7909impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
7910 for vk::PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a>
7911{
7912}
7913
7914impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7915 for vk::PhysicalDeviceDeviceMemoryReportFeaturesEXT<'a>
7916{
7917}
7918
7919impl<'a> crate::construction::sealed::ChainNode for vk::DeviceDeviceMemoryReportCreateInfoEXT<'a> {
7920 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
7921
7922 fn s_type(&self) -> vk::StructureType {
7923 self.s_type
7924 }
7925
7926 fn p_next(&self) -> *const std::ffi::c_void {
7927 self.p_next
7928 }
7929
7930 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7931 self.p_next = p_next.cast_const();
7932 }
7933
7934 fn address(&mut self) -> *mut std::ffi::c_void {
7935 std::ptr::from_mut(self).cast()
7936 }
7937}
7938
7939impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
7940 for vk::DeviceDeviceMemoryReportCreateInfoEXT<'a>
7941{
7942}
7943
7944impl<'a> crate::construction::sealed::ChainNode for vk::DeviceMemoryReportCallbackDataEXT<'a> {
7945 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
7946
7947 fn s_type(&self) -> vk::StructureType {
7948 self.s_type
7949 }
7950
7951 fn p_next(&self) -> *const std::ffi::c_void {
7952 self.p_next.cast_const()
7953 }
7954
7955 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7956 self.p_next = p_next;
7957 }
7958
7959 fn address(&mut self) -> *mut std::ffi::c_void {
7960 std::ptr::from_mut(self).cast()
7961 }
7962}
7963
7964impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryHostPointerInfoEXT<'a> {
7965 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
7966
7967 fn s_type(&self) -> vk::StructureType {
7968 self.s_type
7969 }
7970
7971 fn p_next(&self) -> *const std::ffi::c_void {
7972 self.p_next
7973 }
7974
7975 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
7976 self.p_next = p_next.cast_const();
7977 }
7978
7979 fn address(&mut self) -> *mut std::ffi::c_void {
7980 std::ptr::from_mut(self).cast()
7981 }
7982}
7983
7984impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
7985 for vk::ImportMemoryHostPointerInfoEXT<'a>
7986{
7987}
7988
7989impl<'a> crate::construction::sealed::ChainNode for vk::MemoryHostPointerPropertiesEXT<'a> {
7990 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_HOST_POINTER_PROPERTIES_EXT;
7991
7992 fn s_type(&self) -> vk::StructureType {
7993 self.s_type
7994 }
7995
7996 fn p_next(&self) -> *const std::ffi::c_void {
7997 self.p_next.cast_const()
7998 }
7999
8000 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8001 self.p_next = p_next;
8002 }
8003
8004 fn address(&mut self) -> *mut std::ffi::c_void {
8005 std::ptr::from_mut(self).cast()
8006 }
8007}
8008
8009impl<'a> crate::construction::sealed::ChainNode
8010 for vk::PhysicalDeviceExternalMemoryHostPropertiesEXT<'a>
8011{
8012 const S_TYPE: vk::StructureType =
8013 vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
8014
8015 fn s_type(&self) -> vk::StructureType {
8016 self.s_type
8017 }
8018
8019 fn p_next(&self) -> *const std::ffi::c_void {
8020 self.p_next.cast_const()
8021 }
8022
8023 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8024 self.p_next = p_next;
8025 }
8026
8027 fn address(&mut self) -> *mut std::ffi::c_void {
8028 std::ptr::from_mut(self).cast()
8029 }
8030}
8031
8032impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8033 for vk::PhysicalDeviceExternalMemoryHostPropertiesEXT<'a>
8034{
8035}
8036
8037impl<'a> crate::construction::sealed::ChainNode
8038 for vk::PhysicalDeviceConservativeRasterizationPropertiesEXT<'a>
8039{
8040 const S_TYPE: vk::StructureType =
8041 vk::StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
8042
8043 fn s_type(&self) -> vk::StructureType {
8044 self.s_type
8045 }
8046
8047 fn p_next(&self) -> *const std::ffi::c_void {
8048 self.p_next.cast_const()
8049 }
8050
8051 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8052 self.p_next = p_next;
8053 }
8054
8055 fn address(&mut self) -> *mut std::ffi::c_void {
8056 std::ptr::from_mut(self).cast()
8057 }
8058}
8059
8060impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8061 for vk::PhysicalDeviceConservativeRasterizationPropertiesEXT<'a>
8062{
8063}
8064
8065impl<'a> crate::construction::sealed::ChainNode for vk::CalibratedTimestampInfoKHR<'a> {
8066 const S_TYPE: vk::StructureType = vk::StructureType::CALIBRATED_TIMESTAMP_INFO_KHR;
8067
8068 fn s_type(&self) -> vk::StructureType {
8069 self.s_type
8070 }
8071
8072 fn p_next(&self) -> *const std::ffi::c_void {
8073 self.p_next
8074 }
8075
8076 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8077 self.p_next = p_next.cast_const();
8078 }
8079
8080 fn address(&mut self) -> *mut std::ffi::c_void {
8081 std::ptr::from_mut(self).cast()
8082 }
8083}
8084
8085impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderCorePropertiesAMD<'a> {
8086 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
8087
8088 fn s_type(&self) -> vk::StructureType {
8089 self.s_type
8090 }
8091
8092 fn p_next(&self) -> *const std::ffi::c_void {
8093 self.p_next.cast_const()
8094 }
8095
8096 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8097 self.p_next = p_next;
8098 }
8099
8100 fn address(&mut self) -> *mut std::ffi::c_void {
8101 std::ptr::from_mut(self).cast()
8102 }
8103}
8104
8105impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8106 for vk::PhysicalDeviceShaderCorePropertiesAMD<'a>
8107{
8108}
8109
8110impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderCoreProperties2AMD<'a> {
8111 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
8112
8113 fn s_type(&self) -> vk::StructureType {
8114 self.s_type
8115 }
8116
8117 fn p_next(&self) -> *const std::ffi::c_void {
8118 self.p_next.cast_const()
8119 }
8120
8121 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8122 self.p_next = p_next;
8123 }
8124
8125 fn address(&mut self) -> *mut std::ffi::c_void {
8126 std::ptr::from_mut(self).cast()
8127 }
8128}
8129
8130impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8131 for vk::PhysicalDeviceShaderCoreProperties2AMD<'a>
8132{
8133}
8134
8135impl<'a> crate::construction::sealed::ChainNode
8136 for vk::PipelineRasterizationConservativeStateCreateInfoEXT<'a>
8137{
8138 const S_TYPE: vk::StructureType =
8139 vk::StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
8140
8141 fn s_type(&self) -> vk::StructureType {
8142 self.s_type
8143 }
8144
8145 fn p_next(&self) -> *const std::ffi::c_void {
8146 self.p_next
8147 }
8148
8149 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8150 self.p_next = p_next.cast_const();
8151 }
8152
8153 fn address(&mut self) -> *mut std::ffi::c_void {
8154 std::ptr::from_mut(self).cast()
8155 }
8156}
8157
8158impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
8159 for vk::PipelineRasterizationConservativeStateCreateInfoEXT<'a>
8160{
8161}
8162
8163impl<'a> crate::construction::sealed::ChainNode
8164 for vk::PhysicalDeviceDescriptorIndexingFeatures<'a>
8165{
8166 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
8167
8168 fn s_type(&self) -> vk::StructureType {
8169 self.s_type
8170 }
8171
8172 fn p_next(&self) -> *const std::ffi::c_void {
8173 self.p_next.cast_const()
8174 }
8175
8176 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8177 self.p_next = p_next;
8178 }
8179
8180 fn address(&mut self) -> *mut std::ffi::c_void {
8181 std::ptr::from_mut(self).cast()
8182 }
8183}
8184
8185impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
8186 for vk::PhysicalDeviceDescriptorIndexingFeatures<'a>
8187{
8188}
8189
8190impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
8191 for vk::PhysicalDeviceDescriptorIndexingFeatures<'a>
8192{
8193}
8194
8195impl<'a> crate::construction::sealed::ChainNode
8196 for vk::PhysicalDeviceDescriptorIndexingProperties<'a>
8197{
8198 const S_TYPE: vk::StructureType =
8199 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
8200
8201 fn s_type(&self) -> vk::StructureType {
8202 self.s_type
8203 }
8204
8205 fn p_next(&self) -> *const std::ffi::c_void {
8206 self.p_next.cast_const()
8207 }
8208
8209 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8210 self.p_next = p_next;
8211 }
8212
8213 fn address(&mut self) -> *mut std::ffi::c_void {
8214 std::ptr::from_mut(self).cast()
8215 }
8216}
8217
8218impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8219 for vk::PhysicalDeviceDescriptorIndexingProperties<'a>
8220{
8221}
8222
8223impl<'a> crate::construction::sealed::ChainNode
8224 for vk::DescriptorSetLayoutBindingFlagsCreateInfo<'a>
8225{
8226 const S_TYPE: vk::StructureType =
8227 vk::StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
8228
8229 fn s_type(&self) -> vk::StructureType {
8230 self.s_type
8231 }
8232
8233 fn p_next(&self) -> *const std::ffi::c_void {
8234 self.p_next
8235 }
8236
8237 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8238 self.p_next = p_next.cast_const();
8239 }
8240
8241 fn address(&mut self) -> *mut std::ffi::c_void {
8242 std::ptr::from_mut(self).cast()
8243 }
8244}
8245
8246impl<'a, 'root> crate::Extends<vk::DescriptorSetLayoutCreateInfo<'root>>
8247 for vk::DescriptorSetLayoutBindingFlagsCreateInfo<'a>
8248{
8249}
8250
8251impl<'a> crate::construction::sealed::ChainNode
8252 for vk::DescriptorSetVariableDescriptorCountAllocateInfo<'a>
8253{
8254 const S_TYPE: vk::StructureType =
8255 vk::StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
8256
8257 fn s_type(&self) -> vk::StructureType {
8258 self.s_type
8259 }
8260
8261 fn p_next(&self) -> *const std::ffi::c_void {
8262 self.p_next
8263 }
8264
8265 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8266 self.p_next = p_next.cast_const();
8267 }
8268
8269 fn address(&mut self) -> *mut std::ffi::c_void {
8270 std::ptr::from_mut(self).cast()
8271 }
8272}
8273
8274impl<'a, 'root> crate::Extends<vk::DescriptorSetAllocateInfo<'root>>
8275 for vk::DescriptorSetVariableDescriptorCountAllocateInfo<'a>
8276{
8277}
8278
8279impl<'a> crate::construction::sealed::ChainNode
8280 for vk::DescriptorSetVariableDescriptorCountLayoutSupport<'a>
8281{
8282 const S_TYPE: vk::StructureType =
8283 vk::StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
8284
8285 fn s_type(&self) -> vk::StructureType {
8286 self.s_type
8287 }
8288
8289 fn p_next(&self) -> *const std::ffi::c_void {
8290 self.p_next.cast_const()
8291 }
8292
8293 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8294 self.p_next = p_next;
8295 }
8296
8297 fn address(&mut self) -> *mut std::ffi::c_void {
8298 std::ptr::from_mut(self).cast()
8299 }
8300}
8301
8302impl<'a, 'root> crate::Extends<vk::DescriptorSetLayoutSupport<'root>>
8303 for vk::DescriptorSetVariableDescriptorCountLayoutSupport<'a>
8304{
8305}
8306
8307impl<'a> crate::construction::sealed::ChainNode for vk::AttachmentDescription2<'a> {
8308 const S_TYPE: vk::StructureType = vk::StructureType::ATTACHMENT_DESCRIPTION_2;
8309
8310 fn s_type(&self) -> vk::StructureType {
8311 self.s_type
8312 }
8313
8314 fn p_next(&self) -> *const std::ffi::c_void {
8315 self.p_next
8316 }
8317
8318 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8319 self.p_next = p_next.cast_const();
8320 }
8321
8322 fn address(&mut self) -> *mut std::ffi::c_void {
8323 std::ptr::from_mut(self).cast()
8324 }
8325}
8326
8327impl<'a> crate::construction::sealed::ChainNode for vk::AttachmentReference2<'a> {
8328 const S_TYPE: vk::StructureType = vk::StructureType::ATTACHMENT_REFERENCE_2;
8329
8330 fn s_type(&self) -> vk::StructureType {
8331 self.s_type
8332 }
8333
8334 fn p_next(&self) -> *const std::ffi::c_void {
8335 self.p_next
8336 }
8337
8338 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8339 self.p_next = p_next.cast_const();
8340 }
8341
8342 fn address(&mut self) -> *mut std::ffi::c_void {
8343 std::ptr::from_mut(self).cast()
8344 }
8345}
8346
8347impl<'a> crate::construction::sealed::ChainNode for vk::SubpassDescription2<'a> {
8348 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_DESCRIPTION_2;
8349
8350 fn s_type(&self) -> vk::StructureType {
8351 self.s_type
8352 }
8353
8354 fn p_next(&self) -> *const std::ffi::c_void {
8355 self.p_next
8356 }
8357
8358 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8359 self.p_next = p_next.cast_const();
8360 }
8361
8362 fn address(&mut self) -> *mut std::ffi::c_void {
8363 std::ptr::from_mut(self).cast()
8364 }
8365}
8366
8367impl<'a> crate::construction::sealed::ChainNode for vk::SubpassDependency2<'a> {
8368 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_DEPENDENCY_2;
8369
8370 fn s_type(&self) -> vk::StructureType {
8371 self.s_type
8372 }
8373
8374 fn p_next(&self) -> *const std::ffi::c_void {
8375 self.p_next
8376 }
8377
8378 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8379 self.p_next = p_next.cast_const();
8380 }
8381
8382 fn address(&mut self) -> *mut std::ffi::c_void {
8383 std::ptr::from_mut(self).cast()
8384 }
8385}
8386
8387impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassCreateInfo2<'a> {
8388 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_CREATE_INFO_2;
8389
8390 fn s_type(&self) -> vk::StructureType {
8391 self.s_type
8392 }
8393
8394 fn p_next(&self) -> *const std::ffi::c_void {
8395 self.p_next
8396 }
8397
8398 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8399 self.p_next = p_next.cast_const();
8400 }
8401
8402 fn address(&mut self) -> *mut std::ffi::c_void {
8403 std::ptr::from_mut(self).cast()
8404 }
8405}
8406
8407impl<'a> crate::construction::sealed::ChainNode for vk::SubpassBeginInfo<'a> {
8408 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_BEGIN_INFO;
8409
8410 fn s_type(&self) -> vk::StructureType {
8411 self.s_type
8412 }
8413
8414 fn p_next(&self) -> *const std::ffi::c_void {
8415 self.p_next
8416 }
8417
8418 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8419 self.p_next = p_next.cast_const();
8420 }
8421
8422 fn address(&mut self) -> *mut std::ffi::c_void {
8423 std::ptr::from_mut(self).cast()
8424 }
8425}
8426
8427impl<'a> crate::construction::sealed::ChainNode for vk::SubpassEndInfo<'a> {
8428 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_END_INFO;
8429
8430 fn s_type(&self) -> vk::StructureType {
8431 self.s_type
8432 }
8433
8434 fn p_next(&self) -> *const std::ffi::c_void {
8435 self.p_next
8436 }
8437
8438 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8439 self.p_next = p_next.cast_const();
8440 }
8441
8442 fn address(&mut self) -> *mut std::ffi::c_void {
8443 std::ptr::from_mut(self).cast()
8444 }
8445}
8446
8447impl<'a> crate::construction::sealed::ChainNode
8448 for vk::PhysicalDeviceTimelineSemaphoreFeatures<'a>
8449{
8450 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
8451
8452 fn s_type(&self) -> vk::StructureType {
8453 self.s_type
8454 }
8455
8456 fn p_next(&self) -> *const std::ffi::c_void {
8457 self.p_next.cast_const()
8458 }
8459
8460 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8461 self.p_next = p_next;
8462 }
8463
8464 fn address(&mut self) -> *mut std::ffi::c_void {
8465 std::ptr::from_mut(self).cast()
8466 }
8467}
8468
8469impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
8470 for vk::PhysicalDeviceTimelineSemaphoreFeatures<'a>
8471{
8472}
8473
8474impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
8475 for vk::PhysicalDeviceTimelineSemaphoreFeatures<'a>
8476{
8477}
8478
8479impl<'a> crate::construction::sealed::ChainNode
8480 for vk::PhysicalDeviceTimelineSemaphoreProperties<'a>
8481{
8482 const S_TYPE: vk::StructureType =
8483 vk::StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
8484
8485 fn s_type(&self) -> vk::StructureType {
8486 self.s_type
8487 }
8488
8489 fn p_next(&self) -> *const std::ffi::c_void {
8490 self.p_next.cast_const()
8491 }
8492
8493 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8494 self.p_next = p_next;
8495 }
8496
8497 fn address(&mut self) -> *mut std::ffi::c_void {
8498 std::ptr::from_mut(self).cast()
8499 }
8500}
8501
8502impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8503 for vk::PhysicalDeviceTimelineSemaphoreProperties<'a>
8504{
8505}
8506
8507impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreTypeCreateInfo<'a> {
8508 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_TYPE_CREATE_INFO;
8509
8510 fn s_type(&self) -> vk::StructureType {
8511 self.s_type
8512 }
8513
8514 fn p_next(&self) -> *const std::ffi::c_void {
8515 self.p_next
8516 }
8517
8518 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8519 self.p_next = p_next.cast_const();
8520 }
8521
8522 fn address(&mut self) -> *mut std::ffi::c_void {
8523 std::ptr::from_mut(self).cast()
8524 }
8525}
8526
8527impl<'a, 'root> crate::Extends<vk::SemaphoreCreateInfo<'root>> for vk::SemaphoreTypeCreateInfo<'a> {}
8528
8529impl<'a, 'root> crate::Extends<vk::PhysicalDeviceExternalSemaphoreInfo<'root>>
8530 for vk::SemaphoreTypeCreateInfo<'a>
8531{
8532}
8533
8534impl<'a> crate::construction::sealed::ChainNode for vk::TimelineSemaphoreSubmitInfo<'a> {
8535 const S_TYPE: vk::StructureType = vk::StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO;
8536
8537 fn s_type(&self) -> vk::StructureType {
8538 self.s_type
8539 }
8540
8541 fn p_next(&self) -> *const std::ffi::c_void {
8542 self.p_next
8543 }
8544
8545 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8546 self.p_next = p_next.cast_const();
8547 }
8548
8549 fn address(&mut self) -> *mut std::ffi::c_void {
8550 std::ptr::from_mut(self).cast()
8551 }
8552}
8553
8554impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::TimelineSemaphoreSubmitInfo<'a> {}
8555
8556impl<'a, 'root> crate::Extends<vk::BindSparseInfo<'root>> for vk::TimelineSemaphoreSubmitInfo<'a> {}
8557
8558impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreWaitInfo<'a> {
8559 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_WAIT_INFO;
8560
8561 fn s_type(&self) -> vk::StructureType {
8562 self.s_type
8563 }
8564
8565 fn p_next(&self) -> *const std::ffi::c_void {
8566 self.p_next
8567 }
8568
8569 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8570 self.p_next = p_next.cast_const();
8571 }
8572
8573 fn address(&mut self) -> *mut std::ffi::c_void {
8574 std::ptr::from_mut(self).cast()
8575 }
8576}
8577
8578impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreSignalInfo<'a> {
8579 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_SIGNAL_INFO;
8580
8581 fn s_type(&self) -> vk::StructureType {
8582 self.s_type
8583 }
8584
8585 fn p_next(&self) -> *const std::ffi::c_void {
8586 self.p_next
8587 }
8588
8589 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8590 self.p_next = p_next.cast_const();
8591 }
8592
8593 fn address(&mut self) -> *mut std::ffi::c_void {
8594 std::ptr::from_mut(self).cast()
8595 }
8596}
8597
8598impl<'a> crate::construction::sealed::ChainNode
8599 for vk::PipelineVertexInputDivisorStateCreateInfo<'a>
8600{
8601 const S_TYPE: vk::StructureType =
8602 vk::StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO;
8603
8604 fn s_type(&self) -> vk::StructureType {
8605 self.s_type
8606 }
8607
8608 fn p_next(&self) -> *const std::ffi::c_void {
8609 self.p_next
8610 }
8611
8612 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8613 self.p_next = p_next.cast_const();
8614 }
8615
8616 fn address(&mut self) -> *mut std::ffi::c_void {
8617 std::ptr::from_mut(self).cast()
8618 }
8619}
8620
8621impl<'a, 'root> crate::Extends<vk::PipelineVertexInputStateCreateInfo<'root>>
8622 for vk::PipelineVertexInputDivisorStateCreateInfo<'a>
8623{
8624}
8625
8626impl<'a> crate::construction::sealed::ChainNode
8627 for vk::PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a>
8628{
8629 const S_TYPE: vk::StructureType =
8630 vk::StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
8631
8632 fn s_type(&self) -> vk::StructureType {
8633 self.s_type
8634 }
8635
8636 fn p_next(&self) -> *const std::ffi::c_void {
8637 self.p_next.cast_const()
8638 }
8639
8640 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8641 self.p_next = p_next;
8642 }
8643
8644 fn address(&mut self) -> *mut std::ffi::c_void {
8645 std::ptr::from_mut(self).cast()
8646 }
8647}
8648
8649impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8650 for vk::PhysicalDeviceVertexAttributeDivisorPropertiesEXT<'a>
8651{
8652}
8653
8654impl<'a> crate::construction::sealed::ChainNode
8655 for vk::PhysicalDeviceVertexAttributeDivisorProperties<'a>
8656{
8657 const S_TYPE: vk::StructureType =
8658 vk::StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES;
8659
8660 fn s_type(&self) -> vk::StructureType {
8661 self.s_type
8662 }
8663
8664 fn p_next(&self) -> *const std::ffi::c_void {
8665 self.p_next.cast_const()
8666 }
8667
8668 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8669 self.p_next = p_next;
8670 }
8671
8672 fn address(&mut self) -> *mut std::ffi::c_void {
8673 std::ptr::from_mut(self).cast()
8674 }
8675}
8676
8677impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8678 for vk::PhysicalDeviceVertexAttributeDivisorProperties<'a>
8679{
8680}
8681
8682impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePCIBusInfoPropertiesEXT<'a> {
8683 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
8684
8685 fn s_type(&self) -> vk::StructureType {
8686 self.s_type
8687 }
8688
8689 fn p_next(&self) -> *const std::ffi::c_void {
8690 self.p_next.cast_const()
8691 }
8692
8693 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8694 self.p_next = p_next;
8695 }
8696
8697 fn address(&mut self) -> *mut std::ffi::c_void {
8698 std::ptr::from_mut(self).cast()
8699 }
8700}
8701
8702impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
8703 for vk::PhysicalDevicePCIBusInfoPropertiesEXT<'a>
8704{
8705}
8706
8707#[cfg(feature = "platform-android")]
8708impl<'a> crate::construction::sealed::ChainNode for vk::ImportAndroidHardwareBufferInfoANDROID<'a> {
8709 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
8710
8711 fn s_type(&self) -> vk::StructureType {
8712 self.s_type
8713 }
8714
8715 fn p_next(&self) -> *const std::ffi::c_void {
8716 self.p_next
8717 }
8718
8719 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8720 self.p_next = p_next.cast_const();
8721 }
8722
8723 fn address(&mut self) -> *mut std::ffi::c_void {
8724 std::ptr::from_mut(self).cast()
8725 }
8726}
8727
8728#[cfg(feature = "platform-android")]
8729impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
8730 for vk::ImportAndroidHardwareBufferInfoANDROID<'a>
8731{
8732}
8733
8734#[cfg(feature = "platform-android")]
8735impl<'a> crate::construction::sealed::ChainNode for vk::AndroidHardwareBufferUsageANDROID<'a> {
8736 const S_TYPE: vk::StructureType = vk::StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
8737
8738 fn s_type(&self) -> vk::StructureType {
8739 self.s_type
8740 }
8741
8742 fn p_next(&self) -> *const std::ffi::c_void {
8743 self.p_next.cast_const()
8744 }
8745
8746 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8747 self.p_next = p_next;
8748 }
8749
8750 fn address(&mut self) -> *mut std::ffi::c_void {
8751 std::ptr::from_mut(self).cast()
8752 }
8753}
8754
8755#[cfg(feature = "platform-android")]
8756impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
8757 for vk::AndroidHardwareBufferUsageANDROID<'a>
8758{
8759}
8760
8761#[cfg(feature = "platform-android")]
8762impl<'a> crate::construction::sealed::ChainNode for vk::AndroidHardwareBufferPropertiesANDROID<'a> {
8763 const S_TYPE: vk::StructureType = vk::StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
8764
8765 fn s_type(&self) -> vk::StructureType {
8766 self.s_type
8767 }
8768
8769 fn p_next(&self) -> *const std::ffi::c_void {
8770 self.p_next.cast_const()
8771 }
8772
8773 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8774 self.p_next = p_next;
8775 }
8776
8777 fn address(&mut self) -> *mut std::ffi::c_void {
8778 std::ptr::from_mut(self).cast()
8779 }
8780}
8781
8782#[cfg(feature = "platform-android")]
8783impl<'a> crate::construction::sealed::ChainNode
8784 for vk::MemoryGetAndroidHardwareBufferInfoANDROID<'a>
8785{
8786 const S_TYPE: vk::StructureType =
8787 vk::StructureType::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
8788
8789 fn s_type(&self) -> vk::StructureType {
8790 self.s_type
8791 }
8792
8793 fn p_next(&self) -> *const std::ffi::c_void {
8794 self.p_next
8795 }
8796
8797 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8798 self.p_next = p_next.cast_const();
8799 }
8800
8801 fn address(&mut self) -> *mut std::ffi::c_void {
8802 std::ptr::from_mut(self).cast()
8803 }
8804}
8805
8806#[cfg(feature = "platform-android")]
8807impl<'a> crate::construction::sealed::ChainNode
8808 for vk::AndroidHardwareBufferFormatPropertiesANDROID<'a>
8809{
8810 const S_TYPE: vk::StructureType =
8811 vk::StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
8812
8813 fn s_type(&self) -> vk::StructureType {
8814 self.s_type
8815 }
8816
8817 fn p_next(&self) -> *const std::ffi::c_void {
8818 self.p_next.cast_const()
8819 }
8820
8821 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8822 self.p_next = p_next;
8823 }
8824
8825 fn address(&mut self) -> *mut std::ffi::c_void {
8826 std::ptr::from_mut(self).cast()
8827 }
8828}
8829
8830#[cfg(feature = "platform-android")]
8831impl<'a, 'root> crate::Extends<vk::AndroidHardwareBufferPropertiesANDROID<'root>>
8832 for vk::AndroidHardwareBufferFormatPropertiesANDROID<'a>
8833{
8834}
8835
8836impl<'a> crate::construction::sealed::ChainNode
8837 for vk::CommandBufferInheritanceConditionalRenderingInfoEXT<'a>
8838{
8839 const S_TYPE: vk::StructureType =
8840 vk::StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
8841
8842 fn s_type(&self) -> vk::StructureType {
8843 self.s_type
8844 }
8845
8846 fn p_next(&self) -> *const std::ffi::c_void {
8847 self.p_next
8848 }
8849
8850 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8851 self.p_next = p_next.cast_const();
8852 }
8853
8854 fn address(&mut self) -> *mut std::ffi::c_void {
8855 std::ptr::from_mut(self).cast()
8856 }
8857}
8858
8859impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
8860 for vk::CommandBufferInheritanceConditionalRenderingInfoEXT<'a>
8861{
8862}
8863
8864#[cfg(feature = "platform-android")]
8865impl<'a> crate::construction::sealed::ChainNode for vk::ExternalFormatANDROID<'a> {
8866 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_FORMAT_ANDROID;
8867
8868 fn s_type(&self) -> vk::StructureType {
8869 self.s_type
8870 }
8871
8872 fn p_next(&self) -> *const std::ffi::c_void {
8873 self.p_next.cast_const()
8874 }
8875
8876 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8877 self.p_next = p_next;
8878 }
8879
8880 fn address(&mut self) -> *mut std::ffi::c_void {
8881 std::ptr::from_mut(self).cast()
8882 }
8883}
8884
8885#[cfg(feature = "platform-android")]
8886impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ExternalFormatANDROID<'a> {}
8887
8888#[cfg(feature = "platform-android")]
8889impl<'a, 'root> crate::Extends<vk::SamplerYcbcrConversionCreateInfo<'root>>
8890 for vk::ExternalFormatANDROID<'a>
8891{
8892}
8893
8894#[cfg(feature = "platform-android")]
8895impl<'a, 'root> crate::Extends<vk::AttachmentDescription2<'root>>
8896 for vk::ExternalFormatANDROID<'a>
8897{
8898}
8899
8900#[cfg(feature = "platform-android")]
8901impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
8902 for vk::ExternalFormatANDROID<'a>
8903{
8904}
8905
8906#[cfg(feature = "platform-android")]
8907impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
8908 for vk::ExternalFormatANDROID<'a>
8909{
8910}
8911
8912impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevice8BitStorageFeatures<'a> {
8913 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
8914
8915 fn s_type(&self) -> vk::StructureType {
8916 self.s_type
8917 }
8918
8919 fn p_next(&self) -> *const std::ffi::c_void {
8920 self.p_next.cast_const()
8921 }
8922
8923 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8924 self.p_next = p_next;
8925 }
8926
8927 fn address(&mut self) -> *mut std::ffi::c_void {
8928 std::ptr::from_mut(self).cast()
8929 }
8930}
8931
8932impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
8933 for vk::PhysicalDevice8BitStorageFeatures<'a>
8934{
8935}
8936
8937impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
8938 for vk::PhysicalDevice8BitStorageFeatures<'a>
8939{
8940}
8941
8942impl<'a> crate::construction::sealed::ChainNode
8943 for vk::PhysicalDeviceConditionalRenderingFeaturesEXT<'a>
8944{
8945 const S_TYPE: vk::StructureType =
8946 vk::StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
8947
8948 fn s_type(&self) -> vk::StructureType {
8949 self.s_type
8950 }
8951
8952 fn p_next(&self) -> *const std::ffi::c_void {
8953 self.p_next.cast_const()
8954 }
8955
8956 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8957 self.p_next = p_next;
8958 }
8959
8960 fn address(&mut self) -> *mut std::ffi::c_void {
8961 std::ptr::from_mut(self).cast()
8962 }
8963}
8964
8965impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
8966 for vk::PhysicalDeviceConditionalRenderingFeaturesEXT<'a>
8967{
8968}
8969
8970impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
8971 for vk::PhysicalDeviceConditionalRenderingFeaturesEXT<'a>
8972{
8973}
8974
8975impl<'a> crate::construction::sealed::ChainNode
8976 for vk::PhysicalDeviceVulkanMemoryModelFeatures<'a>
8977{
8978 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
8979
8980 fn s_type(&self) -> vk::StructureType {
8981 self.s_type
8982 }
8983
8984 fn p_next(&self) -> *const std::ffi::c_void {
8985 self.p_next.cast_const()
8986 }
8987
8988 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
8989 self.p_next = p_next;
8990 }
8991
8992 fn address(&mut self) -> *mut std::ffi::c_void {
8993 std::ptr::from_mut(self).cast()
8994 }
8995}
8996
8997impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
8998 for vk::PhysicalDeviceVulkanMemoryModelFeatures<'a>
8999{
9000}
9001
9002impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9003 for vk::PhysicalDeviceVulkanMemoryModelFeatures<'a>
9004{
9005}
9006
9007impl<'a> crate::construction::sealed::ChainNode
9008 for vk::PhysicalDeviceShaderAtomicInt64Features<'a>
9009{
9010 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
9011
9012 fn s_type(&self) -> vk::StructureType {
9013 self.s_type
9014 }
9015
9016 fn p_next(&self) -> *const std::ffi::c_void {
9017 self.p_next.cast_const()
9018 }
9019
9020 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9021 self.p_next = p_next;
9022 }
9023
9024 fn address(&mut self) -> *mut std::ffi::c_void {
9025 std::ptr::from_mut(self).cast()
9026 }
9027}
9028
9029impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9030 for vk::PhysicalDeviceShaderAtomicInt64Features<'a>
9031{
9032}
9033
9034impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9035 for vk::PhysicalDeviceShaderAtomicInt64Features<'a>
9036{
9037}
9038
9039impl<'a> crate::construction::sealed::ChainNode
9040 for vk::PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a>
9041{
9042 const S_TYPE: vk::StructureType =
9043 vk::StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
9044
9045 fn s_type(&self) -> vk::StructureType {
9046 self.s_type
9047 }
9048
9049 fn p_next(&self) -> *const std::ffi::c_void {
9050 self.p_next.cast_const()
9051 }
9052
9053 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9054 self.p_next = p_next;
9055 }
9056
9057 fn address(&mut self) -> *mut std::ffi::c_void {
9058 std::ptr::from_mut(self).cast()
9059 }
9060}
9061
9062impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9063 for vk::PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a>
9064{
9065}
9066
9067impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9068 for vk::PhysicalDeviceShaderAtomicFloatFeaturesEXT<'a>
9069{
9070}
9071
9072impl<'a> crate::construction::sealed::ChainNode
9073 for vk::PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a>
9074{
9075 const S_TYPE: vk::StructureType =
9076 vk::StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
9077
9078 fn s_type(&self) -> vk::StructureType {
9079 self.s_type
9080 }
9081
9082 fn p_next(&self) -> *const std::ffi::c_void {
9083 self.p_next.cast_const()
9084 }
9085
9086 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9087 self.p_next = p_next;
9088 }
9089
9090 fn address(&mut self) -> *mut std::ffi::c_void {
9091 std::ptr::from_mut(self).cast()
9092 }
9093}
9094
9095impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9096 for vk::PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a>
9097{
9098}
9099
9100impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9101 for vk::PhysicalDeviceShaderAtomicFloat2FeaturesEXT<'a>
9102{
9103}
9104
9105impl<'a> crate::construction::sealed::ChainNode
9106 for vk::PhysicalDeviceVertexAttributeDivisorFeatures<'a>
9107{
9108 const S_TYPE: vk::StructureType =
9109 vk::StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES;
9110
9111 fn s_type(&self) -> vk::StructureType {
9112 self.s_type
9113 }
9114
9115 fn p_next(&self) -> *const std::ffi::c_void {
9116 self.p_next.cast_const()
9117 }
9118
9119 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9120 self.p_next = p_next;
9121 }
9122
9123 fn address(&mut self) -> *mut std::ffi::c_void {
9124 std::ptr::from_mut(self).cast()
9125 }
9126}
9127
9128impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9129 for vk::PhysicalDeviceVertexAttributeDivisorFeatures<'a>
9130{
9131}
9132
9133impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9134 for vk::PhysicalDeviceVertexAttributeDivisorFeatures<'a>
9135{
9136}
9137
9138impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyCheckpointPropertiesNV<'a> {
9139 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
9140
9141 fn s_type(&self) -> vk::StructureType {
9142 self.s_type
9143 }
9144
9145 fn p_next(&self) -> *const std::ffi::c_void {
9146 self.p_next.cast_const()
9147 }
9148
9149 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9150 self.p_next = p_next;
9151 }
9152
9153 fn address(&mut self) -> *mut std::ffi::c_void {
9154 std::ptr::from_mut(self).cast()
9155 }
9156}
9157
9158impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
9159 for vk::QueueFamilyCheckpointPropertiesNV<'a>
9160{
9161}
9162
9163impl<'a> crate::construction::sealed::ChainNode for vk::CheckpointDataNV<'a> {
9164 const S_TYPE: vk::StructureType = vk::StructureType::CHECKPOINT_DATA_NV;
9165
9166 fn s_type(&self) -> vk::StructureType {
9167 self.s_type
9168 }
9169
9170 fn p_next(&self) -> *const std::ffi::c_void {
9171 self.p_next.cast_const()
9172 }
9173
9174 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9175 self.p_next = p_next;
9176 }
9177
9178 fn address(&mut self) -> *mut std::ffi::c_void {
9179 std::ptr::from_mut(self).cast()
9180 }
9181}
9182
9183impl<'a> crate::construction::sealed::ChainNode
9184 for vk::PhysicalDeviceDepthStencilResolveProperties<'a>
9185{
9186 const S_TYPE: vk::StructureType =
9187 vk::StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
9188
9189 fn s_type(&self) -> vk::StructureType {
9190 self.s_type
9191 }
9192
9193 fn p_next(&self) -> *const std::ffi::c_void {
9194 self.p_next.cast_const()
9195 }
9196
9197 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9198 self.p_next = p_next;
9199 }
9200
9201 fn address(&mut self) -> *mut std::ffi::c_void {
9202 std::ptr::from_mut(self).cast()
9203 }
9204}
9205
9206impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
9207 for vk::PhysicalDeviceDepthStencilResolveProperties<'a>
9208{
9209}
9210
9211impl<'a> crate::construction::sealed::ChainNode for vk::SubpassDescriptionDepthStencilResolve<'a> {
9212 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
9213
9214 fn s_type(&self) -> vk::StructureType {
9215 self.s_type
9216 }
9217
9218 fn p_next(&self) -> *const std::ffi::c_void {
9219 self.p_next
9220 }
9221
9222 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9223 self.p_next = p_next.cast_const();
9224 }
9225
9226 fn address(&mut self) -> *mut std::ffi::c_void {
9227 std::ptr::from_mut(self).cast()
9228 }
9229}
9230
9231impl<'a, 'root> crate::Extends<vk::SubpassDescription2<'root>>
9232 for vk::SubpassDescriptionDepthStencilResolve<'a>
9233{
9234}
9235
9236impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewASTCDecodeModeEXT<'a> {
9237 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
9238
9239 fn s_type(&self) -> vk::StructureType {
9240 self.s_type
9241 }
9242
9243 fn p_next(&self) -> *const std::ffi::c_void {
9244 self.p_next
9245 }
9246
9247 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9248 self.p_next = p_next.cast_const();
9249 }
9250
9251 fn address(&mut self) -> *mut std::ffi::c_void {
9252 std::ptr::from_mut(self).cast()
9253 }
9254}
9255
9256impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
9257 for vk::ImageViewASTCDecodeModeEXT<'a>
9258{
9259}
9260
9261impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceASTCDecodeFeaturesEXT<'a> {
9262 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
9263
9264 fn s_type(&self) -> vk::StructureType {
9265 self.s_type
9266 }
9267
9268 fn p_next(&self) -> *const std::ffi::c_void {
9269 self.p_next.cast_const()
9270 }
9271
9272 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9273 self.p_next = p_next;
9274 }
9275
9276 fn address(&mut self) -> *mut std::ffi::c_void {
9277 std::ptr::from_mut(self).cast()
9278 }
9279}
9280
9281impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9282 for vk::PhysicalDeviceASTCDecodeFeaturesEXT<'a>
9283{
9284}
9285
9286impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9287 for vk::PhysicalDeviceASTCDecodeFeaturesEXT<'a>
9288{
9289}
9290
9291impl<'a> crate::construction::sealed::ChainNode
9292 for vk::PhysicalDeviceTransformFeedbackFeaturesEXT<'a>
9293{
9294 const S_TYPE: vk::StructureType =
9295 vk::StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
9296
9297 fn s_type(&self) -> vk::StructureType {
9298 self.s_type
9299 }
9300
9301 fn p_next(&self) -> *const std::ffi::c_void {
9302 self.p_next.cast_const()
9303 }
9304
9305 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9306 self.p_next = p_next;
9307 }
9308
9309 fn address(&mut self) -> *mut std::ffi::c_void {
9310 std::ptr::from_mut(self).cast()
9311 }
9312}
9313
9314impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9315 for vk::PhysicalDeviceTransformFeedbackFeaturesEXT<'a>
9316{
9317}
9318
9319impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9320 for vk::PhysicalDeviceTransformFeedbackFeaturesEXT<'a>
9321{
9322}
9323
9324impl<'a> crate::construction::sealed::ChainNode
9325 for vk::PhysicalDeviceTransformFeedbackPropertiesEXT<'a>
9326{
9327 const S_TYPE: vk::StructureType =
9328 vk::StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
9329
9330 fn s_type(&self) -> vk::StructureType {
9331 self.s_type
9332 }
9333
9334 fn p_next(&self) -> *const std::ffi::c_void {
9335 self.p_next.cast_const()
9336 }
9337
9338 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9339 self.p_next = p_next;
9340 }
9341
9342 fn address(&mut self) -> *mut std::ffi::c_void {
9343 std::ptr::from_mut(self).cast()
9344 }
9345}
9346
9347impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
9348 for vk::PhysicalDeviceTransformFeedbackPropertiesEXT<'a>
9349{
9350}
9351
9352impl<'a> crate::construction::sealed::ChainNode
9353 for vk::PipelineRasterizationStateStreamCreateInfoEXT<'a>
9354{
9355 const S_TYPE: vk::StructureType =
9356 vk::StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
9357
9358 fn s_type(&self) -> vk::StructureType {
9359 self.s_type
9360 }
9361
9362 fn p_next(&self) -> *const std::ffi::c_void {
9363 self.p_next
9364 }
9365
9366 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9367 self.p_next = p_next.cast_const();
9368 }
9369
9370 fn address(&mut self) -> *mut std::ffi::c_void {
9371 std::ptr::from_mut(self).cast()
9372 }
9373}
9374
9375impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
9376 for vk::PipelineRasterizationStateStreamCreateInfoEXT<'a>
9377{
9378}
9379
9380impl<'a> crate::construction::sealed::ChainNode
9381 for vk::PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a>
9382{
9383 const S_TYPE: vk::StructureType =
9384 vk::StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
9385
9386 fn s_type(&self) -> vk::StructureType {
9387 self.s_type
9388 }
9389
9390 fn p_next(&self) -> *const std::ffi::c_void {
9391 self.p_next.cast_const()
9392 }
9393
9394 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9395 self.p_next = p_next;
9396 }
9397
9398 fn address(&mut self) -> *mut std::ffi::c_void {
9399 std::ptr::from_mut(self).cast()
9400 }
9401}
9402
9403impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9404 for vk::PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a>
9405{
9406}
9407
9408impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9409 for vk::PhysicalDeviceRepresentativeFragmentTestFeaturesNV<'a>
9410{
9411}
9412
9413impl<'a> crate::construction::sealed::ChainNode
9414 for vk::PipelineRepresentativeFragmentTestStateCreateInfoNV<'a>
9415{
9416 const S_TYPE: vk::StructureType =
9417 vk::StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
9418
9419 fn s_type(&self) -> vk::StructureType {
9420 self.s_type
9421 }
9422
9423 fn p_next(&self) -> *const std::ffi::c_void {
9424 self.p_next
9425 }
9426
9427 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9428 self.p_next = p_next.cast_const();
9429 }
9430
9431 fn address(&mut self) -> *mut std::ffi::c_void {
9432 std::ptr::from_mut(self).cast()
9433 }
9434}
9435
9436impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
9437 for vk::PipelineRepresentativeFragmentTestStateCreateInfoNV<'a>
9438{
9439}
9440
9441impl<'a> crate::construction::sealed::ChainNode
9442 for vk::PhysicalDeviceExclusiveScissorFeaturesNV<'a>
9443{
9444 const S_TYPE: vk::StructureType =
9445 vk::StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
9446
9447 fn s_type(&self) -> vk::StructureType {
9448 self.s_type
9449 }
9450
9451 fn p_next(&self) -> *const std::ffi::c_void {
9452 self.p_next.cast_const()
9453 }
9454
9455 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9456 self.p_next = p_next;
9457 }
9458
9459 fn address(&mut self) -> *mut std::ffi::c_void {
9460 std::ptr::from_mut(self).cast()
9461 }
9462}
9463
9464impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9465 for vk::PhysicalDeviceExclusiveScissorFeaturesNV<'a>
9466{
9467}
9468
9469impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9470 for vk::PhysicalDeviceExclusiveScissorFeaturesNV<'a>
9471{
9472}
9473
9474impl<'a> crate::construction::sealed::ChainNode
9475 for vk::PipelineViewportExclusiveScissorStateCreateInfoNV<'a>
9476{
9477 const S_TYPE: vk::StructureType =
9478 vk::StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
9479
9480 fn s_type(&self) -> vk::StructureType {
9481 self.s_type
9482 }
9483
9484 fn p_next(&self) -> *const std::ffi::c_void {
9485 self.p_next
9486 }
9487
9488 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9489 self.p_next = p_next.cast_const();
9490 }
9491
9492 fn address(&mut self) -> *mut std::ffi::c_void {
9493 std::ptr::from_mut(self).cast()
9494 }
9495}
9496
9497impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
9498 for vk::PipelineViewportExclusiveScissorStateCreateInfoNV<'a>
9499{
9500}
9501
9502impl<'a> crate::construction::sealed::ChainNode
9503 for vk::PhysicalDeviceCornerSampledImageFeaturesNV<'a>
9504{
9505 const S_TYPE: vk::StructureType =
9506 vk::StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
9507
9508 fn s_type(&self) -> vk::StructureType {
9509 self.s_type
9510 }
9511
9512 fn p_next(&self) -> *const std::ffi::c_void {
9513 self.p_next.cast_const()
9514 }
9515
9516 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9517 self.p_next = p_next;
9518 }
9519
9520 fn address(&mut self) -> *mut std::ffi::c_void {
9521 std::ptr::from_mut(self).cast()
9522 }
9523}
9524
9525impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9526 for vk::PhysicalDeviceCornerSampledImageFeaturesNV<'a>
9527{
9528}
9529
9530impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9531 for vk::PhysicalDeviceCornerSampledImageFeaturesNV<'a>
9532{
9533}
9534
9535impl<'a> crate::construction::sealed::ChainNode
9536 for vk::PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a>
9537{
9538 const S_TYPE: vk::StructureType =
9539 vk::StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR;
9540
9541 fn s_type(&self) -> vk::StructureType {
9542 self.s_type
9543 }
9544
9545 fn p_next(&self) -> *const std::ffi::c_void {
9546 self.p_next.cast_const()
9547 }
9548
9549 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9550 self.p_next = p_next;
9551 }
9552
9553 fn address(&mut self) -> *mut std::ffi::c_void {
9554 std::ptr::from_mut(self).cast()
9555 }
9556}
9557
9558impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9559 for vk::PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a>
9560{
9561}
9562
9563impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9564 for vk::PhysicalDeviceComputeShaderDerivativesFeaturesKHR<'a>
9565{
9566}
9567
9568impl<'a> crate::construction::sealed::ChainNode
9569 for vk::PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a>
9570{
9571 const S_TYPE: vk::StructureType =
9572 vk::StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR;
9573
9574 fn s_type(&self) -> vk::StructureType {
9575 self.s_type
9576 }
9577
9578 fn p_next(&self) -> *const std::ffi::c_void {
9579 self.p_next.cast_const()
9580 }
9581
9582 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9583 self.p_next = p_next;
9584 }
9585
9586 fn address(&mut self) -> *mut std::ffi::c_void {
9587 std::ptr::from_mut(self).cast()
9588 }
9589}
9590
9591impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
9592 for vk::PhysicalDeviceComputeShaderDerivativesPropertiesKHR<'a>
9593{
9594}
9595
9596impl<'a> crate::construction::sealed::ChainNode
9597 for vk::PhysicalDeviceShaderImageFootprintFeaturesNV<'a>
9598{
9599 const S_TYPE: vk::StructureType =
9600 vk::StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
9601
9602 fn s_type(&self) -> vk::StructureType {
9603 self.s_type
9604 }
9605
9606 fn p_next(&self) -> *const std::ffi::c_void {
9607 self.p_next.cast_const()
9608 }
9609
9610 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9611 self.p_next = p_next;
9612 }
9613
9614 fn address(&mut self) -> *mut std::ffi::c_void {
9615 std::ptr::from_mut(self).cast()
9616 }
9617}
9618
9619impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9620 for vk::PhysicalDeviceShaderImageFootprintFeaturesNV<'a>
9621{
9622}
9623
9624impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9625 for vk::PhysicalDeviceShaderImageFootprintFeaturesNV<'a>
9626{
9627}
9628
9629impl<'a> crate::construction::sealed::ChainNode
9630 for vk::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a>
9631{
9632 const S_TYPE: vk::StructureType =
9633 vk::StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
9634
9635 fn s_type(&self) -> vk::StructureType {
9636 self.s_type
9637 }
9638
9639 fn p_next(&self) -> *const std::ffi::c_void {
9640 self.p_next.cast_const()
9641 }
9642
9643 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9644 self.p_next = p_next;
9645 }
9646
9647 fn address(&mut self) -> *mut std::ffi::c_void {
9648 std::ptr::from_mut(self).cast()
9649 }
9650}
9651
9652impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9653 for vk::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a>
9654{
9655}
9656
9657impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9658 for vk::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<'a>
9659{
9660}
9661
9662impl<'a> crate::construction::sealed::ChainNode
9663 for vk::PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'a>
9664{
9665 const S_TYPE: vk::StructureType =
9666 vk::StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR;
9667
9668 fn s_type(&self) -> vk::StructureType {
9669 self.s_type
9670 }
9671
9672 fn p_next(&self) -> *const std::ffi::c_void {
9673 self.p_next.cast_const()
9674 }
9675
9676 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9677 self.p_next = p_next;
9678 }
9679
9680 fn address(&mut self) -> *mut std::ffi::c_void {
9681 std::ptr::from_mut(self).cast()
9682 }
9683}
9684
9685impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9686 for vk::PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'a>
9687{
9688}
9689
9690impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9691 for vk::PhysicalDeviceCopyMemoryIndirectFeaturesKHR<'a>
9692{
9693}
9694
9695impl<'a> crate::construction::sealed::ChainNode
9696 for vk::PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a>
9697{
9698 const S_TYPE: vk::StructureType =
9699 vk::StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV;
9700
9701 fn s_type(&self) -> vk::StructureType {
9702 self.s_type
9703 }
9704
9705 fn p_next(&self) -> *const std::ffi::c_void {
9706 self.p_next.cast_const()
9707 }
9708
9709 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9710 self.p_next = p_next;
9711 }
9712
9713 fn address(&mut self) -> *mut std::ffi::c_void {
9714 std::ptr::from_mut(self).cast()
9715 }
9716}
9717
9718impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9719 for vk::PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a>
9720{
9721}
9722
9723impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9724 for vk::PhysicalDeviceCopyMemoryIndirectFeaturesNV<'a>
9725{
9726}
9727
9728impl<'a> crate::construction::sealed::ChainNode
9729 for vk::PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'a>
9730{
9731 const S_TYPE: vk::StructureType =
9732 vk::StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR;
9733
9734 fn s_type(&self) -> vk::StructureType {
9735 self.s_type
9736 }
9737
9738 fn p_next(&self) -> *const std::ffi::c_void {
9739 self.p_next.cast_const()
9740 }
9741
9742 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9743 self.p_next = p_next;
9744 }
9745
9746 fn address(&mut self) -> *mut std::ffi::c_void {
9747 std::ptr::from_mut(self).cast()
9748 }
9749}
9750
9751impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
9752 for vk::PhysicalDeviceCopyMemoryIndirectPropertiesKHR<'a>
9753{
9754}
9755
9756impl<'a> crate::construction::sealed::ChainNode
9757 for vk::PhysicalDeviceMemoryDecompressionFeaturesEXT<'a>
9758{
9759 const S_TYPE: vk::StructureType =
9760 vk::StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT;
9761
9762 fn s_type(&self) -> vk::StructureType {
9763 self.s_type
9764 }
9765
9766 fn p_next(&self) -> *const std::ffi::c_void {
9767 self.p_next.cast_const()
9768 }
9769
9770 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9771 self.p_next = p_next;
9772 }
9773
9774 fn address(&mut self) -> *mut std::ffi::c_void {
9775 std::ptr::from_mut(self).cast()
9776 }
9777}
9778
9779impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9780 for vk::PhysicalDeviceMemoryDecompressionFeaturesEXT<'a>
9781{
9782}
9783
9784impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9785 for vk::PhysicalDeviceMemoryDecompressionFeaturesEXT<'a>
9786{
9787}
9788
9789impl<'a> crate::construction::sealed::ChainNode
9790 for vk::PhysicalDeviceMemoryDecompressionPropertiesEXT<'a>
9791{
9792 const S_TYPE: vk::StructureType =
9793 vk::StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT;
9794
9795 fn s_type(&self) -> vk::StructureType {
9796 self.s_type
9797 }
9798
9799 fn p_next(&self) -> *const std::ffi::c_void {
9800 self.p_next.cast_const()
9801 }
9802
9803 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9804 self.p_next = p_next;
9805 }
9806
9807 fn address(&mut self) -> *mut std::ffi::c_void {
9808 std::ptr::from_mut(self).cast()
9809 }
9810}
9811
9812impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
9813 for vk::PhysicalDeviceMemoryDecompressionPropertiesEXT<'a>
9814{
9815}
9816
9817impl<'a> crate::construction::sealed::ChainNode
9818 for vk::PipelineViewportShadingRateImageStateCreateInfoNV<'a>
9819{
9820 const S_TYPE: vk::StructureType =
9821 vk::StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
9822
9823 fn s_type(&self) -> vk::StructureType {
9824 self.s_type
9825 }
9826
9827 fn p_next(&self) -> *const std::ffi::c_void {
9828 self.p_next
9829 }
9830
9831 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9832 self.p_next = p_next.cast_const();
9833 }
9834
9835 fn address(&mut self) -> *mut std::ffi::c_void {
9836 std::ptr::from_mut(self).cast()
9837 }
9838}
9839
9840impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
9841 for vk::PipelineViewportShadingRateImageStateCreateInfoNV<'a>
9842{
9843}
9844
9845impl<'a> crate::construction::sealed::ChainNode
9846 for vk::PhysicalDeviceShadingRateImageFeaturesNV<'a>
9847{
9848 const S_TYPE: vk::StructureType =
9849 vk::StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
9850
9851 fn s_type(&self) -> vk::StructureType {
9852 self.s_type
9853 }
9854
9855 fn p_next(&self) -> *const std::ffi::c_void {
9856 self.p_next.cast_const()
9857 }
9858
9859 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9860 self.p_next = p_next;
9861 }
9862
9863 fn address(&mut self) -> *mut std::ffi::c_void {
9864 std::ptr::from_mut(self).cast()
9865 }
9866}
9867
9868impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9869 for vk::PhysicalDeviceShadingRateImageFeaturesNV<'a>
9870{
9871}
9872
9873impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9874 for vk::PhysicalDeviceShadingRateImageFeaturesNV<'a>
9875{
9876}
9877
9878impl<'a> crate::construction::sealed::ChainNode
9879 for vk::PhysicalDeviceShadingRateImagePropertiesNV<'a>
9880{
9881 const S_TYPE: vk::StructureType =
9882 vk::StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
9883
9884 fn s_type(&self) -> vk::StructureType {
9885 self.s_type
9886 }
9887
9888 fn p_next(&self) -> *const std::ffi::c_void {
9889 self.p_next.cast_const()
9890 }
9891
9892 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9893 self.p_next = p_next;
9894 }
9895
9896 fn address(&mut self) -> *mut std::ffi::c_void {
9897 std::ptr::from_mut(self).cast()
9898 }
9899}
9900
9901impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
9902 for vk::PhysicalDeviceShadingRateImagePropertiesNV<'a>
9903{
9904}
9905
9906impl<'a> crate::construction::sealed::ChainNode
9907 for vk::PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a>
9908{
9909 const S_TYPE: vk::StructureType =
9910 vk::StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI;
9911
9912 fn s_type(&self) -> vk::StructureType {
9913 self.s_type
9914 }
9915
9916 fn p_next(&self) -> *const std::ffi::c_void {
9917 self.p_next.cast_const()
9918 }
9919
9920 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9921 self.p_next = p_next;
9922 }
9923
9924 fn address(&mut self) -> *mut std::ffi::c_void {
9925 std::ptr::from_mut(self).cast()
9926 }
9927}
9928
9929impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9930 for vk::PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a>
9931{
9932}
9933
9934impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9935 for vk::PhysicalDeviceInvocationMaskFeaturesHUAWEI<'a>
9936{
9937}
9938
9939impl<'a> crate::construction::sealed::ChainNode
9940 for vk::PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a>
9941{
9942 const S_TYPE: vk::StructureType =
9943 vk::StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
9944
9945 fn s_type(&self) -> vk::StructureType {
9946 self.s_type
9947 }
9948
9949 fn p_next(&self) -> *const std::ffi::c_void {
9950 self.p_next
9951 }
9952
9953 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9954 self.p_next = p_next.cast_const();
9955 }
9956
9957 fn address(&mut self) -> *mut std::ffi::c_void {
9958 std::ptr::from_mut(self).cast()
9959 }
9960}
9961
9962impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
9963 for vk::PipelineViewportCoarseSampleOrderStateCreateInfoNV<'a>
9964{
9965}
9966
9967impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMeshShaderFeaturesNV<'a> {
9968 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
9969
9970 fn s_type(&self) -> vk::StructureType {
9971 self.s_type
9972 }
9973
9974 fn p_next(&self) -> *const std::ffi::c_void {
9975 self.p_next.cast_const()
9976 }
9977
9978 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
9979 self.p_next = p_next;
9980 }
9981
9982 fn address(&mut self) -> *mut std::ffi::c_void {
9983 std::ptr::from_mut(self).cast()
9984 }
9985}
9986
9987impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
9988 for vk::PhysicalDeviceMeshShaderFeaturesNV<'a>
9989{
9990}
9991
9992impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
9993 for vk::PhysicalDeviceMeshShaderFeaturesNV<'a>
9994{
9995}
9996
9997impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMeshShaderPropertiesNV<'a> {
9998 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
9999
10000 fn s_type(&self) -> vk::StructureType {
10001 self.s_type
10002 }
10003
10004 fn p_next(&self) -> *const std::ffi::c_void {
10005 self.p_next.cast_const()
10006 }
10007
10008 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10009 self.p_next = p_next;
10010 }
10011
10012 fn address(&mut self) -> *mut std::ffi::c_void {
10013 std::ptr::from_mut(self).cast()
10014 }
10015}
10016
10017impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10018 for vk::PhysicalDeviceMeshShaderPropertiesNV<'a>
10019{
10020}
10021
10022impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMeshShaderFeaturesEXT<'a> {
10023 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT;
10024
10025 fn s_type(&self) -> vk::StructureType {
10026 self.s_type
10027 }
10028
10029 fn p_next(&self) -> *const std::ffi::c_void {
10030 self.p_next.cast_const()
10031 }
10032
10033 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10034 self.p_next = p_next;
10035 }
10036
10037 fn address(&mut self) -> *mut std::ffi::c_void {
10038 std::ptr::from_mut(self).cast()
10039 }
10040}
10041
10042impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10043 for vk::PhysicalDeviceMeshShaderFeaturesEXT<'a>
10044{
10045}
10046
10047impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10048 for vk::PhysicalDeviceMeshShaderFeaturesEXT<'a>
10049{
10050}
10051
10052impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceMeshShaderPropertiesEXT<'a> {
10053 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT;
10054
10055 fn s_type(&self) -> vk::StructureType {
10056 self.s_type
10057 }
10058
10059 fn p_next(&self) -> *const std::ffi::c_void {
10060 self.p_next.cast_const()
10061 }
10062
10063 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10064 self.p_next = p_next;
10065 }
10066
10067 fn address(&mut self) -> *mut std::ffi::c_void {
10068 std::ptr::from_mut(self).cast()
10069 }
10070}
10071
10072impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10073 for vk::PhysicalDeviceMeshShaderPropertiesEXT<'a>
10074{
10075}
10076
10077impl<'a> crate::construction::sealed::ChainNode for vk::RayTracingShaderGroupCreateInfoNV<'a> {
10078 const S_TYPE: vk::StructureType = vk::StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
10079
10080 fn s_type(&self) -> vk::StructureType {
10081 self.s_type
10082 }
10083
10084 fn p_next(&self) -> *const std::ffi::c_void {
10085 self.p_next
10086 }
10087
10088 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10089 self.p_next = p_next.cast_const();
10090 }
10091
10092 fn address(&mut self) -> *mut std::ffi::c_void {
10093 std::ptr::from_mut(self).cast()
10094 }
10095}
10096
10097impl<'a> crate::construction::sealed::ChainNode for vk::RayTracingShaderGroupCreateInfoKHR<'a> {
10098 const S_TYPE: vk::StructureType = vk::StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
10099
10100 fn s_type(&self) -> vk::StructureType {
10101 self.s_type
10102 }
10103
10104 fn p_next(&self) -> *const std::ffi::c_void {
10105 self.p_next
10106 }
10107
10108 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10109 self.p_next = p_next.cast_const();
10110 }
10111
10112 fn address(&mut self) -> *mut std::ffi::c_void {
10113 std::ptr::from_mut(self).cast()
10114 }
10115}
10116
10117impl<'a> crate::construction::sealed::ChainNode for vk::RayTracingPipelineCreateInfoNV<'a> {
10118 const S_TYPE: vk::StructureType = vk::StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV;
10119
10120 fn s_type(&self) -> vk::StructureType {
10121 self.s_type
10122 }
10123
10124 fn p_next(&self) -> *const std::ffi::c_void {
10125 self.p_next
10126 }
10127
10128 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10129 self.p_next = p_next.cast_const();
10130 }
10131
10132 fn address(&mut self) -> *mut std::ffi::c_void {
10133 std::ptr::from_mut(self).cast()
10134 }
10135}
10136
10137impl<'a> crate::construction::sealed::ChainNode for vk::RayTracingPipelineCreateInfoKHR<'a> {
10138 const S_TYPE: vk::StructureType = vk::StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
10139
10140 fn s_type(&self) -> vk::StructureType {
10141 self.s_type
10142 }
10143
10144 fn p_next(&self) -> *const std::ffi::c_void {
10145 self.p_next
10146 }
10147
10148 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10149 self.p_next = p_next.cast_const();
10150 }
10151
10152 fn address(&mut self) -> *mut std::ffi::c_void {
10153 std::ptr::from_mut(self).cast()
10154 }
10155}
10156
10157impl<'a, 'root> crate::Extends<vk::PipelineCreateInfoKHR<'root>>
10158 for vk::RayTracingPipelineCreateInfoKHR<'a>
10159{
10160}
10161
10162impl<'a> crate::construction::sealed::ChainNode for vk::GeometryTrianglesNV<'a> {
10163 const S_TYPE: vk::StructureType = vk::StructureType::GEOMETRY_TRIANGLES_NV;
10164
10165 fn s_type(&self) -> vk::StructureType {
10166 self.s_type
10167 }
10168
10169 fn p_next(&self) -> *const std::ffi::c_void {
10170 self.p_next
10171 }
10172
10173 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10174 self.p_next = p_next.cast_const();
10175 }
10176
10177 fn address(&mut self) -> *mut std::ffi::c_void {
10178 std::ptr::from_mut(self).cast()
10179 }
10180}
10181
10182impl<'a> crate::construction::sealed::ChainNode for vk::GeometryAABBNV<'a> {
10183 const S_TYPE: vk::StructureType = vk::StructureType::GEOMETRY_AABB_NV;
10184
10185 fn s_type(&self) -> vk::StructureType {
10186 self.s_type
10187 }
10188
10189 fn p_next(&self) -> *const std::ffi::c_void {
10190 self.p_next
10191 }
10192
10193 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10194 self.p_next = p_next.cast_const();
10195 }
10196
10197 fn address(&mut self) -> *mut std::ffi::c_void {
10198 std::ptr::from_mut(self).cast()
10199 }
10200}
10201
10202impl<'a> crate::construction::sealed::ChainNode for vk::GeometryNV<'a> {
10203 const S_TYPE: vk::StructureType = vk::StructureType::GEOMETRY_NV;
10204
10205 fn s_type(&self) -> vk::StructureType {
10206 self.s_type
10207 }
10208
10209 fn p_next(&self) -> *const std::ffi::c_void {
10210 self.p_next
10211 }
10212
10213 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10214 self.p_next = p_next.cast_const();
10215 }
10216
10217 fn address(&mut self) -> *mut std::ffi::c_void {
10218 std::ptr::from_mut(self).cast()
10219 }
10220}
10221
10222impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureInfoNV<'a> {
10223 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_INFO_NV;
10224
10225 fn s_type(&self) -> vk::StructureType {
10226 self.s_type
10227 }
10228
10229 fn p_next(&self) -> *const std::ffi::c_void {
10230 self.p_next
10231 }
10232
10233 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10234 self.p_next = p_next.cast_const();
10235 }
10236
10237 fn address(&mut self) -> *mut std::ffi::c_void {
10238 std::ptr::from_mut(self).cast()
10239 }
10240}
10241
10242impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureCreateInfoNV<'a> {
10243 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV;
10244
10245 fn s_type(&self) -> vk::StructureType {
10246 self.s_type
10247 }
10248
10249 fn p_next(&self) -> *const std::ffi::c_void {
10250 self.p_next
10251 }
10252
10253 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10254 self.p_next = p_next.cast_const();
10255 }
10256
10257 fn address(&mut self) -> *mut std::ffi::c_void {
10258 std::ptr::from_mut(self).cast()
10259 }
10260}
10261
10262impl<'a> crate::construction::sealed::ChainNode for vk::BindAccelerationStructureMemoryInfoNV<'a> {
10263 const S_TYPE: vk::StructureType = vk::StructureType::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
10264
10265 fn s_type(&self) -> vk::StructureType {
10266 self.s_type
10267 }
10268
10269 fn p_next(&self) -> *const std::ffi::c_void {
10270 self.p_next
10271 }
10272
10273 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10274 self.p_next = p_next.cast_const();
10275 }
10276
10277 fn address(&mut self) -> *mut std::ffi::c_void {
10278 std::ptr::from_mut(self).cast()
10279 }
10280}
10281
10282impl<'a> crate::construction::sealed::ChainNode
10283 for vk::WriteDescriptorSetAccelerationStructureKHR<'a>
10284{
10285 const S_TYPE: vk::StructureType =
10286 vk::StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
10287
10288 fn s_type(&self) -> vk::StructureType {
10289 self.s_type
10290 }
10291
10292 fn p_next(&self) -> *const std::ffi::c_void {
10293 self.p_next
10294 }
10295
10296 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10297 self.p_next = p_next.cast_const();
10298 }
10299
10300 fn address(&mut self) -> *mut std::ffi::c_void {
10301 std::ptr::from_mut(self).cast()
10302 }
10303}
10304
10305impl<'a, 'root> crate::Extends<vk::WriteDescriptorSet<'root>>
10306 for vk::WriteDescriptorSetAccelerationStructureKHR<'a>
10307{
10308}
10309
10310impl<'a> crate::construction::sealed::ChainNode
10311 for vk::WriteDescriptorSetAccelerationStructureNV<'a>
10312{
10313 const S_TYPE: vk::StructureType =
10314 vk::StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
10315
10316 fn s_type(&self) -> vk::StructureType {
10317 self.s_type
10318 }
10319
10320 fn p_next(&self) -> *const std::ffi::c_void {
10321 self.p_next
10322 }
10323
10324 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10325 self.p_next = p_next.cast_const();
10326 }
10327
10328 fn address(&mut self) -> *mut std::ffi::c_void {
10329 std::ptr::from_mut(self).cast()
10330 }
10331}
10332
10333impl<'a, 'root> crate::Extends<vk::WriteDescriptorSet<'root>>
10334 for vk::WriteDescriptorSetAccelerationStructureNV<'a>
10335{
10336}
10337
10338impl<'a> crate::construction::sealed::ChainNode
10339 for vk::AccelerationStructureMemoryRequirementsInfoNV<'a>
10340{
10341 const S_TYPE: vk::StructureType =
10342 vk::StructureType::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
10343
10344 fn s_type(&self) -> vk::StructureType {
10345 self.s_type
10346 }
10347
10348 fn p_next(&self) -> *const std::ffi::c_void {
10349 self.p_next
10350 }
10351
10352 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10353 self.p_next = p_next.cast_const();
10354 }
10355
10356 fn address(&mut self) -> *mut std::ffi::c_void {
10357 std::ptr::from_mut(self).cast()
10358 }
10359}
10360
10361impl<'a> crate::construction::sealed::ChainNode
10362 for vk::PhysicalDeviceAccelerationStructureFeaturesKHR<'a>
10363{
10364 const S_TYPE: vk::StructureType =
10365 vk::StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
10366
10367 fn s_type(&self) -> vk::StructureType {
10368 self.s_type
10369 }
10370
10371 fn p_next(&self) -> *const std::ffi::c_void {
10372 self.p_next.cast_const()
10373 }
10374
10375 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10376 self.p_next = p_next;
10377 }
10378
10379 fn address(&mut self) -> *mut std::ffi::c_void {
10380 std::ptr::from_mut(self).cast()
10381 }
10382}
10383
10384impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10385 for vk::PhysicalDeviceAccelerationStructureFeaturesKHR<'a>
10386{
10387}
10388
10389impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10390 for vk::PhysicalDeviceAccelerationStructureFeaturesKHR<'a>
10391{
10392}
10393
10394impl<'a> crate::construction::sealed::ChainNode
10395 for vk::PhysicalDeviceRayTracingPipelineFeaturesKHR<'a>
10396{
10397 const S_TYPE: vk::StructureType =
10398 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
10399
10400 fn s_type(&self) -> vk::StructureType {
10401 self.s_type
10402 }
10403
10404 fn p_next(&self) -> *const std::ffi::c_void {
10405 self.p_next.cast_const()
10406 }
10407
10408 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10409 self.p_next = p_next;
10410 }
10411
10412 fn address(&mut self) -> *mut std::ffi::c_void {
10413 std::ptr::from_mut(self).cast()
10414 }
10415}
10416
10417impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10418 for vk::PhysicalDeviceRayTracingPipelineFeaturesKHR<'a>
10419{
10420}
10421
10422impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10423 for vk::PhysicalDeviceRayTracingPipelineFeaturesKHR<'a>
10424{
10425}
10426
10427impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceRayQueryFeaturesKHR<'a> {
10428 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
10429
10430 fn s_type(&self) -> vk::StructureType {
10431 self.s_type
10432 }
10433
10434 fn p_next(&self) -> *const std::ffi::c_void {
10435 self.p_next.cast_const()
10436 }
10437
10438 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10439 self.p_next = p_next;
10440 }
10441
10442 fn address(&mut self) -> *mut std::ffi::c_void {
10443 std::ptr::from_mut(self).cast()
10444 }
10445}
10446
10447impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10448 for vk::PhysicalDeviceRayQueryFeaturesKHR<'a>
10449{
10450}
10451
10452impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10453 for vk::PhysicalDeviceRayQueryFeaturesKHR<'a>
10454{
10455}
10456
10457impl<'a> crate::construction::sealed::ChainNode
10458 for vk::PhysicalDeviceAccelerationStructurePropertiesKHR<'a>
10459{
10460 const S_TYPE: vk::StructureType =
10461 vk::StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
10462
10463 fn s_type(&self) -> vk::StructureType {
10464 self.s_type
10465 }
10466
10467 fn p_next(&self) -> *const std::ffi::c_void {
10468 self.p_next.cast_const()
10469 }
10470
10471 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10472 self.p_next = p_next;
10473 }
10474
10475 fn address(&mut self) -> *mut std::ffi::c_void {
10476 std::ptr::from_mut(self).cast()
10477 }
10478}
10479
10480impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10481 for vk::PhysicalDeviceAccelerationStructurePropertiesKHR<'a>
10482{
10483}
10484
10485impl<'a> crate::construction::sealed::ChainNode
10486 for vk::PhysicalDeviceRayTracingPipelinePropertiesKHR<'a>
10487{
10488 const S_TYPE: vk::StructureType =
10489 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
10490
10491 fn s_type(&self) -> vk::StructureType {
10492 self.s_type
10493 }
10494
10495 fn p_next(&self) -> *const std::ffi::c_void {
10496 self.p_next.cast_const()
10497 }
10498
10499 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10500 self.p_next = p_next;
10501 }
10502
10503 fn address(&mut self) -> *mut std::ffi::c_void {
10504 std::ptr::from_mut(self).cast()
10505 }
10506}
10507
10508impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10509 for vk::PhysicalDeviceRayTracingPipelinePropertiesKHR<'a>
10510{
10511}
10512
10513impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceRayTracingPropertiesNV<'a> {
10514 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
10515
10516 fn s_type(&self) -> vk::StructureType {
10517 self.s_type
10518 }
10519
10520 fn p_next(&self) -> *const std::ffi::c_void {
10521 self.p_next.cast_const()
10522 }
10523
10524 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10525 self.p_next = p_next;
10526 }
10527
10528 fn address(&mut self) -> *mut std::ffi::c_void {
10529 std::ptr::from_mut(self).cast()
10530 }
10531}
10532
10533impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10534 for vk::PhysicalDeviceRayTracingPropertiesNV<'a>
10535{
10536}
10537
10538impl<'a> crate::construction::sealed::ChainNode
10539 for vk::PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a>
10540{
10541 const S_TYPE: vk::StructureType =
10542 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR;
10543
10544 fn s_type(&self) -> vk::StructureType {
10545 self.s_type
10546 }
10547
10548 fn p_next(&self) -> *const std::ffi::c_void {
10549 self.p_next.cast_const()
10550 }
10551
10552 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10553 self.p_next = p_next;
10554 }
10555
10556 fn address(&mut self) -> *mut std::ffi::c_void {
10557 std::ptr::from_mut(self).cast()
10558 }
10559}
10560
10561impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10562 for vk::PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a>
10563{
10564}
10565
10566impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10567 for vk::PhysicalDeviceRayTracingMaintenance1FeaturesKHR<'a>
10568{
10569}
10570
10571impl<'a> crate::construction::sealed::ChainNode for vk::DrmFormatModifierPropertiesListEXT<'a> {
10572 const S_TYPE: vk::StructureType = vk::StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
10573
10574 fn s_type(&self) -> vk::StructureType {
10575 self.s_type
10576 }
10577
10578 fn p_next(&self) -> *const std::ffi::c_void {
10579 self.p_next.cast_const()
10580 }
10581
10582 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10583 self.p_next = p_next;
10584 }
10585
10586 fn address(&mut self) -> *mut std::ffi::c_void {
10587 std::ptr::from_mut(self).cast()
10588 }
10589}
10590
10591impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>>
10592 for vk::DrmFormatModifierPropertiesListEXT<'a>
10593{
10594}
10595
10596impl<'a> crate::construction::sealed::ChainNode
10597 for vk::PhysicalDeviceImageDrmFormatModifierInfoEXT<'a>
10598{
10599 const S_TYPE: vk::StructureType =
10600 vk::StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
10601
10602 fn s_type(&self) -> vk::StructureType {
10603 self.s_type
10604 }
10605
10606 fn p_next(&self) -> *const std::ffi::c_void {
10607 self.p_next
10608 }
10609
10610 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10611 self.p_next = p_next.cast_const();
10612 }
10613
10614 fn address(&mut self) -> *mut std::ffi::c_void {
10615 std::ptr::from_mut(self).cast()
10616 }
10617}
10618
10619impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
10620 for vk::PhysicalDeviceImageDrmFormatModifierInfoEXT<'a>
10621{
10622}
10623
10624impl<'a> crate::construction::sealed::ChainNode
10625 for vk::ImageDrmFormatModifierListCreateInfoEXT<'a>
10626{
10627 const S_TYPE: vk::StructureType =
10628 vk::StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
10629
10630 fn s_type(&self) -> vk::StructureType {
10631 self.s_type
10632 }
10633
10634 fn p_next(&self) -> *const std::ffi::c_void {
10635 self.p_next
10636 }
10637
10638 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10639 self.p_next = p_next.cast_const();
10640 }
10641
10642 fn address(&mut self) -> *mut std::ffi::c_void {
10643 std::ptr::from_mut(self).cast()
10644 }
10645}
10646
10647impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
10648 for vk::ImageDrmFormatModifierListCreateInfoEXT<'a>
10649{
10650}
10651
10652impl<'a> crate::construction::sealed::ChainNode
10653 for vk::ImageDrmFormatModifierExplicitCreateInfoEXT<'a>
10654{
10655 const S_TYPE: vk::StructureType =
10656 vk::StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
10657
10658 fn s_type(&self) -> vk::StructureType {
10659 self.s_type
10660 }
10661
10662 fn p_next(&self) -> *const std::ffi::c_void {
10663 self.p_next
10664 }
10665
10666 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10667 self.p_next = p_next.cast_const();
10668 }
10669
10670 fn address(&mut self) -> *mut std::ffi::c_void {
10671 std::ptr::from_mut(self).cast()
10672 }
10673}
10674
10675impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
10676 for vk::ImageDrmFormatModifierExplicitCreateInfoEXT<'a>
10677{
10678}
10679
10680impl<'a> crate::construction::sealed::ChainNode for vk::ImageDrmFormatModifierPropertiesEXT<'a> {
10681 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
10682
10683 fn s_type(&self) -> vk::StructureType {
10684 self.s_type
10685 }
10686
10687 fn p_next(&self) -> *const std::ffi::c_void {
10688 self.p_next.cast_const()
10689 }
10690
10691 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10692 self.p_next = p_next;
10693 }
10694
10695 fn address(&mut self) -> *mut std::ffi::c_void {
10696 std::ptr::from_mut(self).cast()
10697 }
10698}
10699
10700impl<'a> crate::construction::sealed::ChainNode for vk::ImageStencilUsageCreateInfo<'a> {
10701 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO;
10702
10703 fn s_type(&self) -> vk::StructureType {
10704 self.s_type
10705 }
10706
10707 fn p_next(&self) -> *const std::ffi::c_void {
10708 self.p_next
10709 }
10710
10711 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10712 self.p_next = p_next.cast_const();
10713 }
10714
10715 fn address(&mut self) -> *mut std::ffi::c_void {
10716 std::ptr::from_mut(self).cast()
10717 }
10718}
10719
10720impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ImageStencilUsageCreateInfo<'a> {}
10721
10722impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
10723 for vk::ImageStencilUsageCreateInfo<'a>
10724{
10725}
10726
10727impl<'a> crate::construction::sealed::ChainNode for vk::ImageStencilUsage2CreateInfoKHR<'a> {
10728 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_STENCIL_USAGE_2_CREATE_INFO_KHR;
10729
10730 fn s_type(&self) -> vk::StructureType {
10731 self.s_type
10732 }
10733
10734 fn p_next(&self) -> *const std::ffi::c_void {
10735 self.p_next.cast_const()
10736 }
10737
10738 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10739 self.p_next = p_next;
10740 }
10741
10742 fn address(&mut self) -> *mut std::ffi::c_void {
10743 std::ptr::from_mut(self).cast()
10744 }
10745}
10746
10747impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
10748 for vk::ImageStencilUsage2CreateInfoKHR<'a>
10749{
10750}
10751
10752impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
10753 for vk::ImageStencilUsage2CreateInfoKHR<'a>
10754{
10755}
10756
10757impl<'a> crate::construction::sealed::ChainNode
10758 for vk::DeviceMemoryOverallocationCreateInfoAMD<'a>
10759{
10760 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
10761
10762 fn s_type(&self) -> vk::StructureType {
10763 self.s_type
10764 }
10765
10766 fn p_next(&self) -> *const std::ffi::c_void {
10767 self.p_next
10768 }
10769
10770 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10771 self.p_next = p_next.cast_const();
10772 }
10773
10774 fn address(&mut self) -> *mut std::ffi::c_void {
10775 std::ptr::from_mut(self).cast()
10776 }
10777}
10778
10779impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10780 for vk::DeviceMemoryOverallocationCreateInfoAMD<'a>
10781{
10782}
10783
10784impl<'a> crate::construction::sealed::ChainNode
10785 for vk::PhysicalDeviceFragmentDensityMapFeaturesEXT<'a>
10786{
10787 const S_TYPE: vk::StructureType =
10788 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
10789
10790 fn s_type(&self) -> vk::StructureType {
10791 self.s_type
10792 }
10793
10794 fn p_next(&self) -> *const std::ffi::c_void {
10795 self.p_next.cast_const()
10796 }
10797
10798 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10799 self.p_next = p_next;
10800 }
10801
10802 fn address(&mut self) -> *mut std::ffi::c_void {
10803 std::ptr::from_mut(self).cast()
10804 }
10805}
10806
10807impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10808 for vk::PhysicalDeviceFragmentDensityMapFeaturesEXT<'a>
10809{
10810}
10811
10812impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10813 for vk::PhysicalDeviceFragmentDensityMapFeaturesEXT<'a>
10814{
10815}
10816
10817impl<'a> crate::construction::sealed::ChainNode
10818 for vk::PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a>
10819{
10820 const S_TYPE: vk::StructureType =
10821 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
10822
10823 fn s_type(&self) -> vk::StructureType {
10824 self.s_type
10825 }
10826
10827 fn p_next(&self) -> *const std::ffi::c_void {
10828 self.p_next.cast_const()
10829 }
10830
10831 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10832 self.p_next = p_next;
10833 }
10834
10835 fn address(&mut self) -> *mut std::ffi::c_void {
10836 std::ptr::from_mut(self).cast()
10837 }
10838}
10839
10840impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10841 for vk::PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a>
10842{
10843}
10844
10845impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10846 for vk::PhysicalDeviceFragmentDensityMap2FeaturesEXT<'a>
10847{
10848}
10849
10850impl<'a> crate::construction::sealed::ChainNode
10851 for vk::PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a>
10852{
10853 const S_TYPE: vk::StructureType =
10854 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT;
10855
10856 fn s_type(&self) -> vk::StructureType {
10857 self.s_type
10858 }
10859
10860 fn p_next(&self) -> *const std::ffi::c_void {
10861 self.p_next.cast_const()
10862 }
10863
10864 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10865 self.p_next = p_next;
10866 }
10867
10868 fn address(&mut self) -> *mut std::ffi::c_void {
10869 std::ptr::from_mut(self).cast()
10870 }
10871}
10872
10873impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
10874 for vk::PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a>
10875{
10876}
10877
10878impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
10879 for vk::PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT<'a>
10880{
10881}
10882
10883impl<'a> crate::construction::sealed::ChainNode
10884 for vk::PhysicalDeviceFragmentDensityMapPropertiesEXT<'a>
10885{
10886 const S_TYPE: vk::StructureType =
10887 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
10888
10889 fn s_type(&self) -> vk::StructureType {
10890 self.s_type
10891 }
10892
10893 fn p_next(&self) -> *const std::ffi::c_void {
10894 self.p_next.cast_const()
10895 }
10896
10897 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10898 self.p_next = p_next;
10899 }
10900
10901 fn address(&mut self) -> *mut std::ffi::c_void {
10902 std::ptr::from_mut(self).cast()
10903 }
10904}
10905
10906impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10907 for vk::PhysicalDeviceFragmentDensityMapPropertiesEXT<'a>
10908{
10909}
10910
10911impl<'a> crate::construction::sealed::ChainNode
10912 for vk::PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a>
10913{
10914 const S_TYPE: vk::StructureType =
10915 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
10916
10917 fn s_type(&self) -> vk::StructureType {
10918 self.s_type
10919 }
10920
10921 fn p_next(&self) -> *const std::ffi::c_void {
10922 self.p_next.cast_const()
10923 }
10924
10925 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10926 self.p_next = p_next;
10927 }
10928
10929 fn address(&mut self) -> *mut std::ffi::c_void {
10930 std::ptr::from_mut(self).cast()
10931 }
10932}
10933
10934impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10935 for vk::PhysicalDeviceFragmentDensityMap2PropertiesEXT<'a>
10936{
10937}
10938
10939impl<'a> crate::construction::sealed::ChainNode
10940 for vk::PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'a>
10941{
10942 const S_TYPE: vk::StructureType =
10943 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT;
10944
10945 fn s_type(&self) -> vk::StructureType {
10946 self.s_type
10947 }
10948
10949 fn p_next(&self) -> *const std::ffi::c_void {
10950 self.p_next.cast_const()
10951 }
10952
10953 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10954 self.p_next = p_next;
10955 }
10956
10957 fn address(&mut self) -> *mut std::ffi::c_void {
10958 std::ptr::from_mut(self).cast()
10959 }
10960}
10961
10962impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
10963 for vk::PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT<'a>
10964{
10965}
10966
10967impl<'a> crate::construction::sealed::ChainNode
10968 for vk::RenderPassFragmentDensityMapCreateInfoEXT<'a>
10969{
10970 const S_TYPE: vk::StructureType =
10971 vk::StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
10972
10973 fn s_type(&self) -> vk::StructureType {
10974 self.s_type
10975 }
10976
10977 fn p_next(&self) -> *const std::ffi::c_void {
10978 self.p_next
10979 }
10980
10981 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
10982 self.p_next = p_next.cast_const();
10983 }
10984
10985 fn address(&mut self) -> *mut std::ffi::c_void {
10986 std::ptr::from_mut(self).cast()
10987 }
10988}
10989
10990impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo<'root>>
10991 for vk::RenderPassFragmentDensityMapCreateInfoEXT<'a>
10992{
10993}
10994
10995impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo2<'root>>
10996 for vk::RenderPassFragmentDensityMapCreateInfoEXT<'a>
10997{
10998}
10999
11000impl<'a> crate::construction::sealed::ChainNode
11001 for vk::RenderPassFragmentDensityMapOffsetEndInfoEXT<'a>
11002{
11003 const S_TYPE: vk::StructureType =
11004 vk::StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT;
11005
11006 fn s_type(&self) -> vk::StructureType {
11007 self.s_type
11008 }
11009
11010 fn p_next(&self) -> *const std::ffi::c_void {
11011 self.p_next
11012 }
11013
11014 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11015 self.p_next = p_next.cast_const();
11016 }
11017
11018 fn address(&mut self) -> *mut std::ffi::c_void {
11019 std::ptr::from_mut(self).cast()
11020 }
11021}
11022
11023impl<'a, 'root> crate::Extends<vk::SubpassEndInfo<'root>>
11024 for vk::RenderPassFragmentDensityMapOffsetEndInfoEXT<'a>
11025{
11026}
11027
11028impl<'a, 'root> crate::Extends<vk::RenderingEndInfoKHR<'root>>
11029 for vk::RenderPassFragmentDensityMapOffsetEndInfoEXT<'a>
11030{
11031}
11032
11033impl<'a> crate::construction::sealed::ChainNode
11034 for vk::PhysicalDeviceScalarBlockLayoutFeatures<'a>
11035{
11036 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
11037
11038 fn s_type(&self) -> vk::StructureType {
11039 self.s_type
11040 }
11041
11042 fn p_next(&self) -> *const std::ffi::c_void {
11043 self.p_next.cast_const()
11044 }
11045
11046 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11047 self.p_next = p_next;
11048 }
11049
11050 fn address(&mut self) -> *mut std::ffi::c_void {
11051 std::ptr::from_mut(self).cast()
11052 }
11053}
11054
11055impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11056 for vk::PhysicalDeviceScalarBlockLayoutFeatures<'a>
11057{
11058}
11059
11060impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11061 for vk::PhysicalDeviceScalarBlockLayoutFeatures<'a>
11062{
11063}
11064
11065impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceProtectedCapabilitiesKHR<'a> {
11066 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR;
11067
11068 fn s_type(&self) -> vk::StructureType {
11069 self.s_type
11070 }
11071
11072 fn p_next(&self) -> *const std::ffi::c_void {
11073 self.p_next.cast_const()
11074 }
11075
11076 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11077 self.p_next = p_next;
11078 }
11079
11080 fn address(&mut self) -> *mut std::ffi::c_void {
11081 std::ptr::from_mut(self).cast()
11082 }
11083}
11084
11085impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
11086 for vk::SurfaceProtectedCapabilitiesKHR<'a>
11087{
11088}
11089
11090impl<'a> crate::construction::sealed::ChainNode
11091 for vk::PhysicalDeviceUniformBufferStandardLayoutFeatures<'a>
11092{
11093 const S_TYPE: vk::StructureType =
11094 vk::StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
11095
11096 fn s_type(&self) -> vk::StructureType {
11097 self.s_type
11098 }
11099
11100 fn p_next(&self) -> *const std::ffi::c_void {
11101 self.p_next.cast_const()
11102 }
11103
11104 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11105 self.p_next = p_next;
11106 }
11107
11108 fn address(&mut self) -> *mut std::ffi::c_void {
11109 std::ptr::from_mut(self).cast()
11110 }
11111}
11112
11113impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11114 for vk::PhysicalDeviceUniformBufferStandardLayoutFeatures<'a>
11115{
11116}
11117
11118impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11119 for vk::PhysicalDeviceUniformBufferStandardLayoutFeatures<'a>
11120{
11121}
11122
11123impl<'a> crate::construction::sealed::ChainNode
11124 for vk::PhysicalDeviceDepthClipEnableFeaturesEXT<'a>
11125{
11126 const S_TYPE: vk::StructureType =
11127 vk::StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
11128
11129 fn s_type(&self) -> vk::StructureType {
11130 self.s_type
11131 }
11132
11133 fn p_next(&self) -> *const std::ffi::c_void {
11134 self.p_next.cast_const()
11135 }
11136
11137 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11138 self.p_next = p_next;
11139 }
11140
11141 fn address(&mut self) -> *mut std::ffi::c_void {
11142 std::ptr::from_mut(self).cast()
11143 }
11144}
11145
11146impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11147 for vk::PhysicalDeviceDepthClipEnableFeaturesEXT<'a>
11148{
11149}
11150
11151impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11152 for vk::PhysicalDeviceDepthClipEnableFeaturesEXT<'a>
11153{
11154}
11155
11156impl<'a> crate::construction::sealed::ChainNode
11157 for vk::PipelineRasterizationDepthClipStateCreateInfoEXT<'a>
11158{
11159 const S_TYPE: vk::StructureType =
11160 vk::StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
11161
11162 fn s_type(&self) -> vk::StructureType {
11163 self.s_type
11164 }
11165
11166 fn p_next(&self) -> *const std::ffi::c_void {
11167 self.p_next
11168 }
11169
11170 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11171 self.p_next = p_next.cast_const();
11172 }
11173
11174 fn address(&mut self) -> *mut std::ffi::c_void {
11175 std::ptr::from_mut(self).cast()
11176 }
11177}
11178
11179impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
11180 for vk::PipelineRasterizationDepthClipStateCreateInfoEXT<'a>
11181{
11182}
11183
11184impl<'a> crate::construction::sealed::ChainNode
11185 for vk::PhysicalDeviceMemoryBudgetPropertiesEXT<'a>
11186{
11187 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
11188
11189 fn s_type(&self) -> vk::StructureType {
11190 self.s_type
11191 }
11192
11193 fn p_next(&self) -> *const std::ffi::c_void {
11194 self.p_next.cast_const()
11195 }
11196
11197 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11198 self.p_next = p_next;
11199 }
11200
11201 fn address(&mut self) -> *mut std::ffi::c_void {
11202 std::ptr::from_mut(self).cast()
11203 }
11204}
11205
11206impl<'a, 'root> crate::Extends<vk::PhysicalDeviceMemoryProperties2<'root>>
11207 for vk::PhysicalDeviceMemoryBudgetPropertiesEXT<'a>
11208{
11209}
11210
11211impl<'a> crate::construction::sealed::ChainNode
11212 for vk::PhysicalDeviceMemoryPriorityFeaturesEXT<'a>
11213{
11214 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
11215
11216 fn s_type(&self) -> vk::StructureType {
11217 self.s_type
11218 }
11219
11220 fn p_next(&self) -> *const std::ffi::c_void {
11221 self.p_next.cast_const()
11222 }
11223
11224 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11225 self.p_next = p_next;
11226 }
11227
11228 fn address(&mut self) -> *mut std::ffi::c_void {
11229 std::ptr::from_mut(self).cast()
11230 }
11231}
11232
11233impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11234 for vk::PhysicalDeviceMemoryPriorityFeaturesEXT<'a>
11235{
11236}
11237
11238impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11239 for vk::PhysicalDeviceMemoryPriorityFeaturesEXT<'a>
11240{
11241}
11242
11243impl<'a> crate::construction::sealed::ChainNode for vk::MemoryPriorityAllocateInfoEXT<'a> {
11244 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
11245
11246 fn s_type(&self) -> vk::StructureType {
11247 self.s_type
11248 }
11249
11250 fn p_next(&self) -> *const std::ffi::c_void {
11251 self.p_next
11252 }
11253
11254 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11255 self.p_next = p_next.cast_const();
11256 }
11257
11258 fn address(&mut self) -> *mut std::ffi::c_void {
11259 std::ptr::from_mut(self).cast()
11260 }
11261}
11262
11263impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
11264 for vk::MemoryPriorityAllocateInfoEXT<'a>
11265{
11266}
11267
11268impl<'a> crate::construction::sealed::ChainNode
11269 for vk::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a>
11270{
11271 const S_TYPE: vk::StructureType =
11272 vk::StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT;
11273
11274 fn s_type(&self) -> vk::StructureType {
11275 self.s_type
11276 }
11277
11278 fn p_next(&self) -> *const std::ffi::c_void {
11279 self.p_next.cast_const()
11280 }
11281
11282 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11283 self.p_next = p_next;
11284 }
11285
11286 fn address(&mut self) -> *mut std::ffi::c_void {
11287 std::ptr::from_mut(self).cast()
11288 }
11289}
11290
11291impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11292 for vk::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a>
11293{
11294}
11295
11296impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11297 for vk::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<'a>
11298{
11299}
11300
11301impl<'a> crate::construction::sealed::ChainNode
11302 for vk::PhysicalDeviceBufferDeviceAddressFeatures<'a>
11303{
11304 const S_TYPE: vk::StructureType =
11305 vk::StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
11306
11307 fn s_type(&self) -> vk::StructureType {
11308 self.s_type
11309 }
11310
11311 fn p_next(&self) -> *const std::ffi::c_void {
11312 self.p_next.cast_const()
11313 }
11314
11315 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11316 self.p_next = p_next;
11317 }
11318
11319 fn address(&mut self) -> *mut std::ffi::c_void {
11320 std::ptr::from_mut(self).cast()
11321 }
11322}
11323
11324impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11325 for vk::PhysicalDeviceBufferDeviceAddressFeatures<'a>
11326{
11327}
11328
11329impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11330 for vk::PhysicalDeviceBufferDeviceAddressFeatures<'a>
11331{
11332}
11333
11334impl<'a> crate::construction::sealed::ChainNode
11335 for vk::PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a>
11336{
11337 const S_TYPE: vk::StructureType =
11338 vk::StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
11339
11340 fn s_type(&self) -> vk::StructureType {
11341 self.s_type
11342 }
11343
11344 fn p_next(&self) -> *const std::ffi::c_void {
11345 self.p_next.cast_const()
11346 }
11347
11348 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11349 self.p_next = p_next;
11350 }
11351
11352 fn address(&mut self) -> *mut std::ffi::c_void {
11353 std::ptr::from_mut(self).cast()
11354 }
11355}
11356
11357impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11358 for vk::PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a>
11359{
11360}
11361
11362impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11363 for vk::PhysicalDeviceBufferDeviceAddressFeaturesEXT<'a>
11364{
11365}
11366
11367impl<'a> crate::construction::sealed::ChainNode for vk::BufferDeviceAddressInfo<'a> {
11368 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_DEVICE_ADDRESS_INFO;
11369
11370 fn s_type(&self) -> vk::StructureType {
11371 self.s_type
11372 }
11373
11374 fn p_next(&self) -> *const std::ffi::c_void {
11375 self.p_next
11376 }
11377
11378 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11379 self.p_next = p_next.cast_const();
11380 }
11381
11382 fn address(&mut self) -> *mut std::ffi::c_void {
11383 std::ptr::from_mut(self).cast()
11384 }
11385}
11386
11387impl<'a> crate::construction::sealed::ChainNode for vk::BufferOpaqueCaptureAddressCreateInfo<'a> {
11388 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
11389
11390 fn s_type(&self) -> vk::StructureType {
11391 self.s_type
11392 }
11393
11394 fn p_next(&self) -> *const std::ffi::c_void {
11395 self.p_next
11396 }
11397
11398 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11399 self.p_next = p_next.cast_const();
11400 }
11401
11402 fn address(&mut self) -> *mut std::ffi::c_void {
11403 std::ptr::from_mut(self).cast()
11404 }
11405}
11406
11407impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
11408 for vk::BufferOpaqueCaptureAddressCreateInfo<'a>
11409{
11410}
11411
11412impl<'a> crate::construction::sealed::ChainNode for vk::BufferDeviceAddressCreateInfoEXT<'a> {
11413 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
11414
11415 fn s_type(&self) -> vk::StructureType {
11416 self.s_type
11417 }
11418
11419 fn p_next(&self) -> *const std::ffi::c_void {
11420 self.p_next
11421 }
11422
11423 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11424 self.p_next = p_next.cast_const();
11425 }
11426
11427 fn address(&mut self) -> *mut std::ffi::c_void {
11428 std::ptr::from_mut(self).cast()
11429 }
11430}
11431
11432impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
11433 for vk::BufferDeviceAddressCreateInfoEXT<'a>
11434{
11435}
11436
11437impl<'a> crate::construction::sealed::ChainNode
11438 for vk::PhysicalDeviceImageViewImageFormatInfoEXT<'a>
11439{
11440 const S_TYPE: vk::StructureType =
11441 vk::StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
11442
11443 fn s_type(&self) -> vk::StructureType {
11444 self.s_type
11445 }
11446
11447 fn p_next(&self) -> *const std::ffi::c_void {
11448 self.p_next.cast_const()
11449 }
11450
11451 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11452 self.p_next = p_next;
11453 }
11454
11455 fn address(&mut self) -> *mut std::ffi::c_void {
11456 std::ptr::from_mut(self).cast()
11457 }
11458}
11459
11460impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
11461 for vk::PhysicalDeviceImageViewImageFormatInfoEXT<'a>
11462{
11463}
11464
11465impl<'a> crate::construction::sealed::ChainNode
11466 for vk::FilterCubicImageViewImageFormatPropertiesEXT<'a>
11467{
11468 const S_TYPE: vk::StructureType =
11469 vk::StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
11470
11471 fn s_type(&self) -> vk::StructureType {
11472 self.s_type
11473 }
11474
11475 fn p_next(&self) -> *const std::ffi::c_void {
11476 self.p_next.cast_const()
11477 }
11478
11479 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11480 self.p_next = p_next;
11481 }
11482
11483 fn address(&mut self) -> *mut std::ffi::c_void {
11484 std::ptr::from_mut(self).cast()
11485 }
11486}
11487
11488impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
11489 for vk::FilterCubicImageViewImageFormatPropertiesEXT<'a>
11490{
11491}
11492
11493impl<'a> crate::construction::sealed::ChainNode
11494 for vk::PhysicalDeviceImagelessFramebufferFeatures<'a>
11495{
11496 const S_TYPE: vk::StructureType =
11497 vk::StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
11498
11499 fn s_type(&self) -> vk::StructureType {
11500 self.s_type
11501 }
11502
11503 fn p_next(&self) -> *const std::ffi::c_void {
11504 self.p_next.cast_const()
11505 }
11506
11507 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11508 self.p_next = p_next;
11509 }
11510
11511 fn address(&mut self) -> *mut std::ffi::c_void {
11512 std::ptr::from_mut(self).cast()
11513 }
11514}
11515
11516impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11517 for vk::PhysicalDeviceImagelessFramebufferFeatures<'a>
11518{
11519}
11520
11521impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11522 for vk::PhysicalDeviceImagelessFramebufferFeatures<'a>
11523{
11524}
11525
11526impl<'a> crate::construction::sealed::ChainNode for vk::FramebufferAttachmentsCreateInfo<'a> {
11527 const S_TYPE: vk::StructureType = vk::StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
11528
11529 fn s_type(&self) -> vk::StructureType {
11530 self.s_type
11531 }
11532
11533 fn p_next(&self) -> *const std::ffi::c_void {
11534 self.p_next
11535 }
11536
11537 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11538 self.p_next = p_next.cast_const();
11539 }
11540
11541 fn address(&mut self) -> *mut std::ffi::c_void {
11542 std::ptr::from_mut(self).cast()
11543 }
11544}
11545
11546impl<'a, 'root> crate::Extends<vk::FramebufferCreateInfo<'root>>
11547 for vk::FramebufferAttachmentsCreateInfo<'a>
11548{
11549}
11550
11551impl<'a> crate::construction::sealed::ChainNode for vk::FramebufferAttachmentImageInfo<'a> {
11552 const S_TYPE: vk::StructureType = vk::StructureType::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
11553
11554 fn s_type(&self) -> vk::StructureType {
11555 self.s_type
11556 }
11557
11558 fn p_next(&self) -> *const std::ffi::c_void {
11559 self.p_next
11560 }
11561
11562 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11563 self.p_next = p_next.cast_const();
11564 }
11565
11566 fn address(&mut self) -> *mut std::ffi::c_void {
11567 std::ptr::from_mut(self).cast()
11568 }
11569}
11570
11571impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassAttachmentBeginInfo<'a> {
11572 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO;
11573
11574 fn s_type(&self) -> vk::StructureType {
11575 self.s_type
11576 }
11577
11578 fn p_next(&self) -> *const std::ffi::c_void {
11579 self.p_next
11580 }
11581
11582 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11583 self.p_next = p_next.cast_const();
11584 }
11585
11586 fn address(&mut self) -> *mut std::ffi::c_void {
11587 std::ptr::from_mut(self).cast()
11588 }
11589}
11590
11591impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
11592 for vk::RenderPassAttachmentBeginInfo<'a>
11593{
11594}
11595
11596impl<'a> crate::construction::sealed::ChainNode
11597 for vk::PhysicalDeviceTextureCompressionASTCHDRFeatures<'a>
11598{
11599 const S_TYPE: vk::StructureType =
11600 vk::StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
11601
11602 fn s_type(&self) -> vk::StructureType {
11603 self.s_type
11604 }
11605
11606 fn p_next(&self) -> *const std::ffi::c_void {
11607 self.p_next.cast_const()
11608 }
11609
11610 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11611 self.p_next = p_next;
11612 }
11613
11614 fn address(&mut self) -> *mut std::ffi::c_void {
11615 std::ptr::from_mut(self).cast()
11616 }
11617}
11618
11619impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11620 for vk::PhysicalDeviceTextureCompressionASTCHDRFeatures<'a>
11621{
11622}
11623
11624impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11625 for vk::PhysicalDeviceTextureCompressionASTCHDRFeatures<'a>
11626{
11627}
11628
11629impl<'a> crate::construction::sealed::ChainNode
11630 for vk::PhysicalDeviceCooperativeMatrixFeaturesNV<'a>
11631{
11632 const S_TYPE: vk::StructureType =
11633 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
11634
11635 fn s_type(&self) -> vk::StructureType {
11636 self.s_type
11637 }
11638
11639 fn p_next(&self) -> *const std::ffi::c_void {
11640 self.p_next.cast_const()
11641 }
11642
11643 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11644 self.p_next = p_next;
11645 }
11646
11647 fn address(&mut self) -> *mut std::ffi::c_void {
11648 std::ptr::from_mut(self).cast()
11649 }
11650}
11651
11652impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11653 for vk::PhysicalDeviceCooperativeMatrixFeaturesNV<'a>
11654{
11655}
11656
11657impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11658 for vk::PhysicalDeviceCooperativeMatrixFeaturesNV<'a>
11659{
11660}
11661
11662impl<'a> crate::construction::sealed::ChainNode
11663 for vk::PhysicalDeviceCooperativeMatrixPropertiesNV<'a>
11664{
11665 const S_TYPE: vk::StructureType =
11666 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
11667
11668 fn s_type(&self) -> vk::StructureType {
11669 self.s_type
11670 }
11671
11672 fn p_next(&self) -> *const std::ffi::c_void {
11673 self.p_next.cast_const()
11674 }
11675
11676 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11677 self.p_next = p_next;
11678 }
11679
11680 fn address(&mut self) -> *mut std::ffi::c_void {
11681 std::ptr::from_mut(self).cast()
11682 }
11683}
11684
11685impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
11686 for vk::PhysicalDeviceCooperativeMatrixPropertiesNV<'a>
11687{
11688}
11689
11690impl<'a> crate::construction::sealed::ChainNode for vk::CooperativeMatrixPropertiesNV<'a> {
11691 const S_TYPE: vk::StructureType = vk::StructureType::COOPERATIVE_MATRIX_PROPERTIES_NV;
11692
11693 fn s_type(&self) -> vk::StructureType {
11694 self.s_type
11695 }
11696
11697 fn p_next(&self) -> *const std::ffi::c_void {
11698 self.p_next.cast_const()
11699 }
11700
11701 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11702 self.p_next = p_next;
11703 }
11704
11705 fn address(&mut self) -> *mut std::ffi::c_void {
11706 std::ptr::from_mut(self).cast()
11707 }
11708}
11709
11710impl<'a> crate::construction::sealed::ChainNode
11711 for vk::PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a>
11712{
11713 const S_TYPE: vk::StructureType =
11714 vk::StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
11715
11716 fn s_type(&self) -> vk::StructureType {
11717 self.s_type
11718 }
11719
11720 fn p_next(&self) -> *const std::ffi::c_void {
11721 self.p_next.cast_const()
11722 }
11723
11724 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11725 self.p_next = p_next;
11726 }
11727
11728 fn address(&mut self) -> *mut std::ffi::c_void {
11729 std::ptr::from_mut(self).cast()
11730 }
11731}
11732
11733impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11734 for vk::PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a>
11735{
11736}
11737
11738impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11739 for vk::PhysicalDeviceYcbcrImageArraysFeaturesEXT<'a>
11740{
11741}
11742
11743impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewHandleInfoNVX<'a> {
11744 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_HANDLE_INFO_NVX;
11745
11746 fn s_type(&self) -> vk::StructureType {
11747 self.s_type
11748 }
11749
11750 fn p_next(&self) -> *const std::ffi::c_void {
11751 self.p_next
11752 }
11753
11754 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11755 self.p_next = p_next.cast_const();
11756 }
11757
11758 fn address(&mut self) -> *mut std::ffi::c_void {
11759 std::ptr::from_mut(self).cast()
11760 }
11761}
11762
11763impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewAddressPropertiesNVX<'a> {
11764 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
11765
11766 fn s_type(&self) -> vk::StructureType {
11767 self.s_type
11768 }
11769
11770 fn p_next(&self) -> *const std::ffi::c_void {
11771 self.p_next.cast_const()
11772 }
11773
11774 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11775 self.p_next = p_next;
11776 }
11777
11778 fn address(&mut self) -> *mut std::ffi::c_void {
11779 std::ptr::from_mut(self).cast()
11780 }
11781}
11782
11783#[cfg(feature = "platform-ggp")]
11784impl<'a> crate::construction::sealed::ChainNode for vk::PresentFrameTokenGGP<'a> {
11785 const S_TYPE: vk::StructureType = vk::StructureType::PRESENT_FRAME_TOKEN_GGP;
11786
11787 fn s_type(&self) -> vk::StructureType {
11788 self.s_type
11789 }
11790
11791 fn p_next(&self) -> *const std::ffi::c_void {
11792 self.p_next
11793 }
11794
11795 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11796 self.p_next = p_next.cast_const();
11797 }
11798
11799 fn address(&mut self) -> *mut std::ffi::c_void {
11800 std::ptr::from_mut(self).cast()
11801 }
11802}
11803
11804#[cfg(feature = "platform-ggp")]
11805impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::PresentFrameTokenGGP<'a> {}
11806
11807impl<'a> crate::construction::sealed::ChainNode for vk::PipelineCreationFeedbackCreateInfo<'a> {
11808 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
11809
11810 fn s_type(&self) -> vk::StructureType {
11811 self.s_type
11812 }
11813
11814 fn p_next(&self) -> *const std::ffi::c_void {
11815 self.p_next
11816 }
11817
11818 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11819 self.p_next = p_next.cast_const();
11820 }
11821
11822 fn address(&mut self) -> *mut std::ffi::c_void {
11823 std::ptr::from_mut(self).cast()
11824 }
11825}
11826
11827impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
11828 for vk::PipelineCreationFeedbackCreateInfo<'a>
11829{
11830}
11831
11832impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
11833 for vk::PipelineCreationFeedbackCreateInfo<'a>
11834{
11835}
11836
11837impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoNV<'root>>
11838 for vk::PipelineCreationFeedbackCreateInfo<'a>
11839{
11840}
11841
11842impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoKHR<'root>>
11843 for vk::PipelineCreationFeedbackCreateInfo<'a>
11844{
11845}
11846
11847#[cfg(feature = "provisional")]
11848impl<'a, 'root> crate::Extends<vk::ExecutionGraphPipelineCreateInfoAMDX<'root>>
11849 for vk::PipelineCreationFeedbackCreateInfo<'a>
11850{
11851}
11852
11853impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
11854 for vk::PipelineCreationFeedbackCreateInfo<'a>
11855{
11856}
11857
11858#[cfg(feature = "platform-win32")]
11859impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceFullScreenExclusiveInfoEXT<'a> {
11860 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
11861
11862 fn s_type(&self) -> vk::StructureType {
11863 self.s_type
11864 }
11865
11866 fn p_next(&self) -> *const std::ffi::c_void {
11867 self.p_next.cast_const()
11868 }
11869
11870 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11871 self.p_next = p_next;
11872 }
11873
11874 fn address(&mut self) -> *mut std::ffi::c_void {
11875 std::ptr::from_mut(self).cast()
11876 }
11877}
11878
11879#[cfg(feature = "platform-win32")]
11880impl<'a, 'root> crate::Extends<vk::PhysicalDeviceSurfaceInfo2KHR<'root>>
11881 for vk::SurfaceFullScreenExclusiveInfoEXT<'a>
11882{
11883}
11884
11885#[cfg(feature = "platform-win32")]
11886impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
11887 for vk::SurfaceFullScreenExclusiveInfoEXT<'a>
11888{
11889}
11890
11891#[cfg(feature = "platform-win32")]
11892impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceFullScreenExclusiveWin32InfoEXT<'a> {
11893 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
11894
11895 fn s_type(&self) -> vk::StructureType {
11896 self.s_type
11897 }
11898
11899 fn p_next(&self) -> *const std::ffi::c_void {
11900 self.p_next
11901 }
11902
11903 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11904 self.p_next = p_next.cast_const();
11905 }
11906
11907 fn address(&mut self) -> *mut std::ffi::c_void {
11908 std::ptr::from_mut(self).cast()
11909 }
11910}
11911
11912#[cfg(feature = "platform-win32")]
11913impl<'a, 'root> crate::Extends<vk::PhysicalDeviceSurfaceInfo2KHR<'root>>
11914 for vk::SurfaceFullScreenExclusiveWin32InfoEXT<'a>
11915{
11916}
11917
11918#[cfg(feature = "platform-win32")]
11919impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
11920 for vk::SurfaceFullScreenExclusiveWin32InfoEXT<'a>
11921{
11922}
11923
11924#[cfg(feature = "platform-win32")]
11925impl<'a> crate::construction::sealed::ChainNode
11926 for vk::SurfaceCapabilitiesFullScreenExclusiveEXT<'a>
11927{
11928 const S_TYPE: vk::StructureType =
11929 vk::StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
11930
11931 fn s_type(&self) -> vk::StructureType {
11932 self.s_type
11933 }
11934
11935 fn p_next(&self) -> *const std::ffi::c_void {
11936 self.p_next.cast_const()
11937 }
11938
11939 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11940 self.p_next = p_next;
11941 }
11942
11943 fn address(&mut self) -> *mut std::ffi::c_void {
11944 std::ptr::from_mut(self).cast()
11945 }
11946}
11947
11948#[cfg(feature = "platform-win32")]
11949impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
11950 for vk::SurfaceCapabilitiesFullScreenExclusiveEXT<'a>
11951{
11952}
11953
11954impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevicePresentBarrierFeaturesNV<'a> {
11955 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV;
11956
11957 fn s_type(&self) -> vk::StructureType {
11958 self.s_type
11959 }
11960
11961 fn p_next(&self) -> *const std::ffi::c_void {
11962 self.p_next.cast_const()
11963 }
11964
11965 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11966 self.p_next = p_next;
11967 }
11968
11969 fn address(&mut self) -> *mut std::ffi::c_void {
11970 std::ptr::from_mut(self).cast()
11971 }
11972}
11973
11974impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
11975 for vk::PhysicalDevicePresentBarrierFeaturesNV<'a>
11976{
11977}
11978
11979impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
11980 for vk::PhysicalDevicePresentBarrierFeaturesNV<'a>
11981{
11982}
11983
11984impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceCapabilitiesPresentBarrierNV<'a> {
11985 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV;
11986
11987 fn s_type(&self) -> vk::StructureType {
11988 self.s_type
11989 }
11990
11991 fn p_next(&self) -> *const std::ffi::c_void {
11992 self.p_next.cast_const()
11993 }
11994
11995 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
11996 self.p_next = p_next;
11997 }
11998
11999 fn address(&mut self) -> *mut std::ffi::c_void {
12000 std::ptr::from_mut(self).cast()
12001 }
12002}
12003
12004impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
12005 for vk::SurfaceCapabilitiesPresentBarrierNV<'a>
12006{
12007}
12008
12009impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainPresentBarrierCreateInfoNV<'a> {
12010 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV;
12011
12012 fn s_type(&self) -> vk::StructureType {
12013 self.s_type
12014 }
12015
12016 fn p_next(&self) -> *const std::ffi::c_void {
12017 self.p_next.cast_const()
12018 }
12019
12020 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12021 self.p_next = p_next;
12022 }
12023
12024 fn address(&mut self) -> *mut std::ffi::c_void {
12025 std::ptr::from_mut(self).cast()
12026 }
12027}
12028
12029impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
12030 for vk::SwapchainPresentBarrierCreateInfoNV<'a>
12031{
12032}
12033
12034impl<'a> crate::construction::sealed::ChainNode
12035 for vk::PhysicalDevicePerformanceQueryFeaturesKHR<'a>
12036{
12037 const S_TYPE: vk::StructureType =
12038 vk::StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
12039
12040 fn s_type(&self) -> vk::StructureType {
12041 self.s_type
12042 }
12043
12044 fn p_next(&self) -> *const std::ffi::c_void {
12045 self.p_next.cast_const()
12046 }
12047
12048 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12049 self.p_next = p_next;
12050 }
12051
12052 fn address(&mut self) -> *mut std::ffi::c_void {
12053 std::ptr::from_mut(self).cast()
12054 }
12055}
12056
12057impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12058 for vk::PhysicalDevicePerformanceQueryFeaturesKHR<'a>
12059{
12060}
12061
12062impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12063 for vk::PhysicalDevicePerformanceQueryFeaturesKHR<'a>
12064{
12065}
12066
12067impl<'a> crate::construction::sealed::ChainNode
12068 for vk::PhysicalDevicePerformanceQueryPropertiesKHR<'a>
12069{
12070 const S_TYPE: vk::StructureType =
12071 vk::StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
12072
12073 fn s_type(&self) -> vk::StructureType {
12074 self.s_type
12075 }
12076
12077 fn p_next(&self) -> *const std::ffi::c_void {
12078 self.p_next.cast_const()
12079 }
12080
12081 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12082 self.p_next = p_next;
12083 }
12084
12085 fn address(&mut self) -> *mut std::ffi::c_void {
12086 std::ptr::from_mut(self).cast()
12087 }
12088}
12089
12090impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
12091 for vk::PhysicalDevicePerformanceQueryPropertiesKHR<'a>
12092{
12093}
12094
12095impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceCounterKHR<'a> {
12096 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_COUNTER_KHR;
12097
12098 fn s_type(&self) -> vk::StructureType {
12099 self.s_type
12100 }
12101
12102 fn p_next(&self) -> *const std::ffi::c_void {
12103 self.p_next.cast_const()
12104 }
12105
12106 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12107 self.p_next = p_next;
12108 }
12109
12110 fn address(&mut self) -> *mut std::ffi::c_void {
12111 std::ptr::from_mut(self).cast()
12112 }
12113}
12114
12115impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceCounterDescriptionKHR<'a> {
12116 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_COUNTER_DESCRIPTION_KHR;
12117
12118 fn s_type(&self) -> vk::StructureType {
12119 self.s_type
12120 }
12121
12122 fn p_next(&self) -> *const std::ffi::c_void {
12123 self.p_next.cast_const()
12124 }
12125
12126 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12127 self.p_next = p_next;
12128 }
12129
12130 fn address(&mut self) -> *mut std::ffi::c_void {
12131 std::ptr::from_mut(self).cast()
12132 }
12133}
12134
12135impl<'a> crate::construction::sealed::ChainNode for vk::QueryPoolPerformanceCreateInfoKHR<'a> {
12136 const S_TYPE: vk::StructureType = vk::StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
12137
12138 fn s_type(&self) -> vk::StructureType {
12139 self.s_type
12140 }
12141
12142 fn p_next(&self) -> *const std::ffi::c_void {
12143 self.p_next
12144 }
12145
12146 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12147 self.p_next = p_next.cast_const();
12148 }
12149
12150 fn address(&mut self) -> *mut std::ffi::c_void {
12151 std::ptr::from_mut(self).cast()
12152 }
12153}
12154
12155impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
12156 for vk::QueryPoolPerformanceCreateInfoKHR<'a>
12157{
12158}
12159
12160impl<'a> crate::construction::sealed::ChainNode for vk::AcquireProfilingLockInfoKHR<'a> {
12161 const S_TYPE: vk::StructureType = vk::StructureType::ACQUIRE_PROFILING_LOCK_INFO_KHR;
12162
12163 fn s_type(&self) -> vk::StructureType {
12164 self.s_type
12165 }
12166
12167 fn p_next(&self) -> *const std::ffi::c_void {
12168 self.p_next
12169 }
12170
12171 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12172 self.p_next = p_next.cast_const();
12173 }
12174
12175 fn address(&mut self) -> *mut std::ffi::c_void {
12176 std::ptr::from_mut(self).cast()
12177 }
12178}
12179
12180impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceQuerySubmitInfoKHR<'a> {
12181 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
12182
12183 fn s_type(&self) -> vk::StructureType {
12184 self.s_type
12185 }
12186
12187 fn p_next(&self) -> *const std::ffi::c_void {
12188 self.p_next
12189 }
12190
12191 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12192 self.p_next = p_next.cast_const();
12193 }
12194
12195 fn address(&mut self) -> *mut std::ffi::c_void {
12196 std::ptr::from_mut(self).cast()
12197 }
12198}
12199
12200impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::PerformanceQuerySubmitInfoKHR<'a> {}
12201
12202impl<'a, 'root> crate::Extends<vk::SubmitInfo2<'root>> for vk::PerformanceQuerySubmitInfoKHR<'a> {}
12203
12204impl<'a> crate::construction::sealed::ChainNode for vk::HeadlessSurfaceCreateInfoEXT<'a> {
12205 const S_TYPE: vk::StructureType = vk::StructureType::HEADLESS_SURFACE_CREATE_INFO_EXT;
12206
12207 fn s_type(&self) -> vk::StructureType {
12208 self.s_type
12209 }
12210
12211 fn p_next(&self) -> *const std::ffi::c_void {
12212 self.p_next
12213 }
12214
12215 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12216 self.p_next = p_next.cast_const();
12217 }
12218
12219 fn address(&mut self) -> *mut std::ffi::c_void {
12220 std::ptr::from_mut(self).cast()
12221 }
12222}
12223
12224impl<'a> crate::construction::sealed::ChainNode
12225 for vk::PhysicalDeviceCoverageReductionModeFeaturesNV<'a>
12226{
12227 const S_TYPE: vk::StructureType =
12228 vk::StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
12229
12230 fn s_type(&self) -> vk::StructureType {
12231 self.s_type
12232 }
12233
12234 fn p_next(&self) -> *const std::ffi::c_void {
12235 self.p_next.cast_const()
12236 }
12237
12238 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12239 self.p_next = p_next;
12240 }
12241
12242 fn address(&mut self) -> *mut std::ffi::c_void {
12243 std::ptr::from_mut(self).cast()
12244 }
12245}
12246
12247impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12248 for vk::PhysicalDeviceCoverageReductionModeFeaturesNV<'a>
12249{
12250}
12251
12252impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12253 for vk::PhysicalDeviceCoverageReductionModeFeaturesNV<'a>
12254{
12255}
12256
12257impl<'a> crate::construction::sealed::ChainNode
12258 for vk::PipelineCoverageReductionStateCreateInfoNV<'a>
12259{
12260 const S_TYPE: vk::StructureType =
12261 vk::StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
12262
12263 fn s_type(&self) -> vk::StructureType {
12264 self.s_type
12265 }
12266
12267 fn p_next(&self) -> *const std::ffi::c_void {
12268 self.p_next
12269 }
12270
12271 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12272 self.p_next = p_next.cast_const();
12273 }
12274
12275 fn address(&mut self) -> *mut std::ffi::c_void {
12276 std::ptr::from_mut(self).cast()
12277 }
12278}
12279
12280impl<'a, 'root> crate::Extends<vk::PipelineMultisampleStateCreateInfo<'root>>
12281 for vk::PipelineCoverageReductionStateCreateInfoNV<'a>
12282{
12283}
12284
12285impl<'a> crate::construction::sealed::ChainNode for vk::FramebufferMixedSamplesCombinationNV<'a> {
12286 const S_TYPE: vk::StructureType = vk::StructureType::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
12287
12288 fn s_type(&self) -> vk::StructureType {
12289 self.s_type
12290 }
12291
12292 fn p_next(&self) -> *const std::ffi::c_void {
12293 self.p_next.cast_const()
12294 }
12295
12296 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12297 self.p_next = p_next;
12298 }
12299
12300 fn address(&mut self) -> *mut std::ffi::c_void {
12301 std::ptr::from_mut(self).cast()
12302 }
12303}
12304
12305impl<'a> crate::construction::sealed::ChainNode
12306 for vk::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a>
12307{
12308 const S_TYPE: vk::StructureType =
12309 vk::StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL;
12310
12311 fn s_type(&self) -> vk::StructureType {
12312 self.s_type
12313 }
12314
12315 fn p_next(&self) -> *const std::ffi::c_void {
12316 self.p_next.cast_const()
12317 }
12318
12319 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12320 self.p_next = p_next;
12321 }
12322
12323 fn address(&mut self) -> *mut std::ffi::c_void {
12324 std::ptr::from_mut(self).cast()
12325 }
12326}
12327
12328impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12329 for vk::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a>
12330{
12331}
12332
12333impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12334 for vk::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<'a>
12335{
12336}
12337
12338impl<'a> crate::construction::sealed::ChainNode for vk::InitializePerformanceApiInfoINTEL<'a> {
12339 const S_TYPE: vk::StructureType = vk::StructureType::INITIALIZE_PERFORMANCE_API_INFO_INTEL;
12340
12341 fn s_type(&self) -> vk::StructureType {
12342 self.s_type
12343 }
12344
12345 fn p_next(&self) -> *const std::ffi::c_void {
12346 self.p_next
12347 }
12348
12349 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12350 self.p_next = p_next.cast_const();
12351 }
12352
12353 fn address(&mut self) -> *mut std::ffi::c_void {
12354 std::ptr::from_mut(self).cast()
12355 }
12356}
12357
12358impl<'a> crate::construction::sealed::ChainNode
12359 for vk::QueryPoolPerformanceQueryCreateInfoINTEL<'a>
12360{
12361 const S_TYPE: vk::StructureType =
12362 vk::StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
12363
12364 fn s_type(&self) -> vk::StructureType {
12365 self.s_type
12366 }
12367
12368 fn p_next(&self) -> *const std::ffi::c_void {
12369 self.p_next
12370 }
12371
12372 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12373 self.p_next = p_next.cast_const();
12374 }
12375
12376 fn address(&mut self) -> *mut std::ffi::c_void {
12377 std::ptr::from_mut(self).cast()
12378 }
12379}
12380
12381impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
12382 for vk::QueryPoolPerformanceQueryCreateInfoINTEL<'a>
12383{
12384}
12385
12386impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceMarkerInfoINTEL<'a> {
12387 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_MARKER_INFO_INTEL;
12388
12389 fn s_type(&self) -> vk::StructureType {
12390 self.s_type
12391 }
12392
12393 fn p_next(&self) -> *const std::ffi::c_void {
12394 self.p_next
12395 }
12396
12397 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12398 self.p_next = p_next.cast_const();
12399 }
12400
12401 fn address(&mut self) -> *mut std::ffi::c_void {
12402 std::ptr::from_mut(self).cast()
12403 }
12404}
12405
12406impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceStreamMarkerInfoINTEL<'a> {
12407 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_STREAM_MARKER_INFO_INTEL;
12408
12409 fn s_type(&self) -> vk::StructureType {
12410 self.s_type
12411 }
12412
12413 fn p_next(&self) -> *const std::ffi::c_void {
12414 self.p_next
12415 }
12416
12417 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12418 self.p_next = p_next.cast_const();
12419 }
12420
12421 fn address(&mut self) -> *mut std::ffi::c_void {
12422 std::ptr::from_mut(self).cast()
12423 }
12424}
12425
12426impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceOverrideInfoINTEL<'a> {
12427 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_OVERRIDE_INFO_INTEL;
12428
12429 fn s_type(&self) -> vk::StructureType {
12430 self.s_type
12431 }
12432
12433 fn p_next(&self) -> *const std::ffi::c_void {
12434 self.p_next
12435 }
12436
12437 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12438 self.p_next = p_next.cast_const();
12439 }
12440
12441 fn address(&mut self) -> *mut std::ffi::c_void {
12442 std::ptr::from_mut(self).cast()
12443 }
12444}
12445
12446impl<'a> crate::construction::sealed::ChainNode
12447 for vk::PerformanceConfigurationAcquireInfoINTEL<'a>
12448{
12449 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
12450
12451 fn s_type(&self) -> vk::StructureType {
12452 self.s_type
12453 }
12454
12455 fn p_next(&self) -> *const std::ffi::c_void {
12456 self.p_next
12457 }
12458
12459 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12460 self.p_next = p_next.cast_const();
12461 }
12462
12463 fn address(&mut self) -> *mut std::ffi::c_void {
12464 std::ptr::from_mut(self).cast()
12465 }
12466}
12467
12468impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderClockFeaturesKHR<'a> {
12469 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
12470
12471 fn s_type(&self) -> vk::StructureType {
12472 self.s_type
12473 }
12474
12475 fn p_next(&self) -> *const std::ffi::c_void {
12476 self.p_next.cast_const()
12477 }
12478
12479 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12480 self.p_next = p_next;
12481 }
12482
12483 fn address(&mut self) -> *mut std::ffi::c_void {
12484 std::ptr::from_mut(self).cast()
12485 }
12486}
12487
12488impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12489 for vk::PhysicalDeviceShaderClockFeaturesKHR<'a>
12490{
12491}
12492
12493impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12494 for vk::PhysicalDeviceShaderClockFeaturesKHR<'a>
12495{
12496}
12497
12498impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceIndexTypeUint8Features<'a> {
12499 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES;
12500
12501 fn s_type(&self) -> vk::StructureType {
12502 self.s_type
12503 }
12504
12505 fn p_next(&self) -> *const std::ffi::c_void {
12506 self.p_next.cast_const()
12507 }
12508
12509 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12510 self.p_next = p_next;
12511 }
12512
12513 fn address(&mut self) -> *mut std::ffi::c_void {
12514 std::ptr::from_mut(self).cast()
12515 }
12516}
12517
12518impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12519 for vk::PhysicalDeviceIndexTypeUint8Features<'a>
12520{
12521}
12522
12523impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12524 for vk::PhysicalDeviceIndexTypeUint8Features<'a>
12525{
12526}
12527
12528impl<'a> crate::construction::sealed::ChainNode
12529 for vk::PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a>
12530{
12531 const S_TYPE: vk::StructureType =
12532 vk::StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
12533
12534 fn s_type(&self) -> vk::StructureType {
12535 self.s_type
12536 }
12537
12538 fn p_next(&self) -> *const std::ffi::c_void {
12539 self.p_next.cast_const()
12540 }
12541
12542 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12543 self.p_next = p_next;
12544 }
12545
12546 fn address(&mut self) -> *mut std::ffi::c_void {
12547 std::ptr::from_mut(self).cast()
12548 }
12549}
12550
12551impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
12552 for vk::PhysicalDeviceShaderSMBuiltinsPropertiesNV<'a>
12553{
12554}
12555
12556impl<'a> crate::construction::sealed::ChainNode
12557 for vk::PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a>
12558{
12559 const S_TYPE: vk::StructureType =
12560 vk::StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
12561
12562 fn s_type(&self) -> vk::StructureType {
12563 self.s_type
12564 }
12565
12566 fn p_next(&self) -> *const std::ffi::c_void {
12567 self.p_next.cast_const()
12568 }
12569
12570 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12571 self.p_next = p_next;
12572 }
12573
12574 fn address(&mut self) -> *mut std::ffi::c_void {
12575 std::ptr::from_mut(self).cast()
12576 }
12577}
12578
12579impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12580 for vk::PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a>
12581{
12582}
12583
12584impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12585 for vk::PhysicalDeviceShaderSMBuiltinsFeaturesNV<'a>
12586{
12587}
12588
12589impl<'a> crate::construction::sealed::ChainNode
12590 for vk::PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a>
12591{
12592 const S_TYPE: vk::StructureType =
12593 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
12594
12595 fn s_type(&self) -> vk::StructureType {
12596 self.s_type
12597 }
12598
12599 fn p_next(&self) -> *const std::ffi::c_void {
12600 self.p_next.cast_const()
12601 }
12602
12603 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12604 self.p_next = p_next;
12605 }
12606
12607 fn address(&mut self) -> *mut std::ffi::c_void {
12608 std::ptr::from_mut(self).cast()
12609 }
12610}
12611
12612impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12613 for vk::PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a>
12614{
12615}
12616
12617impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12618 for vk::PhysicalDeviceFragmentShaderInterlockFeaturesEXT<'a>
12619{
12620}
12621
12622impl<'a> crate::construction::sealed::ChainNode
12623 for vk::PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a>
12624{
12625 const S_TYPE: vk::StructureType =
12626 vk::StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
12627
12628 fn s_type(&self) -> vk::StructureType {
12629 self.s_type
12630 }
12631
12632 fn p_next(&self) -> *const std::ffi::c_void {
12633 self.p_next.cast_const()
12634 }
12635
12636 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12637 self.p_next = p_next;
12638 }
12639
12640 fn address(&mut self) -> *mut std::ffi::c_void {
12641 std::ptr::from_mut(self).cast()
12642 }
12643}
12644
12645impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12646 for vk::PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a>
12647{
12648}
12649
12650impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12651 for vk::PhysicalDeviceSeparateDepthStencilLayoutsFeatures<'a>
12652{
12653}
12654
12655impl<'a> crate::construction::sealed::ChainNode for vk::AttachmentReferenceStencilLayout<'a> {
12656 const S_TYPE: vk::StructureType = vk::StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
12657
12658 fn s_type(&self) -> vk::StructureType {
12659 self.s_type
12660 }
12661
12662 fn p_next(&self) -> *const std::ffi::c_void {
12663 self.p_next.cast_const()
12664 }
12665
12666 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12667 self.p_next = p_next;
12668 }
12669
12670 fn address(&mut self) -> *mut std::ffi::c_void {
12671 std::ptr::from_mut(self).cast()
12672 }
12673}
12674
12675impl<'a, 'root> crate::Extends<vk::AttachmentReference2<'root>>
12676 for vk::AttachmentReferenceStencilLayout<'a>
12677{
12678}
12679
12680impl<'a> crate::construction::sealed::ChainNode
12681 for vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a>
12682{
12683 const S_TYPE: vk::StructureType =
12684 vk::StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT;
12685
12686 fn s_type(&self) -> vk::StructureType {
12687 self.s_type
12688 }
12689
12690 fn p_next(&self) -> *const std::ffi::c_void {
12691 self.p_next.cast_const()
12692 }
12693
12694 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12695 self.p_next = p_next;
12696 }
12697
12698 fn address(&mut self) -> *mut std::ffi::c_void {
12699 std::ptr::from_mut(self).cast()
12700 }
12701}
12702
12703impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12704 for vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a>
12705{
12706}
12707
12708impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12709 for vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT<'a>
12710{
12711}
12712
12713impl<'a> crate::construction::sealed::ChainNode for vk::AttachmentDescriptionStencilLayout<'a> {
12714 const S_TYPE: vk::StructureType = vk::StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
12715
12716 fn s_type(&self) -> vk::StructureType {
12717 self.s_type
12718 }
12719
12720 fn p_next(&self) -> *const std::ffi::c_void {
12721 self.p_next.cast_const()
12722 }
12723
12724 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12725 self.p_next = p_next;
12726 }
12727
12728 fn address(&mut self) -> *mut std::ffi::c_void {
12729 std::ptr::from_mut(self).cast()
12730 }
12731}
12732
12733impl<'a, 'root> crate::Extends<vk::AttachmentDescription2<'root>>
12734 for vk::AttachmentDescriptionStencilLayout<'a>
12735{
12736}
12737
12738impl<'a> crate::construction::sealed::ChainNode
12739 for vk::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a>
12740{
12741 const S_TYPE: vk::StructureType =
12742 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
12743
12744 fn s_type(&self) -> vk::StructureType {
12745 self.s_type
12746 }
12747
12748 fn p_next(&self) -> *const std::ffi::c_void {
12749 self.p_next.cast_const()
12750 }
12751
12752 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12753 self.p_next = p_next;
12754 }
12755
12756 fn address(&mut self) -> *mut std::ffi::c_void {
12757 std::ptr::from_mut(self).cast()
12758 }
12759}
12760
12761impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12762 for vk::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a>
12763{
12764}
12765
12766impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12767 for vk::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR<'a>
12768{
12769}
12770
12771impl<'a> crate::construction::sealed::ChainNode for vk::PipelineInfoKHR<'a> {
12772 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_INFO_KHR;
12773
12774 fn s_type(&self) -> vk::StructureType {
12775 self.s_type
12776 }
12777
12778 fn p_next(&self) -> *const std::ffi::c_void {
12779 self.p_next
12780 }
12781
12782 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12783 self.p_next = p_next.cast_const();
12784 }
12785
12786 fn address(&mut self) -> *mut std::ffi::c_void {
12787 std::ptr::from_mut(self).cast()
12788 }
12789}
12790
12791impl<'a> crate::construction::sealed::ChainNode for vk::PipelineExecutablePropertiesKHR<'a> {
12792 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_EXECUTABLE_PROPERTIES_KHR;
12793
12794 fn s_type(&self) -> vk::StructureType {
12795 self.s_type
12796 }
12797
12798 fn p_next(&self) -> *const std::ffi::c_void {
12799 self.p_next.cast_const()
12800 }
12801
12802 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12803 self.p_next = p_next;
12804 }
12805
12806 fn address(&mut self) -> *mut std::ffi::c_void {
12807 std::ptr::from_mut(self).cast()
12808 }
12809}
12810
12811impl<'a> crate::construction::sealed::ChainNode for vk::PipelineExecutableInfoKHR<'a> {
12812 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_EXECUTABLE_INFO_KHR;
12813
12814 fn s_type(&self) -> vk::StructureType {
12815 self.s_type
12816 }
12817
12818 fn p_next(&self) -> *const std::ffi::c_void {
12819 self.p_next
12820 }
12821
12822 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12823 self.p_next = p_next.cast_const();
12824 }
12825
12826 fn address(&mut self) -> *mut std::ffi::c_void {
12827 std::ptr::from_mut(self).cast()
12828 }
12829}
12830
12831impl<'a> crate::construction::sealed::ChainNode for vk::PipelineExecutableStatisticKHR<'a> {
12832 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_EXECUTABLE_STATISTIC_KHR;
12833
12834 fn s_type(&self) -> vk::StructureType {
12835 self.s_type
12836 }
12837
12838 fn p_next(&self) -> *const std::ffi::c_void {
12839 self.p_next.cast_const()
12840 }
12841
12842 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12843 self.p_next = p_next;
12844 }
12845
12846 fn address(&mut self) -> *mut std::ffi::c_void {
12847 std::ptr::from_mut(self).cast()
12848 }
12849}
12850
12851impl<'a> crate::construction::sealed::ChainNode
12852 for vk::PipelineExecutableInternalRepresentationKHR<'a>
12853{
12854 const S_TYPE: vk::StructureType =
12855 vk::StructureType::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
12856
12857 fn s_type(&self) -> vk::StructureType {
12858 self.s_type
12859 }
12860
12861 fn p_next(&self) -> *const std::ffi::c_void {
12862 self.p_next.cast_const()
12863 }
12864
12865 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12866 self.p_next = p_next;
12867 }
12868
12869 fn address(&mut self) -> *mut std::ffi::c_void {
12870 std::ptr::from_mut(self).cast()
12871 }
12872}
12873
12874impl<'a> crate::construction::sealed::ChainNode
12875 for vk::PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a>
12876{
12877 const S_TYPE: vk::StructureType =
12878 vk::StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
12879
12880 fn s_type(&self) -> vk::StructureType {
12881 self.s_type
12882 }
12883
12884 fn p_next(&self) -> *const std::ffi::c_void {
12885 self.p_next.cast_const()
12886 }
12887
12888 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12889 self.p_next = p_next;
12890 }
12891
12892 fn address(&mut self) -> *mut std::ffi::c_void {
12893 std::ptr::from_mut(self).cast()
12894 }
12895}
12896
12897impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12898 for vk::PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a>
12899{
12900}
12901
12902impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12903 for vk::PhysicalDeviceShaderDemoteToHelperInvocationFeatures<'a>
12904{
12905}
12906
12907impl<'a> crate::construction::sealed::ChainNode
12908 for vk::PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a>
12909{
12910 const S_TYPE: vk::StructureType =
12911 vk::StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
12912
12913 fn s_type(&self) -> vk::StructureType {
12914 self.s_type
12915 }
12916
12917 fn p_next(&self) -> *const std::ffi::c_void {
12918 self.p_next.cast_const()
12919 }
12920
12921 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12922 self.p_next = p_next;
12923 }
12924
12925 fn address(&mut self) -> *mut std::ffi::c_void {
12926 std::ptr::from_mut(self).cast()
12927 }
12928}
12929
12930impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12931 for vk::PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a>
12932{
12933}
12934
12935impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12936 for vk::PhysicalDeviceTexelBufferAlignmentFeaturesEXT<'a>
12937{
12938}
12939
12940impl<'a> crate::construction::sealed::ChainNode
12941 for vk::PhysicalDeviceTexelBufferAlignmentProperties<'a>
12942{
12943 const S_TYPE: vk::StructureType =
12944 vk::StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
12945
12946 fn s_type(&self) -> vk::StructureType {
12947 self.s_type
12948 }
12949
12950 fn p_next(&self) -> *const std::ffi::c_void {
12951 self.p_next.cast_const()
12952 }
12953
12954 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12955 self.p_next = p_next;
12956 }
12957
12958 fn address(&mut self) -> *mut std::ffi::c_void {
12959 std::ptr::from_mut(self).cast()
12960 }
12961}
12962
12963impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
12964 for vk::PhysicalDeviceTexelBufferAlignmentProperties<'a>
12965{
12966}
12967
12968impl<'a> crate::construction::sealed::ChainNode
12969 for vk::PhysicalDeviceSubgroupSizeControlFeatures<'a>
12970{
12971 const S_TYPE: vk::StructureType =
12972 vk::StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
12973
12974 fn s_type(&self) -> vk::StructureType {
12975 self.s_type
12976 }
12977
12978 fn p_next(&self) -> *const std::ffi::c_void {
12979 self.p_next.cast_const()
12980 }
12981
12982 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
12983 self.p_next = p_next;
12984 }
12985
12986 fn address(&mut self) -> *mut std::ffi::c_void {
12987 std::ptr::from_mut(self).cast()
12988 }
12989}
12990
12991impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
12992 for vk::PhysicalDeviceSubgroupSizeControlFeatures<'a>
12993{
12994}
12995
12996impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
12997 for vk::PhysicalDeviceSubgroupSizeControlFeatures<'a>
12998{
12999}
13000
13001impl<'a> crate::construction::sealed::ChainNode
13002 for vk::PhysicalDeviceSubgroupSizeControlProperties<'a>
13003{
13004 const S_TYPE: vk::StructureType =
13005 vk::StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
13006
13007 fn s_type(&self) -> vk::StructureType {
13008 self.s_type
13009 }
13010
13011 fn p_next(&self) -> *const std::ffi::c_void {
13012 self.p_next.cast_const()
13013 }
13014
13015 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13016 self.p_next = p_next;
13017 }
13018
13019 fn address(&mut self) -> *mut std::ffi::c_void {
13020 std::ptr::from_mut(self).cast()
13021 }
13022}
13023
13024impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13025 for vk::PhysicalDeviceSubgroupSizeControlProperties<'a>
13026{
13027}
13028
13029impl<'a> crate::construction::sealed::ChainNode
13030 for vk::PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a>
13031{
13032 const S_TYPE: vk::StructureType =
13033 vk::StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
13034
13035 fn s_type(&self) -> vk::StructureType {
13036 self.s_type
13037 }
13038
13039 fn p_next(&self) -> *const std::ffi::c_void {
13040 self.p_next
13041 }
13042
13043 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13044 self.p_next = p_next.cast_const();
13045 }
13046
13047 fn address(&mut self) -> *mut std::ffi::c_void {
13048 std::ptr::from_mut(self).cast()
13049 }
13050}
13051
13052impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
13053 for vk::PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a>
13054{
13055}
13056
13057impl<'a, 'root> crate::Extends<vk::ShaderCreateInfoEXT<'root>>
13058 for vk::PipelineShaderStageRequiredSubgroupSizeCreateInfo<'a>
13059{
13060}
13061
13062impl<'a> crate::construction::sealed::ChainNode for vk::SubpassShadingPipelineCreateInfoHUAWEI<'a> {
13063 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
13064
13065 fn s_type(&self) -> vk::StructureType {
13066 self.s_type
13067 }
13068
13069 fn p_next(&self) -> *const std::ffi::c_void {
13070 self.p_next.cast_const()
13071 }
13072
13073 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13074 self.p_next = p_next;
13075 }
13076
13077 fn address(&mut self) -> *mut std::ffi::c_void {
13078 std::ptr::from_mut(self).cast()
13079 }
13080}
13081
13082impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
13083 for vk::SubpassShadingPipelineCreateInfoHUAWEI<'a>
13084{
13085}
13086
13087impl<'a> crate::construction::sealed::ChainNode
13088 for vk::PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a>
13089{
13090 const S_TYPE: vk::StructureType =
13091 vk::StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
13092
13093 fn s_type(&self) -> vk::StructureType {
13094 self.s_type
13095 }
13096
13097 fn p_next(&self) -> *const std::ffi::c_void {
13098 self.p_next.cast_const()
13099 }
13100
13101 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13102 self.p_next = p_next;
13103 }
13104
13105 fn address(&mut self) -> *mut std::ffi::c_void {
13106 std::ptr::from_mut(self).cast()
13107 }
13108}
13109
13110impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13111 for vk::PhysicalDeviceSubpassShadingPropertiesHUAWEI<'a>
13112{
13113}
13114
13115impl<'a> crate::construction::sealed::ChainNode
13116 for vk::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a>
13117{
13118 const S_TYPE: vk::StructureType =
13119 vk::StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI;
13120
13121 fn s_type(&self) -> vk::StructureType {
13122 self.s_type
13123 }
13124
13125 fn p_next(&self) -> *const std::ffi::c_void {
13126 self.p_next.cast_const()
13127 }
13128
13129 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13130 self.p_next = p_next;
13131 }
13132
13133 fn address(&mut self) -> *mut std::ffi::c_void {
13134 std::ptr::from_mut(self).cast()
13135 }
13136}
13137
13138impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13139 for vk::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI<'a>
13140{
13141}
13142
13143impl<'a> crate::construction::sealed::ChainNode for vk::MemoryOpaqueCaptureAddressAllocateInfo<'a> {
13144 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
13145
13146 fn s_type(&self) -> vk::StructureType {
13147 self.s_type
13148 }
13149
13150 fn p_next(&self) -> *const std::ffi::c_void {
13151 self.p_next
13152 }
13153
13154 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13155 self.p_next = p_next.cast_const();
13156 }
13157
13158 fn address(&mut self) -> *mut std::ffi::c_void {
13159 std::ptr::from_mut(self).cast()
13160 }
13161}
13162
13163impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
13164 for vk::MemoryOpaqueCaptureAddressAllocateInfo<'a>
13165{
13166}
13167
13168impl<'a> crate::construction::sealed::ChainNode for vk::DeviceMemoryOpaqueCaptureAddressInfo<'a> {
13169 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
13170
13171 fn s_type(&self) -> vk::StructureType {
13172 self.s_type
13173 }
13174
13175 fn p_next(&self) -> *const std::ffi::c_void {
13176 self.p_next
13177 }
13178
13179 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13180 self.p_next = p_next.cast_const();
13181 }
13182
13183 fn address(&mut self) -> *mut std::ffi::c_void {
13184 std::ptr::from_mut(self).cast()
13185 }
13186}
13187
13188impl<'a> crate::construction::sealed::ChainNode
13189 for vk::PhysicalDeviceLineRasterizationFeatures<'a>
13190{
13191 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES;
13192
13193 fn s_type(&self) -> vk::StructureType {
13194 self.s_type
13195 }
13196
13197 fn p_next(&self) -> *const std::ffi::c_void {
13198 self.p_next.cast_const()
13199 }
13200
13201 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13202 self.p_next = p_next;
13203 }
13204
13205 fn address(&mut self) -> *mut std::ffi::c_void {
13206 std::ptr::from_mut(self).cast()
13207 }
13208}
13209
13210impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13211 for vk::PhysicalDeviceLineRasterizationFeatures<'a>
13212{
13213}
13214
13215impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13216 for vk::PhysicalDeviceLineRasterizationFeatures<'a>
13217{
13218}
13219
13220impl<'a> crate::construction::sealed::ChainNode
13221 for vk::PhysicalDeviceLineRasterizationProperties<'a>
13222{
13223 const S_TYPE: vk::StructureType =
13224 vk::StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES;
13225
13226 fn s_type(&self) -> vk::StructureType {
13227 self.s_type
13228 }
13229
13230 fn p_next(&self) -> *const std::ffi::c_void {
13231 self.p_next.cast_const()
13232 }
13233
13234 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13235 self.p_next = p_next;
13236 }
13237
13238 fn address(&mut self) -> *mut std::ffi::c_void {
13239 std::ptr::from_mut(self).cast()
13240 }
13241}
13242
13243impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13244 for vk::PhysicalDeviceLineRasterizationProperties<'a>
13245{
13246}
13247
13248impl<'a> crate::construction::sealed::ChainNode
13249 for vk::PipelineRasterizationLineStateCreateInfo<'a>
13250{
13251 const S_TYPE: vk::StructureType =
13252 vk::StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO;
13253
13254 fn s_type(&self) -> vk::StructureType {
13255 self.s_type
13256 }
13257
13258 fn p_next(&self) -> *const std::ffi::c_void {
13259 self.p_next
13260 }
13261
13262 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13263 self.p_next = p_next.cast_const();
13264 }
13265
13266 fn address(&mut self) -> *mut std::ffi::c_void {
13267 std::ptr::from_mut(self).cast()
13268 }
13269}
13270
13271impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
13272 for vk::PipelineRasterizationLineStateCreateInfo<'a>
13273{
13274}
13275
13276impl<'a> crate::construction::sealed::ChainNode
13277 for vk::PhysicalDevicePipelineCreationCacheControlFeatures<'a>
13278{
13279 const S_TYPE: vk::StructureType =
13280 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
13281
13282 fn s_type(&self) -> vk::StructureType {
13283 self.s_type
13284 }
13285
13286 fn p_next(&self) -> *const std::ffi::c_void {
13287 self.p_next.cast_const()
13288 }
13289
13290 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13291 self.p_next = p_next;
13292 }
13293
13294 fn address(&mut self) -> *mut std::ffi::c_void {
13295 std::ptr::from_mut(self).cast()
13296 }
13297}
13298
13299impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13300 for vk::PhysicalDevicePipelineCreationCacheControlFeatures<'a>
13301{
13302}
13303
13304impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13305 for vk::PhysicalDevicePipelineCreationCacheControlFeatures<'a>
13306{
13307}
13308
13309impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan11Features<'a> {
13310 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
13311
13312 fn s_type(&self) -> vk::StructureType {
13313 self.s_type
13314 }
13315
13316 fn p_next(&self) -> *const std::ffi::c_void {
13317 self.p_next.cast_const()
13318 }
13319
13320 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13321 self.p_next = p_next;
13322 }
13323
13324 fn address(&mut self) -> *mut std::ffi::c_void {
13325 std::ptr::from_mut(self).cast()
13326 }
13327}
13328
13329impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13330 for vk::PhysicalDeviceVulkan11Features<'a>
13331{
13332}
13333
13334impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13335 for vk::PhysicalDeviceVulkan11Features<'a>
13336{
13337}
13338
13339impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan11Properties<'a> {
13340 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
13341
13342 fn s_type(&self) -> vk::StructureType {
13343 self.s_type
13344 }
13345
13346 fn p_next(&self) -> *const std::ffi::c_void {
13347 self.p_next.cast_const()
13348 }
13349
13350 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13351 self.p_next = p_next;
13352 }
13353
13354 fn address(&mut self) -> *mut std::ffi::c_void {
13355 std::ptr::from_mut(self).cast()
13356 }
13357}
13358
13359impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13360 for vk::PhysicalDeviceVulkan11Properties<'a>
13361{
13362}
13363
13364impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan12Features<'a> {
13365 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
13366
13367 fn s_type(&self) -> vk::StructureType {
13368 self.s_type
13369 }
13370
13371 fn p_next(&self) -> *const std::ffi::c_void {
13372 self.p_next.cast_const()
13373 }
13374
13375 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13376 self.p_next = p_next;
13377 }
13378
13379 fn address(&mut self) -> *mut std::ffi::c_void {
13380 std::ptr::from_mut(self).cast()
13381 }
13382}
13383
13384impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13385 for vk::PhysicalDeviceVulkan12Features<'a>
13386{
13387}
13388
13389impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13390 for vk::PhysicalDeviceVulkan12Features<'a>
13391{
13392}
13393
13394impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan12Properties<'a> {
13395 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
13396
13397 fn s_type(&self) -> vk::StructureType {
13398 self.s_type
13399 }
13400
13401 fn p_next(&self) -> *const std::ffi::c_void {
13402 self.p_next.cast_const()
13403 }
13404
13405 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13406 self.p_next = p_next;
13407 }
13408
13409 fn address(&mut self) -> *mut std::ffi::c_void {
13410 std::ptr::from_mut(self).cast()
13411 }
13412}
13413
13414impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13415 for vk::PhysicalDeviceVulkan12Properties<'a>
13416{
13417}
13418
13419impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan13Features<'a> {
13420 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
13421
13422 fn s_type(&self) -> vk::StructureType {
13423 self.s_type
13424 }
13425
13426 fn p_next(&self) -> *const std::ffi::c_void {
13427 self.p_next.cast_const()
13428 }
13429
13430 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13431 self.p_next = p_next;
13432 }
13433
13434 fn address(&mut self) -> *mut std::ffi::c_void {
13435 std::ptr::from_mut(self).cast()
13436 }
13437}
13438
13439impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13440 for vk::PhysicalDeviceVulkan13Features<'a>
13441{
13442}
13443
13444impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13445 for vk::PhysicalDeviceVulkan13Features<'a>
13446{
13447}
13448
13449impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan13Properties<'a> {
13450 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES;
13451
13452 fn s_type(&self) -> vk::StructureType {
13453 self.s_type
13454 }
13455
13456 fn p_next(&self) -> *const std::ffi::c_void {
13457 self.p_next.cast_const()
13458 }
13459
13460 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13461 self.p_next = p_next;
13462 }
13463
13464 fn address(&mut self) -> *mut std::ffi::c_void {
13465 std::ptr::from_mut(self).cast()
13466 }
13467}
13468
13469impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13470 for vk::PhysicalDeviceVulkan13Properties<'a>
13471{
13472}
13473
13474impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan14Features<'a> {
13475 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES;
13476
13477 fn s_type(&self) -> vk::StructureType {
13478 self.s_type
13479 }
13480
13481 fn p_next(&self) -> *const std::ffi::c_void {
13482 self.p_next.cast_const()
13483 }
13484
13485 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13486 self.p_next = p_next;
13487 }
13488
13489 fn address(&mut self) -> *mut std::ffi::c_void {
13490 std::ptr::from_mut(self).cast()
13491 }
13492}
13493
13494impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13495 for vk::PhysicalDeviceVulkan14Features<'a>
13496{
13497}
13498
13499impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13500 for vk::PhysicalDeviceVulkan14Features<'a>
13501{
13502}
13503
13504impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVulkan14Properties<'a> {
13505 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES;
13506
13507 fn s_type(&self) -> vk::StructureType {
13508 self.s_type
13509 }
13510
13511 fn p_next(&self) -> *const std::ffi::c_void {
13512 self.p_next.cast_const()
13513 }
13514
13515 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13516 self.p_next = p_next;
13517 }
13518
13519 fn address(&mut self) -> *mut std::ffi::c_void {
13520 std::ptr::from_mut(self).cast()
13521 }
13522}
13523
13524impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13525 for vk::PhysicalDeviceVulkan14Properties<'a>
13526{
13527}
13528
13529impl<'a> crate::construction::sealed::ChainNode for vk::PipelineCompilerControlCreateInfoAMD<'a> {
13530 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
13531
13532 fn s_type(&self) -> vk::StructureType {
13533 self.s_type
13534 }
13535
13536 fn p_next(&self) -> *const std::ffi::c_void {
13537 self.p_next
13538 }
13539
13540 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13541 self.p_next = p_next.cast_const();
13542 }
13543
13544 fn address(&mut self) -> *mut std::ffi::c_void {
13545 std::ptr::from_mut(self).cast()
13546 }
13547}
13548
13549impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
13550 for vk::PipelineCompilerControlCreateInfoAMD<'a>
13551{
13552}
13553
13554impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
13555 for vk::PipelineCompilerControlCreateInfoAMD<'a>
13556{
13557}
13558
13559#[cfg(feature = "provisional")]
13560impl<'a, 'root> crate::Extends<vk::ExecutionGraphPipelineCreateInfoAMDX<'root>>
13561 for vk::PipelineCompilerControlCreateInfoAMD<'a>
13562{
13563}
13564
13565impl<'a> crate::construction::sealed::ChainNode
13566 for vk::PhysicalDeviceCoherentMemoryFeaturesAMD<'a>
13567{
13568 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
13569
13570 fn s_type(&self) -> vk::StructureType {
13571 self.s_type
13572 }
13573
13574 fn p_next(&self) -> *const std::ffi::c_void {
13575 self.p_next.cast_const()
13576 }
13577
13578 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13579 self.p_next = p_next;
13580 }
13581
13582 fn address(&mut self) -> *mut std::ffi::c_void {
13583 std::ptr::from_mut(self).cast()
13584 }
13585}
13586
13587impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13588 for vk::PhysicalDeviceCoherentMemoryFeaturesAMD<'a>
13589{
13590}
13591
13592impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13593 for vk::PhysicalDeviceCoherentMemoryFeaturesAMD<'a>
13594{
13595}
13596
13597impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceGpaFeaturesAMD<'a> {
13598 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_GPA_FEATURES_AMD;
13599
13600 fn s_type(&self) -> vk::StructureType {
13601 self.s_type
13602 }
13603
13604 fn p_next(&self) -> *const std::ffi::c_void {
13605 self.p_next.cast_const()
13606 }
13607
13608 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13609 self.p_next = p_next;
13610 }
13611
13612 fn address(&mut self) -> *mut std::ffi::c_void {
13613 std::ptr::from_mut(self).cast()
13614 }
13615}
13616
13617impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13618 for vk::PhysicalDeviceGpaFeaturesAMD<'a>
13619{
13620}
13621
13622impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13623 for vk::PhysicalDeviceGpaFeaturesAMD<'a>
13624{
13625}
13626
13627impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceGpaPropertiesAMD<'a> {
13628 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_GPA_PROPERTIES_AMD;
13629
13630 fn s_type(&self) -> vk::StructureType {
13631 self.s_type
13632 }
13633
13634 fn p_next(&self) -> *const std::ffi::c_void {
13635 self.p_next.cast_const()
13636 }
13637
13638 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13639 self.p_next = p_next;
13640 }
13641
13642 fn address(&mut self) -> *mut std::ffi::c_void {
13643 std::ptr::from_mut(self).cast()
13644 }
13645}
13646
13647impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13648 for vk::PhysicalDeviceGpaPropertiesAMD<'a>
13649{
13650}
13651
13652impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceGpaProperties2AMD<'a> {
13653 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_GPA_PROPERTIES_2_AMD;
13654
13655 fn s_type(&self) -> vk::StructureType {
13656 self.s_type
13657 }
13658
13659 fn p_next(&self) -> *const std::ffi::c_void {
13660 self.p_next.cast_const()
13661 }
13662
13663 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13664 self.p_next = p_next;
13665 }
13666
13667 fn address(&mut self) -> *mut std::ffi::c_void {
13668 std::ptr::from_mut(self).cast()
13669 }
13670}
13671
13672impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13673 for vk::PhysicalDeviceGpaProperties2AMD<'a>
13674{
13675}
13676
13677impl<'a> crate::construction::sealed::ChainNode for vk::GpaSampleBeginInfoAMD<'a> {
13678 const S_TYPE: vk::StructureType = vk::StructureType::GPA_SAMPLE_BEGIN_INFO_AMD;
13679
13680 fn s_type(&self) -> vk::StructureType {
13681 self.s_type
13682 }
13683
13684 fn p_next(&self) -> *const std::ffi::c_void {
13685 self.p_next
13686 }
13687
13688 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13689 self.p_next = p_next.cast_const();
13690 }
13691
13692 fn address(&mut self) -> *mut std::ffi::c_void {
13693 std::ptr::from_mut(self).cast()
13694 }
13695}
13696
13697impl<'a> crate::construction::sealed::ChainNode for vk::GpaDeviceClockModeInfoAMD<'a> {
13698 const S_TYPE: vk::StructureType = vk::StructureType::GPA_DEVICE_CLOCK_MODE_INFO_AMD;
13699
13700 fn s_type(&self) -> vk::StructureType {
13701 self.s_type
13702 }
13703
13704 fn p_next(&self) -> *const std::ffi::c_void {
13705 self.p_next
13706 }
13707
13708 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13709 self.p_next = p_next.cast_const();
13710 }
13711
13712 fn address(&mut self) -> *mut std::ffi::c_void {
13713 std::ptr::from_mut(self).cast()
13714 }
13715}
13716
13717impl<'a> crate::construction::sealed::ChainNode for vk::GpaDeviceGetClockInfoAMD<'a> {
13718 const S_TYPE: vk::StructureType = vk::StructureType::GPA_DEVICE_GET_CLOCK_INFO_AMD;
13719
13720 fn s_type(&self) -> vk::StructureType {
13721 self.s_type
13722 }
13723
13724 fn p_next(&self) -> *const std::ffi::c_void {
13725 self.p_next.cast_const()
13726 }
13727
13728 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13729 self.p_next = p_next;
13730 }
13731
13732 fn address(&mut self) -> *mut std::ffi::c_void {
13733 std::ptr::from_mut(self).cast()
13734 }
13735}
13736
13737impl<'a> crate::construction::sealed::ChainNode for vk::GpaSessionCreateInfoAMD<'a> {
13738 const S_TYPE: vk::StructureType = vk::StructureType::GPA_SESSION_CREATE_INFO_AMD;
13739
13740 fn s_type(&self) -> vk::StructureType {
13741 self.s_type
13742 }
13743
13744 fn p_next(&self) -> *const std::ffi::c_void {
13745 self.p_next
13746 }
13747
13748 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13749 self.p_next = p_next.cast_const();
13750 }
13751
13752 fn address(&mut self) -> *mut std::ffi::c_void {
13753 std::ptr::from_mut(self).cast()
13754 }
13755}
13756
13757impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceToolProperties<'a> {
13758 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_TOOL_PROPERTIES;
13759
13760 fn s_type(&self) -> vk::StructureType {
13761 self.s_type
13762 }
13763
13764 fn p_next(&self) -> *const std::ffi::c_void {
13765 self.p_next.cast_const()
13766 }
13767
13768 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13769 self.p_next = p_next;
13770 }
13771
13772 fn address(&mut self) -> *mut std::ffi::c_void {
13773 std::ptr::from_mut(self).cast()
13774 }
13775}
13776
13777impl<'a> crate::construction::sealed::ChainNode for vk::SamplerCustomBorderColorCreateInfoEXT<'a> {
13778 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
13779
13780 fn s_type(&self) -> vk::StructureType {
13781 self.s_type
13782 }
13783
13784 fn p_next(&self) -> *const std::ffi::c_void {
13785 self.p_next
13786 }
13787
13788 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13789 self.p_next = p_next.cast_const();
13790 }
13791
13792 fn address(&mut self) -> *mut std::ffi::c_void {
13793 std::ptr::from_mut(self).cast()
13794 }
13795}
13796
13797impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
13798 for vk::SamplerCustomBorderColorCreateInfoEXT<'a>
13799{
13800}
13801
13802impl<'a> crate::construction::sealed::ChainNode
13803 for vk::PhysicalDeviceCustomBorderColorPropertiesEXT<'a>
13804{
13805 const S_TYPE: vk::StructureType =
13806 vk::StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
13807
13808 fn s_type(&self) -> vk::StructureType {
13809 self.s_type
13810 }
13811
13812 fn p_next(&self) -> *const std::ffi::c_void {
13813 self.p_next.cast_const()
13814 }
13815
13816 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13817 self.p_next = p_next;
13818 }
13819
13820 fn address(&mut self) -> *mut std::ffi::c_void {
13821 std::ptr::from_mut(self).cast()
13822 }
13823}
13824
13825impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
13826 for vk::PhysicalDeviceCustomBorderColorPropertiesEXT<'a>
13827{
13828}
13829
13830impl<'a> crate::construction::sealed::ChainNode
13831 for vk::PhysicalDeviceCustomBorderColorFeaturesEXT<'a>
13832{
13833 const S_TYPE: vk::StructureType =
13834 vk::StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
13835
13836 fn s_type(&self) -> vk::StructureType {
13837 self.s_type
13838 }
13839
13840 fn p_next(&self) -> *const std::ffi::c_void {
13841 self.p_next.cast_const()
13842 }
13843
13844 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13845 self.p_next = p_next;
13846 }
13847
13848 fn address(&mut self) -> *mut std::ffi::c_void {
13849 std::ptr::from_mut(self).cast()
13850 }
13851}
13852
13853impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13854 for vk::PhysicalDeviceCustomBorderColorFeaturesEXT<'a>
13855{
13856}
13857
13858impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13859 for vk::PhysicalDeviceCustomBorderColorFeaturesEXT<'a>
13860{
13861}
13862
13863impl<'a> crate::construction::sealed::ChainNode
13864 for vk::SamplerBorderColorComponentMappingCreateInfoEXT<'a>
13865{
13866 const S_TYPE: vk::StructureType =
13867 vk::StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT;
13868
13869 fn s_type(&self) -> vk::StructureType {
13870 self.s_type
13871 }
13872
13873 fn p_next(&self) -> *const std::ffi::c_void {
13874 self.p_next
13875 }
13876
13877 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13878 self.p_next = p_next.cast_const();
13879 }
13880
13881 fn address(&mut self) -> *mut std::ffi::c_void {
13882 std::ptr::from_mut(self).cast()
13883 }
13884}
13885
13886impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
13887 for vk::SamplerBorderColorComponentMappingCreateInfoEXT<'a>
13888{
13889}
13890
13891impl<'a> crate::construction::sealed::ChainNode
13892 for vk::PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a>
13893{
13894 const S_TYPE: vk::StructureType =
13895 vk::StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT;
13896
13897 fn s_type(&self) -> vk::StructureType {
13898 self.s_type
13899 }
13900
13901 fn p_next(&self) -> *const std::ffi::c_void {
13902 self.p_next.cast_const()
13903 }
13904
13905 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13906 self.p_next = p_next;
13907 }
13908
13909 fn address(&mut self) -> *mut std::ffi::c_void {
13910 std::ptr::from_mut(self).cast()
13911 }
13912}
13913
13914impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
13915 for vk::PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a>
13916{
13917}
13918
13919impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
13920 for vk::PhysicalDeviceBorderColorSwizzleFeaturesEXT<'a>
13921{
13922}
13923
13924impl<'a> crate::construction::sealed::ChainNode
13925 for vk::AccelerationStructureGeometryTrianglesDataKHR<'a>
13926{
13927 const S_TYPE: vk::StructureType =
13928 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
13929
13930 fn s_type(&self) -> vk::StructureType {
13931 self.s_type
13932 }
13933
13934 fn p_next(&self) -> *const std::ffi::c_void {
13935 self.p_next
13936 }
13937
13938 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13939 self.p_next = p_next.cast_const();
13940 }
13941
13942 fn address(&mut self) -> *mut std::ffi::c_void {
13943 std::ptr::from_mut(self).cast()
13944 }
13945}
13946
13947impl<'a> crate::construction::sealed::ChainNode
13948 for vk::AccelerationStructureGeometryAabbsDataKHR<'a>
13949{
13950 const S_TYPE: vk::StructureType =
13951 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
13952
13953 fn s_type(&self) -> vk::StructureType {
13954 self.s_type
13955 }
13956
13957 fn p_next(&self) -> *const std::ffi::c_void {
13958 self.p_next
13959 }
13960
13961 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13962 self.p_next = p_next.cast_const();
13963 }
13964
13965 fn address(&mut self) -> *mut std::ffi::c_void {
13966 std::ptr::from_mut(self).cast()
13967 }
13968}
13969
13970impl<'a> crate::construction::sealed::ChainNode
13971 for vk::AccelerationStructureGeometryInstancesDataKHR<'a>
13972{
13973 const S_TYPE: vk::StructureType =
13974 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
13975
13976 fn s_type(&self) -> vk::StructureType {
13977 self.s_type
13978 }
13979
13980 fn p_next(&self) -> *const std::ffi::c_void {
13981 self.p_next
13982 }
13983
13984 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
13985 self.p_next = p_next.cast_const();
13986 }
13987
13988 fn address(&mut self) -> *mut std::ffi::c_void {
13989 std::ptr::from_mut(self).cast()
13990 }
13991}
13992
13993impl<'a> crate::construction::sealed::ChainNode
13994 for vk::AccelerationStructureGeometryLinearSweptSpheresDataNV<'a>
13995{
13996 const S_TYPE: vk::StructureType =
13997 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV;
13998
13999 fn s_type(&self) -> vk::StructureType {
14000 self.s_type
14001 }
14002
14003 fn p_next(&self) -> *const std::ffi::c_void {
14004 self.p_next
14005 }
14006
14007 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14008 self.p_next = p_next.cast_const();
14009 }
14010
14011 fn address(&mut self) -> *mut std::ffi::c_void {
14012 std::ptr::from_mut(self).cast()
14013 }
14014}
14015
14016impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryKHR<'root>>
14017 for vk::AccelerationStructureGeometryLinearSweptSpheresDataNV<'a>
14018{
14019}
14020
14021impl<'a> crate::construction::sealed::ChainNode
14022 for vk::AccelerationStructureGeometrySpheresDataNV<'a>
14023{
14024 const S_TYPE: vk::StructureType =
14025 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV;
14026
14027 fn s_type(&self) -> vk::StructureType {
14028 self.s_type
14029 }
14030
14031 fn p_next(&self) -> *const std::ffi::c_void {
14032 self.p_next
14033 }
14034
14035 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14036 self.p_next = p_next.cast_const();
14037 }
14038
14039 fn address(&mut self) -> *mut std::ffi::c_void {
14040 std::ptr::from_mut(self).cast()
14041 }
14042}
14043
14044impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryKHR<'root>>
14045 for vk::AccelerationStructureGeometrySpheresDataNV<'a>
14046{
14047}
14048
14049impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureGeometryKHR<'a> {
14050 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_KHR;
14051
14052 fn s_type(&self) -> vk::StructureType {
14053 self.s_type
14054 }
14055
14056 fn p_next(&self) -> *const std::ffi::c_void {
14057 self.p_next
14058 }
14059
14060 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14061 self.p_next = p_next.cast_const();
14062 }
14063
14064 fn address(&mut self) -> *mut std::ffi::c_void {
14065 std::ptr::from_mut(self).cast()
14066 }
14067}
14068
14069impl<'a> crate::construction::sealed::ChainNode
14070 for vk::AccelerationStructureBuildGeometryInfoKHR<'a>
14071{
14072 const S_TYPE: vk::StructureType =
14073 vk::StructureType::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
14074
14075 fn s_type(&self) -> vk::StructureType {
14076 self.s_type
14077 }
14078
14079 fn p_next(&self) -> *const std::ffi::c_void {
14080 self.p_next
14081 }
14082
14083 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14084 self.p_next = p_next.cast_const();
14085 }
14086
14087 fn address(&mut self) -> *mut std::ffi::c_void {
14088 std::ptr::from_mut(self).cast()
14089 }
14090}
14091
14092impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureCreateInfoKHR<'a> {
14093 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
14094
14095 fn s_type(&self) -> vk::StructureType {
14096 self.s_type
14097 }
14098
14099 fn p_next(&self) -> *const std::ffi::c_void {
14100 self.p_next
14101 }
14102
14103 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14104 self.p_next = p_next.cast_const();
14105 }
14106
14107 fn address(&mut self) -> *mut std::ffi::c_void {
14108 std::ptr::from_mut(self).cast()
14109 }
14110}
14111
14112impl<'a> crate::construction::sealed::ChainNode
14113 for vk::AccelerationStructureDeviceAddressInfoKHR<'a>
14114{
14115 const S_TYPE: vk::StructureType =
14116 vk::StructureType::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
14117
14118 fn s_type(&self) -> vk::StructureType {
14119 self.s_type
14120 }
14121
14122 fn p_next(&self) -> *const std::ffi::c_void {
14123 self.p_next
14124 }
14125
14126 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14127 self.p_next = p_next.cast_const();
14128 }
14129
14130 fn address(&mut self) -> *mut std::ffi::c_void {
14131 std::ptr::from_mut(self).cast()
14132 }
14133}
14134
14135impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureVersionInfoKHR<'a> {
14136 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
14137
14138 fn s_type(&self) -> vk::StructureType {
14139 self.s_type
14140 }
14141
14142 fn p_next(&self) -> *const std::ffi::c_void {
14143 self.p_next
14144 }
14145
14146 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14147 self.p_next = p_next.cast_const();
14148 }
14149
14150 fn address(&mut self) -> *mut std::ffi::c_void {
14151 std::ptr::from_mut(self).cast()
14152 }
14153}
14154
14155impl<'a> crate::construction::sealed::ChainNode for vk::CopyAccelerationStructureInfoKHR<'a> {
14156 const S_TYPE: vk::StructureType = vk::StructureType::COPY_ACCELERATION_STRUCTURE_INFO_KHR;
14157
14158 fn s_type(&self) -> vk::StructureType {
14159 self.s_type
14160 }
14161
14162 fn p_next(&self) -> *const std::ffi::c_void {
14163 self.p_next
14164 }
14165
14166 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14167 self.p_next = p_next.cast_const();
14168 }
14169
14170 fn address(&mut self) -> *mut std::ffi::c_void {
14171 std::ptr::from_mut(self).cast()
14172 }
14173}
14174
14175impl<'a> crate::construction::sealed::ChainNode
14176 for vk::CopyAccelerationStructureToMemoryInfoKHR<'a>
14177{
14178 const S_TYPE: vk::StructureType =
14179 vk::StructureType::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
14180
14181 fn s_type(&self) -> vk::StructureType {
14182 self.s_type
14183 }
14184
14185 fn p_next(&self) -> *const std::ffi::c_void {
14186 self.p_next
14187 }
14188
14189 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14190 self.p_next = p_next.cast_const();
14191 }
14192
14193 fn address(&mut self) -> *mut std::ffi::c_void {
14194 std::ptr::from_mut(self).cast()
14195 }
14196}
14197
14198impl<'a> crate::construction::sealed::ChainNode
14199 for vk::CopyMemoryToAccelerationStructureInfoKHR<'a>
14200{
14201 const S_TYPE: vk::StructureType =
14202 vk::StructureType::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
14203
14204 fn s_type(&self) -> vk::StructureType {
14205 self.s_type
14206 }
14207
14208 fn p_next(&self) -> *const std::ffi::c_void {
14209 self.p_next
14210 }
14211
14212 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14213 self.p_next = p_next.cast_const();
14214 }
14215
14216 fn address(&mut self) -> *mut std::ffi::c_void {
14217 std::ptr::from_mut(self).cast()
14218 }
14219}
14220
14221impl<'a> crate::construction::sealed::ChainNode
14222 for vk::RayTracingPipelineInterfaceCreateInfoKHR<'a>
14223{
14224 const S_TYPE: vk::StructureType =
14225 vk::StructureType::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
14226
14227 fn s_type(&self) -> vk::StructureType {
14228 self.s_type
14229 }
14230
14231 fn p_next(&self) -> *const std::ffi::c_void {
14232 self.p_next
14233 }
14234
14235 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14236 self.p_next = p_next.cast_const();
14237 }
14238
14239 fn address(&mut self) -> *mut std::ffi::c_void {
14240 std::ptr::from_mut(self).cast()
14241 }
14242}
14243
14244impl<'a> crate::construction::sealed::ChainNode for vk::PipelineLibraryCreateInfoKHR<'a> {
14245 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR;
14246
14247 fn s_type(&self) -> vk::StructureType {
14248 self.s_type
14249 }
14250
14251 fn p_next(&self) -> *const std::ffi::c_void {
14252 self.p_next
14253 }
14254
14255 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14256 self.p_next = p_next.cast_const();
14257 }
14258
14259 fn address(&mut self) -> *mut std::ffi::c_void {
14260 std::ptr::from_mut(self).cast()
14261 }
14262}
14263
14264impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
14265 for vk::PipelineLibraryCreateInfoKHR<'a>
14266{
14267}
14268
14269impl<'a> crate::construction::sealed::ChainNode
14270 for vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a>
14271{
14272 const S_TYPE: vk::StructureType =
14273 vk::StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
14274
14275 fn s_type(&self) -> vk::StructureType {
14276 self.s_type
14277 }
14278
14279 fn p_next(&self) -> *const std::ffi::c_void {
14280 self.p_next.cast_const()
14281 }
14282
14283 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14284 self.p_next = p_next;
14285 }
14286
14287 fn address(&mut self) -> *mut std::ffi::c_void {
14288 std::ptr::from_mut(self).cast()
14289 }
14290}
14291
14292impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14293 for vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a>
14294{
14295}
14296
14297impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14298 for vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT<'a>
14299{
14300}
14301
14302impl<'a> crate::construction::sealed::ChainNode
14303 for vk::PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a>
14304{
14305 const S_TYPE: vk::StructureType =
14306 vk::StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
14307
14308 fn s_type(&self) -> vk::StructureType {
14309 self.s_type
14310 }
14311
14312 fn p_next(&self) -> *const std::ffi::c_void {
14313 self.p_next.cast_const()
14314 }
14315
14316 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14317 self.p_next = p_next;
14318 }
14319
14320 fn address(&mut self) -> *mut std::ffi::c_void {
14321 std::ptr::from_mut(self).cast()
14322 }
14323}
14324
14325impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14326 for vk::PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a>
14327{
14328}
14329
14330impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14331 for vk::PhysicalDeviceExtendedDynamicState2FeaturesEXT<'a>
14332{
14333}
14334
14335impl<'a> crate::construction::sealed::ChainNode
14336 for vk::PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a>
14337{
14338 const S_TYPE: vk::StructureType =
14339 vk::StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
14340
14341 fn s_type(&self) -> vk::StructureType {
14342 self.s_type
14343 }
14344
14345 fn p_next(&self) -> *const std::ffi::c_void {
14346 self.p_next.cast_const()
14347 }
14348
14349 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14350 self.p_next = p_next;
14351 }
14352
14353 fn address(&mut self) -> *mut std::ffi::c_void {
14354 std::ptr::from_mut(self).cast()
14355 }
14356}
14357
14358impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14359 for vk::PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a>
14360{
14361}
14362
14363impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14364 for vk::PhysicalDeviceExtendedDynamicState3FeaturesEXT<'a>
14365{
14366}
14367
14368impl<'a> crate::construction::sealed::ChainNode
14369 for vk::PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a>
14370{
14371 const S_TYPE: vk::StructureType =
14372 vk::StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT;
14373
14374 fn s_type(&self) -> vk::StructureType {
14375 self.s_type
14376 }
14377
14378 fn p_next(&self) -> *const std::ffi::c_void {
14379 self.p_next.cast_const()
14380 }
14381
14382 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14383 self.p_next = p_next;
14384 }
14385
14386 fn address(&mut self) -> *mut std::ffi::c_void {
14387 std::ptr::from_mut(self).cast()
14388 }
14389}
14390
14391impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
14392 for vk::PhysicalDeviceExtendedDynamicState3PropertiesEXT<'a>
14393{
14394}
14395
14396impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceExtendedFlagsFeaturesKHR<'a> {
14397 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_EXTENDED_FLAGS_FEATURES_KHR;
14398
14399 fn s_type(&self) -> vk::StructureType {
14400 self.s_type
14401 }
14402
14403 fn p_next(&self) -> *const std::ffi::c_void {
14404 self.p_next.cast_const()
14405 }
14406
14407 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14408 self.p_next = p_next;
14409 }
14410
14411 fn address(&mut self) -> *mut std::ffi::c_void {
14412 std::ptr::from_mut(self).cast()
14413 }
14414}
14415
14416impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14417 for vk::PhysicalDeviceExtendedFlagsFeaturesKHR<'a>
14418{
14419}
14420
14421impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14422 for vk::PhysicalDeviceExtendedFlagsFeaturesKHR<'a>
14423{
14424}
14425
14426impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassTransformBeginInfoQCOM<'a> {
14427 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
14428
14429 fn s_type(&self) -> vk::StructureType {
14430 self.s_type
14431 }
14432
14433 fn p_next(&self) -> *const std::ffi::c_void {
14434 self.p_next
14435 }
14436
14437 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14438 self.p_next = p_next.cast_const();
14439 }
14440
14441 fn address(&mut self) -> *mut std::ffi::c_void {
14442 std::ptr::from_mut(self).cast()
14443 }
14444}
14445
14446impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
14447 for vk::RenderPassTransformBeginInfoQCOM<'a>
14448{
14449}
14450
14451impl<'a> crate::construction::sealed::ChainNode for vk::CopyCommandTransformInfoQCOM<'a> {
14452 const S_TYPE: vk::StructureType = vk::StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM;
14453
14454 fn s_type(&self) -> vk::StructureType {
14455 self.s_type
14456 }
14457
14458 fn p_next(&self) -> *const std::ffi::c_void {
14459 self.p_next
14460 }
14461
14462 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14463 self.p_next = p_next.cast_const();
14464 }
14465
14466 fn address(&mut self) -> *mut std::ffi::c_void {
14467 std::ptr::from_mut(self).cast()
14468 }
14469}
14470
14471impl<'a, 'root> crate::Extends<vk::BufferImageCopy2<'root>>
14472 for vk::CopyCommandTransformInfoQCOM<'a>
14473{
14474}
14475
14476impl<'a, 'root> crate::Extends<vk::ImageBlit2<'root>> for vk::CopyCommandTransformInfoQCOM<'a> {}
14477
14478impl<'a, 'root> crate::Extends<vk::DeviceMemoryImageCopyKHR<'root>>
14479 for vk::CopyCommandTransformInfoQCOM<'a>
14480{
14481}
14482
14483impl<'a> crate::construction::sealed::ChainNode
14484 for vk::CommandBufferInheritanceRenderPassTransformInfoQCOM<'a>
14485{
14486 const S_TYPE: vk::StructureType =
14487 vk::StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
14488
14489 fn s_type(&self) -> vk::StructureType {
14490 self.s_type
14491 }
14492
14493 fn p_next(&self) -> *const std::ffi::c_void {
14494 self.p_next
14495 }
14496
14497 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14498 self.p_next = p_next.cast_const();
14499 }
14500
14501 fn address(&mut self) -> *mut std::ffi::c_void {
14502 std::ptr::from_mut(self).cast()
14503 }
14504}
14505
14506impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
14507 for vk::CommandBufferInheritanceRenderPassTransformInfoQCOM<'a>
14508{
14509}
14510
14511impl<'a> crate::construction::sealed::ChainNode
14512 for vk::PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'a>
14513{
14514 const S_TYPE: vk::StructureType =
14515 vk::StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV;
14516
14517 fn s_type(&self) -> vk::StructureType {
14518 self.s_type
14519 }
14520
14521 fn p_next(&self) -> *const std::ffi::c_void {
14522 self.p_next.cast_const()
14523 }
14524
14525 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14526 self.p_next = p_next;
14527 }
14528
14529 fn address(&mut self) -> *mut std::ffi::c_void {
14530 std::ptr::from_mut(self).cast()
14531 }
14532}
14533
14534impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14535 for vk::PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'a>
14536{
14537}
14538
14539impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14540 for vk::PhysicalDevicePartitionedAccelerationStructureFeaturesNV<'a>
14541{
14542}
14543
14544impl<'a> crate::construction::sealed::ChainNode
14545 for vk::PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'a>
14546{
14547 const S_TYPE: vk::StructureType =
14548 vk::StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV;
14549
14550 fn s_type(&self) -> vk::StructureType {
14551 self.s_type
14552 }
14553
14554 fn p_next(&self) -> *const std::ffi::c_void {
14555 self.p_next.cast_const()
14556 }
14557
14558 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14559 self.p_next = p_next;
14560 }
14561
14562 fn address(&mut self) -> *mut std::ffi::c_void {
14563 std::ptr::from_mut(self).cast()
14564 }
14565}
14566
14567impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
14568 for vk::PhysicalDevicePartitionedAccelerationStructurePropertiesNV<'a>
14569{
14570}
14571
14572impl<'a> crate::construction::sealed::ChainNode
14573 for vk::PartitionedAccelerationStructureFlagsNV<'a>
14574{
14575 const S_TYPE: vk::StructureType = vk::StructureType::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV;
14576
14577 fn s_type(&self) -> vk::StructureType {
14578 self.s_type
14579 }
14580
14581 fn p_next(&self) -> *const std::ffi::c_void {
14582 self.p_next.cast_const()
14583 }
14584
14585 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14586 self.p_next = p_next;
14587 }
14588
14589 fn address(&mut self) -> *mut std::ffi::c_void {
14590 std::ptr::from_mut(self).cast()
14591 }
14592}
14593
14594impl<'a, 'root> crate::Extends<vk::PartitionedAccelerationStructureInstancesInputNV<'root>>
14595 for vk::PartitionedAccelerationStructureFlagsNV<'a>
14596{
14597}
14598
14599impl<'a> crate::construction::sealed::ChainNode
14600 for vk::WriteDescriptorSetPartitionedAccelerationStructureNV<'a>
14601{
14602 const S_TYPE: vk::StructureType =
14603 vk::StructureType::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV;
14604
14605 fn s_type(&self) -> vk::StructureType {
14606 self.s_type
14607 }
14608
14609 fn p_next(&self) -> *const std::ffi::c_void {
14610 self.p_next.cast_const()
14611 }
14612
14613 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14614 self.p_next = p_next;
14615 }
14616
14617 fn address(&mut self) -> *mut std::ffi::c_void {
14618 std::ptr::from_mut(self).cast()
14619 }
14620}
14621
14622impl<'a, 'root> crate::Extends<vk::WriteDescriptorSet<'root>>
14623 for vk::WriteDescriptorSetPartitionedAccelerationStructureNV<'a>
14624{
14625}
14626
14627impl<'a> crate::construction::sealed::ChainNode
14628 for vk::PartitionedAccelerationStructureInstancesInputNV<'a>
14629{
14630 const S_TYPE: vk::StructureType =
14631 vk::StructureType::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV;
14632
14633 fn s_type(&self) -> vk::StructureType {
14634 self.s_type
14635 }
14636
14637 fn p_next(&self) -> *const std::ffi::c_void {
14638 self.p_next.cast_const()
14639 }
14640
14641 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14642 self.p_next = p_next;
14643 }
14644
14645 fn address(&mut self) -> *mut std::ffi::c_void {
14646 std::ptr::from_mut(self).cast()
14647 }
14648}
14649
14650impl<'a> crate::construction::sealed::ChainNode
14651 for vk::BuildPartitionedAccelerationStructureInfoNV<'a>
14652{
14653 const S_TYPE: vk::StructureType =
14654 vk::StructureType::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV;
14655
14656 fn s_type(&self) -> vk::StructureType {
14657 self.s_type
14658 }
14659
14660 fn p_next(&self) -> *const std::ffi::c_void {
14661 self.p_next.cast_const()
14662 }
14663
14664 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14665 self.p_next = p_next;
14666 }
14667
14668 fn address(&mut self) -> *mut std::ffi::c_void {
14669 std::ptr::from_mut(self).cast()
14670 }
14671}
14672
14673impl<'a> crate::construction::sealed::ChainNode
14674 for vk::PhysicalDeviceDiagnosticsConfigFeaturesNV<'a>
14675{
14676 const S_TYPE: vk::StructureType =
14677 vk::StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV;
14678
14679 fn s_type(&self) -> vk::StructureType {
14680 self.s_type
14681 }
14682
14683 fn p_next(&self) -> *const std::ffi::c_void {
14684 self.p_next.cast_const()
14685 }
14686
14687 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14688 self.p_next = p_next;
14689 }
14690
14691 fn address(&mut self) -> *mut std::ffi::c_void {
14692 std::ptr::from_mut(self).cast()
14693 }
14694}
14695
14696impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14697 for vk::PhysicalDeviceDiagnosticsConfigFeaturesNV<'a>
14698{
14699}
14700
14701impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14702 for vk::PhysicalDeviceDiagnosticsConfigFeaturesNV<'a>
14703{
14704}
14705
14706impl<'a> crate::construction::sealed::ChainNode for vk::DeviceDiagnosticsConfigCreateInfoNV<'a> {
14707 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
14708
14709 fn s_type(&self) -> vk::StructureType {
14710 self.s_type
14711 }
14712
14713 fn p_next(&self) -> *const std::ffi::c_void {
14714 self.p_next
14715 }
14716
14717 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14718 self.p_next = p_next.cast_const();
14719 }
14720
14721 fn address(&mut self) -> *mut std::ffi::c_void {
14722 std::ptr::from_mut(self).cast()
14723 }
14724}
14725
14726impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14727 for vk::DeviceDiagnosticsConfigCreateInfoNV<'a>
14728{
14729}
14730
14731impl<'a> crate::construction::sealed::ChainNode
14732 for vk::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a>
14733{
14734 const S_TYPE: vk::StructureType =
14735 vk::StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
14736
14737 fn s_type(&self) -> vk::StructureType {
14738 self.s_type
14739 }
14740
14741 fn p_next(&self) -> *const std::ffi::c_void {
14742 self.p_next.cast_const()
14743 }
14744
14745 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14746 self.p_next = p_next;
14747 }
14748
14749 fn address(&mut self) -> *mut std::ffi::c_void {
14750 std::ptr::from_mut(self).cast()
14751 }
14752}
14753
14754impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14755 for vk::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a>
14756{
14757}
14758
14759impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14760 for vk::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures<'a>
14761{
14762}
14763
14764impl<'a> crate::construction::sealed::ChainNode
14765 for vk::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a>
14766{
14767 const S_TYPE: vk::StructureType =
14768 vk::StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
14769
14770 fn s_type(&self) -> vk::StructureType {
14771 self.s_type
14772 }
14773
14774 fn p_next(&self) -> *const std::ffi::c_void {
14775 self.p_next.cast_const()
14776 }
14777
14778 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14779 self.p_next = p_next;
14780 }
14781
14782 fn address(&mut self) -> *mut std::ffi::c_void {
14783 std::ptr::from_mut(self).cast()
14784 }
14785}
14786
14787impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14788 for vk::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a>
14789{
14790}
14791
14792impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14793 for vk::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR<'a>
14794{
14795}
14796
14797impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceRobustness2FeaturesKHR<'a> {
14798 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR;
14799
14800 fn s_type(&self) -> vk::StructureType {
14801 self.s_type
14802 }
14803
14804 fn p_next(&self) -> *const std::ffi::c_void {
14805 self.p_next.cast_const()
14806 }
14807
14808 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14809 self.p_next = p_next;
14810 }
14811
14812 fn address(&mut self) -> *mut std::ffi::c_void {
14813 std::ptr::from_mut(self).cast()
14814 }
14815}
14816
14817impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14818 for vk::PhysicalDeviceRobustness2FeaturesKHR<'a>
14819{
14820}
14821
14822impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14823 for vk::PhysicalDeviceRobustness2FeaturesKHR<'a>
14824{
14825}
14826
14827impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceRobustness2PropertiesKHR<'a> {
14828 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR;
14829
14830 fn s_type(&self) -> vk::StructureType {
14831 self.s_type
14832 }
14833
14834 fn p_next(&self) -> *const std::ffi::c_void {
14835 self.p_next.cast_const()
14836 }
14837
14838 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14839 self.p_next = p_next;
14840 }
14841
14842 fn address(&mut self) -> *mut std::ffi::c_void {
14843 std::ptr::from_mut(self).cast()
14844 }
14845}
14846
14847impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
14848 for vk::PhysicalDeviceRobustness2PropertiesKHR<'a>
14849{
14850}
14851
14852impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceImageRobustnessFeatures<'a> {
14853 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
14854
14855 fn s_type(&self) -> vk::StructureType {
14856 self.s_type
14857 }
14858
14859 fn p_next(&self) -> *const std::ffi::c_void {
14860 self.p_next.cast_const()
14861 }
14862
14863 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14864 self.p_next = p_next;
14865 }
14866
14867 fn address(&mut self) -> *mut std::ffi::c_void {
14868 std::ptr::from_mut(self).cast()
14869 }
14870}
14871
14872impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14873 for vk::PhysicalDeviceImageRobustnessFeatures<'a>
14874{
14875}
14876
14877impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14878 for vk::PhysicalDeviceImageRobustnessFeatures<'a>
14879{
14880}
14881
14882impl<'a> crate::construction::sealed::ChainNode
14883 for vk::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a>
14884{
14885 const S_TYPE: vk::StructureType =
14886 vk::StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
14887
14888 fn s_type(&self) -> vk::StructureType {
14889 self.s_type
14890 }
14891
14892 fn p_next(&self) -> *const std::ffi::c_void {
14893 self.p_next.cast_const()
14894 }
14895
14896 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14897 self.p_next = p_next;
14898 }
14899
14900 fn address(&mut self) -> *mut std::ffi::c_void {
14901 std::ptr::from_mut(self).cast()
14902 }
14903}
14904
14905impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14906 for vk::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a>
14907{
14908}
14909
14910impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14911 for vk::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<'a>
14912{
14913}
14914
14915#[cfg(feature = "provisional")]
14916impl<'a> crate::construction::sealed::ChainNode
14917 for vk::PhysicalDevicePortabilitySubsetFeaturesKHR<'a>
14918{
14919 const S_TYPE: vk::StructureType =
14920 vk::StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
14921
14922 fn s_type(&self) -> vk::StructureType {
14923 self.s_type
14924 }
14925
14926 fn p_next(&self) -> *const std::ffi::c_void {
14927 self.p_next.cast_const()
14928 }
14929
14930 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14931 self.p_next = p_next;
14932 }
14933
14934 fn address(&mut self) -> *mut std::ffi::c_void {
14935 std::ptr::from_mut(self).cast()
14936 }
14937}
14938
14939#[cfg(feature = "provisional")]
14940impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
14941 for vk::PhysicalDevicePortabilitySubsetFeaturesKHR<'a>
14942{
14943}
14944
14945#[cfg(feature = "provisional")]
14946impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
14947 for vk::PhysicalDevicePortabilitySubsetFeaturesKHR<'a>
14948{
14949}
14950
14951#[cfg(feature = "provisional")]
14952impl<'a> crate::construction::sealed::ChainNode
14953 for vk::PhysicalDevicePortabilitySubsetPropertiesKHR<'a>
14954{
14955 const S_TYPE: vk::StructureType =
14956 vk::StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
14957
14958 fn s_type(&self) -> vk::StructureType {
14959 self.s_type
14960 }
14961
14962 fn p_next(&self) -> *const std::ffi::c_void {
14963 self.p_next.cast_const()
14964 }
14965
14966 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14967 self.p_next = p_next;
14968 }
14969
14970 fn address(&mut self) -> *mut std::ffi::c_void {
14971 std::ptr::from_mut(self).cast()
14972 }
14973}
14974
14975#[cfg(feature = "provisional")]
14976impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
14977 for vk::PhysicalDevicePortabilitySubsetPropertiesKHR<'a>
14978{
14979}
14980
14981impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDevice4444FormatsFeaturesEXT<'a> {
14982 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
14983
14984 fn s_type(&self) -> vk::StructureType {
14985 self.s_type
14986 }
14987
14988 fn p_next(&self) -> *const std::ffi::c_void {
14989 self.p_next.cast_const()
14990 }
14991
14992 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
14993 self.p_next = p_next;
14994 }
14995
14996 fn address(&mut self) -> *mut std::ffi::c_void {
14997 std::ptr::from_mut(self).cast()
14998 }
14999}
15000
15001impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15002 for vk::PhysicalDevice4444FormatsFeaturesEXT<'a>
15003{
15004}
15005
15006impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15007 for vk::PhysicalDevice4444FormatsFeaturesEXT<'a>
15008{
15009}
15010
15011impl<'a> crate::construction::sealed::ChainNode
15012 for vk::PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a>
15013{
15014 const S_TYPE: vk::StructureType =
15015 vk::StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
15016
15017 fn s_type(&self) -> vk::StructureType {
15018 self.s_type
15019 }
15020
15021 fn p_next(&self) -> *const std::ffi::c_void {
15022 self.p_next.cast_const()
15023 }
15024
15025 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15026 self.p_next = p_next;
15027 }
15028
15029 fn address(&mut self) -> *mut std::ffi::c_void {
15030 std::ptr::from_mut(self).cast()
15031 }
15032}
15033
15034impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15035 for vk::PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a>
15036{
15037}
15038
15039impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15040 for vk::PhysicalDeviceSubpassShadingFeaturesHUAWEI<'a>
15041{
15042}
15043
15044impl<'a> crate::construction::sealed::ChainNode
15045 for vk::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a>
15046{
15047 const S_TYPE: vk::StructureType =
15048 vk::StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI;
15049
15050 fn s_type(&self) -> vk::StructureType {
15051 self.s_type
15052 }
15053
15054 fn p_next(&self) -> *const std::ffi::c_void {
15055 self.p_next.cast_const()
15056 }
15057
15058 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15059 self.p_next = p_next;
15060 }
15061
15062 fn address(&mut self) -> *mut std::ffi::c_void {
15063 std::ptr::from_mut(self).cast()
15064 }
15065}
15066
15067impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15068 for vk::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a>
15069{
15070}
15071
15072impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15073 for vk::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'a>
15074{
15075}
15076
15077impl<'a> crate::construction::sealed::ChainNode
15078 for vk::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a>
15079{
15080 const S_TYPE: vk::StructureType =
15081 vk::StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI;
15082
15083 fn s_type(&self) -> vk::StructureType {
15084 self.s_type
15085 }
15086
15087 fn p_next(&self) -> *const std::ffi::c_void {
15088 self.p_next.cast_const()
15089 }
15090
15091 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15092 self.p_next = p_next;
15093 }
15094
15095 fn address(&mut self) -> *mut std::ffi::c_void {
15096 std::ptr::from_mut(self).cast()
15097 }
15098}
15099
15100impl<'a, 'root> crate::Extends<vk::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI<'root>>
15101 for vk::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI<'a>
15102{
15103}
15104
15105impl<'a> crate::construction::sealed::ChainNode for vk::BufferCopy2<'a> {
15106 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_COPY_2;
15107
15108 fn s_type(&self) -> vk::StructureType {
15109 self.s_type
15110 }
15111
15112 fn p_next(&self) -> *const std::ffi::c_void {
15113 self.p_next
15114 }
15115
15116 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15117 self.p_next = p_next.cast_const();
15118 }
15119
15120 fn address(&mut self) -> *mut std::ffi::c_void {
15121 std::ptr::from_mut(self).cast()
15122 }
15123}
15124
15125impl<'a> crate::construction::sealed::ChainNode for vk::ImageCopy2<'a> {
15126 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_COPY_2;
15127
15128 fn s_type(&self) -> vk::StructureType {
15129 self.s_type
15130 }
15131
15132 fn p_next(&self) -> *const std::ffi::c_void {
15133 self.p_next
15134 }
15135
15136 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15137 self.p_next = p_next.cast_const();
15138 }
15139
15140 fn address(&mut self) -> *mut std::ffi::c_void {
15141 std::ptr::from_mut(self).cast()
15142 }
15143}
15144
15145impl<'a> crate::construction::sealed::ChainNode for vk::ImageBlit2<'a> {
15146 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_BLIT_2;
15147
15148 fn s_type(&self) -> vk::StructureType {
15149 self.s_type
15150 }
15151
15152 fn p_next(&self) -> *const std::ffi::c_void {
15153 self.p_next
15154 }
15155
15156 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15157 self.p_next = p_next.cast_const();
15158 }
15159
15160 fn address(&mut self) -> *mut std::ffi::c_void {
15161 std::ptr::from_mut(self).cast()
15162 }
15163}
15164
15165impl<'a> crate::construction::sealed::ChainNode for vk::BufferImageCopy2<'a> {
15166 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_IMAGE_COPY_2;
15167
15168 fn s_type(&self) -> vk::StructureType {
15169 self.s_type
15170 }
15171
15172 fn p_next(&self) -> *const std::ffi::c_void {
15173 self.p_next
15174 }
15175
15176 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15177 self.p_next = p_next.cast_const();
15178 }
15179
15180 fn address(&mut self) -> *mut std::ffi::c_void {
15181 std::ptr::from_mut(self).cast()
15182 }
15183}
15184
15185impl<'a> crate::construction::sealed::ChainNode for vk::ImageResolve2<'a> {
15186 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_RESOLVE_2;
15187
15188 fn s_type(&self) -> vk::StructureType {
15189 self.s_type
15190 }
15191
15192 fn p_next(&self) -> *const std::ffi::c_void {
15193 self.p_next
15194 }
15195
15196 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15197 self.p_next = p_next.cast_const();
15198 }
15199
15200 fn address(&mut self) -> *mut std::ffi::c_void {
15201 std::ptr::from_mut(self).cast()
15202 }
15203}
15204
15205impl<'a> crate::construction::sealed::ChainNode for vk::CopyBufferInfo2<'a> {
15206 const S_TYPE: vk::StructureType = vk::StructureType::COPY_BUFFER_INFO_2;
15207
15208 fn s_type(&self) -> vk::StructureType {
15209 self.s_type
15210 }
15211
15212 fn p_next(&self) -> *const std::ffi::c_void {
15213 self.p_next
15214 }
15215
15216 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15217 self.p_next = p_next.cast_const();
15218 }
15219
15220 fn address(&mut self) -> *mut std::ffi::c_void {
15221 std::ptr::from_mut(self).cast()
15222 }
15223}
15224
15225impl<'a> crate::construction::sealed::ChainNode for vk::CopyImageInfo2<'a> {
15226 const S_TYPE: vk::StructureType = vk::StructureType::COPY_IMAGE_INFO_2;
15227
15228 fn s_type(&self) -> vk::StructureType {
15229 self.s_type
15230 }
15231
15232 fn p_next(&self) -> *const std::ffi::c_void {
15233 self.p_next
15234 }
15235
15236 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15237 self.p_next = p_next.cast_const();
15238 }
15239
15240 fn address(&mut self) -> *mut std::ffi::c_void {
15241 std::ptr::from_mut(self).cast()
15242 }
15243}
15244
15245impl<'a> crate::construction::sealed::ChainNode for vk::BlitImageInfo2<'a> {
15246 const S_TYPE: vk::StructureType = vk::StructureType::BLIT_IMAGE_INFO_2;
15247
15248 fn s_type(&self) -> vk::StructureType {
15249 self.s_type
15250 }
15251
15252 fn p_next(&self) -> *const std::ffi::c_void {
15253 self.p_next
15254 }
15255
15256 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15257 self.p_next = p_next.cast_const();
15258 }
15259
15260 fn address(&mut self) -> *mut std::ffi::c_void {
15261 std::ptr::from_mut(self).cast()
15262 }
15263}
15264
15265impl<'a> crate::construction::sealed::ChainNode for vk::CopyBufferToImageInfo2<'a> {
15266 const S_TYPE: vk::StructureType = vk::StructureType::COPY_BUFFER_TO_IMAGE_INFO_2;
15267
15268 fn s_type(&self) -> vk::StructureType {
15269 self.s_type
15270 }
15271
15272 fn p_next(&self) -> *const std::ffi::c_void {
15273 self.p_next
15274 }
15275
15276 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15277 self.p_next = p_next.cast_const();
15278 }
15279
15280 fn address(&mut self) -> *mut std::ffi::c_void {
15281 std::ptr::from_mut(self).cast()
15282 }
15283}
15284
15285impl<'a> crate::construction::sealed::ChainNode for vk::CopyImageToBufferInfo2<'a> {
15286 const S_TYPE: vk::StructureType = vk::StructureType::COPY_IMAGE_TO_BUFFER_INFO_2;
15287
15288 fn s_type(&self) -> vk::StructureType {
15289 self.s_type
15290 }
15291
15292 fn p_next(&self) -> *const std::ffi::c_void {
15293 self.p_next
15294 }
15295
15296 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15297 self.p_next = p_next.cast_const();
15298 }
15299
15300 fn address(&mut self) -> *mut std::ffi::c_void {
15301 std::ptr::from_mut(self).cast()
15302 }
15303}
15304
15305impl<'a> crate::construction::sealed::ChainNode for vk::ResolveImageInfo2<'a> {
15306 const S_TYPE: vk::StructureType = vk::StructureType::RESOLVE_IMAGE_INFO_2;
15307
15308 fn s_type(&self) -> vk::StructureType {
15309 self.s_type
15310 }
15311
15312 fn p_next(&self) -> *const std::ffi::c_void {
15313 self.p_next
15314 }
15315
15316 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15317 self.p_next = p_next.cast_const();
15318 }
15319
15320 fn address(&mut self) -> *mut std::ffi::c_void {
15321 std::ptr::from_mut(self).cast()
15322 }
15323}
15324
15325impl<'a> crate::construction::sealed::ChainNode
15326 for vk::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a>
15327{
15328 const S_TYPE: vk::StructureType =
15329 vk::StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
15330
15331 fn s_type(&self) -> vk::StructureType {
15332 self.s_type
15333 }
15334
15335 fn p_next(&self) -> *const std::ffi::c_void {
15336 self.p_next.cast_const()
15337 }
15338
15339 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15340 self.p_next = p_next;
15341 }
15342
15343 fn address(&mut self) -> *mut std::ffi::c_void {
15344 std::ptr::from_mut(self).cast()
15345 }
15346}
15347
15348impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15349 for vk::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a>
15350{
15351}
15352
15353impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15354 for vk::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT<'a>
15355{
15356}
15357
15358impl<'a> crate::construction::sealed::ChainNode for vk::FragmentShadingRateAttachmentInfoKHR<'a> {
15359 const S_TYPE: vk::StructureType = vk::StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
15360
15361 fn s_type(&self) -> vk::StructureType {
15362 self.s_type
15363 }
15364
15365 fn p_next(&self) -> *const std::ffi::c_void {
15366 self.p_next
15367 }
15368
15369 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15370 self.p_next = p_next.cast_const();
15371 }
15372
15373 fn address(&mut self) -> *mut std::ffi::c_void {
15374 std::ptr::from_mut(self).cast()
15375 }
15376}
15377
15378impl<'a, 'root> crate::Extends<vk::SubpassDescription2<'root>>
15379 for vk::FragmentShadingRateAttachmentInfoKHR<'a>
15380{
15381}
15382
15383impl<'a> crate::construction::sealed::ChainNode
15384 for vk::PipelineFragmentShadingRateStateCreateInfoKHR<'a>
15385{
15386 const S_TYPE: vk::StructureType =
15387 vk::StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
15388
15389 fn s_type(&self) -> vk::StructureType {
15390 self.s_type
15391 }
15392
15393 fn p_next(&self) -> *const std::ffi::c_void {
15394 self.p_next
15395 }
15396
15397 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15398 self.p_next = p_next.cast_const();
15399 }
15400
15401 fn address(&mut self) -> *mut std::ffi::c_void {
15402 std::ptr::from_mut(self).cast()
15403 }
15404}
15405
15406impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
15407 for vk::PipelineFragmentShadingRateStateCreateInfoKHR<'a>
15408{
15409}
15410
15411impl<'a> crate::construction::sealed::ChainNode
15412 for vk::PhysicalDeviceFragmentShadingRateFeaturesKHR<'a>
15413{
15414 const S_TYPE: vk::StructureType =
15415 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
15416
15417 fn s_type(&self) -> vk::StructureType {
15418 self.s_type
15419 }
15420
15421 fn p_next(&self) -> *const std::ffi::c_void {
15422 self.p_next.cast_const()
15423 }
15424
15425 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15426 self.p_next = p_next;
15427 }
15428
15429 fn address(&mut self) -> *mut std::ffi::c_void {
15430 std::ptr::from_mut(self).cast()
15431 }
15432}
15433
15434impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15435 for vk::PhysicalDeviceFragmentShadingRateFeaturesKHR<'a>
15436{
15437}
15438
15439impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15440 for vk::PhysicalDeviceFragmentShadingRateFeaturesKHR<'a>
15441{
15442}
15443
15444impl<'a> crate::construction::sealed::ChainNode
15445 for vk::PhysicalDeviceFragmentShadingRatePropertiesKHR<'a>
15446{
15447 const S_TYPE: vk::StructureType =
15448 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
15449
15450 fn s_type(&self) -> vk::StructureType {
15451 self.s_type
15452 }
15453
15454 fn p_next(&self) -> *const std::ffi::c_void {
15455 self.p_next.cast_const()
15456 }
15457
15458 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15459 self.p_next = p_next;
15460 }
15461
15462 fn address(&mut self) -> *mut std::ffi::c_void {
15463 std::ptr::from_mut(self).cast()
15464 }
15465}
15466
15467impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
15468 for vk::PhysicalDeviceFragmentShadingRatePropertiesKHR<'a>
15469{
15470}
15471
15472impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFragmentShadingRateKHR<'a> {
15473 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
15474
15475 fn s_type(&self) -> vk::StructureType {
15476 self.s_type
15477 }
15478
15479 fn p_next(&self) -> *const std::ffi::c_void {
15480 self.p_next.cast_const()
15481 }
15482
15483 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15484 self.p_next = p_next;
15485 }
15486
15487 fn address(&mut self) -> *mut std::ffi::c_void {
15488 std::ptr::from_mut(self).cast()
15489 }
15490}
15491
15492impl<'a> crate::construction::sealed::ChainNode
15493 for vk::PhysicalDeviceShaderTerminateInvocationFeatures<'a>
15494{
15495 const S_TYPE: vk::StructureType =
15496 vk::StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
15497
15498 fn s_type(&self) -> vk::StructureType {
15499 self.s_type
15500 }
15501
15502 fn p_next(&self) -> *const std::ffi::c_void {
15503 self.p_next.cast_const()
15504 }
15505
15506 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15507 self.p_next = p_next;
15508 }
15509
15510 fn address(&mut self) -> *mut std::ffi::c_void {
15511 std::ptr::from_mut(self).cast()
15512 }
15513}
15514
15515impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15516 for vk::PhysicalDeviceShaderTerminateInvocationFeatures<'a>
15517{
15518}
15519
15520impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15521 for vk::PhysicalDeviceShaderTerminateInvocationFeatures<'a>
15522{
15523}
15524
15525impl<'a> crate::construction::sealed::ChainNode
15526 for vk::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a>
15527{
15528 const S_TYPE: vk::StructureType =
15529 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
15530
15531 fn s_type(&self) -> vk::StructureType {
15532 self.s_type
15533 }
15534
15535 fn p_next(&self) -> *const std::ffi::c_void {
15536 self.p_next.cast_const()
15537 }
15538
15539 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15540 self.p_next = p_next;
15541 }
15542
15543 fn address(&mut self) -> *mut std::ffi::c_void {
15544 std::ptr::from_mut(self).cast()
15545 }
15546}
15547
15548impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15549 for vk::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a>
15550{
15551}
15552
15553impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15554 for vk::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV<'a>
15555{
15556}
15557
15558impl<'a> crate::construction::sealed::ChainNode
15559 for vk::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a>
15560{
15561 const S_TYPE: vk::StructureType =
15562 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
15563
15564 fn s_type(&self) -> vk::StructureType {
15565 self.s_type
15566 }
15567
15568 fn p_next(&self) -> *const std::ffi::c_void {
15569 self.p_next.cast_const()
15570 }
15571
15572 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15573 self.p_next = p_next;
15574 }
15575
15576 fn address(&mut self) -> *mut std::ffi::c_void {
15577 std::ptr::from_mut(self).cast()
15578 }
15579}
15580
15581impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
15582 for vk::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV<'a>
15583{
15584}
15585
15586impl<'a> crate::construction::sealed::ChainNode
15587 for vk::PipelineFragmentShadingRateEnumStateCreateInfoNV<'a>
15588{
15589 const S_TYPE: vk::StructureType =
15590 vk::StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
15591
15592 fn s_type(&self) -> vk::StructureType {
15593 self.s_type
15594 }
15595
15596 fn p_next(&self) -> *const std::ffi::c_void {
15597 self.p_next
15598 }
15599
15600 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15601 self.p_next = p_next.cast_const();
15602 }
15603
15604 fn address(&mut self) -> *mut std::ffi::c_void {
15605 std::ptr::from_mut(self).cast()
15606 }
15607}
15608
15609impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
15610 for vk::PipelineFragmentShadingRateEnumStateCreateInfoNV<'a>
15611{
15612}
15613
15614impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureBuildSizesInfoKHR<'a> {
15615 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
15616
15617 fn s_type(&self) -> vk::StructureType {
15618 self.s_type
15619 }
15620
15621 fn p_next(&self) -> *const std::ffi::c_void {
15622 self.p_next.cast_const()
15623 }
15624
15625 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15626 self.p_next = p_next;
15627 }
15628
15629 fn address(&mut self) -> *mut std::ffi::c_void {
15630 std::ptr::from_mut(self).cast()
15631 }
15632}
15633
15634impl<'a> crate::construction::sealed::ChainNode
15635 for vk::PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a>
15636{
15637 const S_TYPE: vk::StructureType =
15638 vk::StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT;
15639
15640 fn s_type(&self) -> vk::StructureType {
15641 self.s_type
15642 }
15643
15644 fn p_next(&self) -> *const std::ffi::c_void {
15645 self.p_next.cast_const()
15646 }
15647
15648 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15649 self.p_next = p_next;
15650 }
15651
15652 fn address(&mut self) -> *mut std::ffi::c_void {
15653 std::ptr::from_mut(self).cast()
15654 }
15655}
15656
15657impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15658 for vk::PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a>
15659{
15660}
15661
15662impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15663 for vk::PhysicalDeviceImage2DViewOf3DFeaturesEXT<'a>
15664{
15665}
15666
15667impl<'a> crate::construction::sealed::ChainNode
15668 for vk::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a>
15669{
15670 const S_TYPE: vk::StructureType =
15671 vk::StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT;
15672
15673 fn s_type(&self) -> vk::StructureType {
15674 self.s_type
15675 }
15676
15677 fn p_next(&self) -> *const std::ffi::c_void {
15678 self.p_next.cast_const()
15679 }
15680
15681 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15682 self.p_next = p_next;
15683 }
15684
15685 fn address(&mut self) -> *mut std::ffi::c_void {
15686 std::ptr::from_mut(self).cast()
15687 }
15688}
15689
15690impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15691 for vk::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a>
15692{
15693}
15694
15695impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15696 for vk::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT<'a>
15697{
15698}
15699
15700impl<'a> crate::construction::sealed::ChainNode
15701 for vk::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a>
15702{
15703 const S_TYPE: vk::StructureType =
15704 vk::StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT;
15705
15706 fn s_type(&self) -> vk::StructureType {
15707 self.s_type
15708 }
15709
15710 fn p_next(&self) -> *const std::ffi::c_void {
15711 self.p_next.cast_const()
15712 }
15713
15714 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15715 self.p_next = p_next;
15716 }
15717
15718 fn address(&mut self) -> *mut std::ffi::c_void {
15719 std::ptr::from_mut(self).cast()
15720 }
15721}
15722
15723impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15724 for vk::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a>
15725{
15726}
15727
15728impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15729 for vk::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT<'a>
15730{
15731}
15732
15733impl<'a> crate::construction::sealed::ChainNode
15734 for vk::PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a>
15735{
15736 const S_TYPE: vk::StructureType =
15737 vk::StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT;
15738
15739 fn s_type(&self) -> vk::StructureType {
15740 self.s_type
15741 }
15742
15743 fn p_next(&self) -> *const std::ffi::c_void {
15744 self.p_next.cast_const()
15745 }
15746
15747 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15748 self.p_next = p_next;
15749 }
15750
15751 fn address(&mut self) -> *mut std::ffi::c_void {
15752 std::ptr::from_mut(self).cast()
15753 }
15754}
15755
15756impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15757 for vk::PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a>
15758{
15759}
15760
15761impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15762 for vk::PhysicalDeviceLegacyVertexAttributesFeaturesEXT<'a>
15763{
15764}
15765
15766impl<'a> crate::construction::sealed::ChainNode
15767 for vk::PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a>
15768{
15769 const S_TYPE: vk::StructureType =
15770 vk::StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT;
15771
15772 fn s_type(&self) -> vk::StructureType {
15773 self.s_type
15774 }
15775
15776 fn p_next(&self) -> *const std::ffi::c_void {
15777 self.p_next.cast_const()
15778 }
15779
15780 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15781 self.p_next = p_next;
15782 }
15783
15784 fn address(&mut self) -> *mut std::ffi::c_void {
15785 std::ptr::from_mut(self).cast()
15786 }
15787}
15788
15789impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
15790 for vk::PhysicalDeviceLegacyVertexAttributesPropertiesEXT<'a>
15791{
15792}
15793
15794impl<'a> crate::construction::sealed::ChainNode
15795 for vk::PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a>
15796{
15797 const S_TYPE: vk::StructureType =
15798 vk::StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT;
15799
15800 fn s_type(&self) -> vk::StructureType {
15801 self.s_type
15802 }
15803
15804 fn p_next(&self) -> *const std::ffi::c_void {
15805 self.p_next.cast_const()
15806 }
15807
15808 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15809 self.p_next = p_next;
15810 }
15811
15812 fn address(&mut self) -> *mut std::ffi::c_void {
15813 std::ptr::from_mut(self).cast()
15814 }
15815}
15816
15817impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15818 for vk::PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a>
15819{
15820}
15821
15822impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15823 for vk::PhysicalDeviceMutableDescriptorTypeFeaturesEXT<'a>
15824{
15825}
15826
15827impl<'a> crate::construction::sealed::ChainNode for vk::MutableDescriptorTypeCreateInfoEXT<'a> {
15828 const S_TYPE: vk::StructureType = vk::StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT;
15829
15830 fn s_type(&self) -> vk::StructureType {
15831 self.s_type
15832 }
15833
15834 fn p_next(&self) -> *const std::ffi::c_void {
15835 self.p_next
15836 }
15837
15838 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15839 self.p_next = p_next.cast_const();
15840 }
15841
15842 fn address(&mut self) -> *mut std::ffi::c_void {
15843 std::ptr::from_mut(self).cast()
15844 }
15845}
15846
15847impl<'a, 'root> crate::Extends<vk::DescriptorSetLayoutCreateInfo<'root>>
15848 for vk::MutableDescriptorTypeCreateInfoEXT<'a>
15849{
15850}
15851
15852impl<'a, 'root> crate::Extends<vk::DescriptorPoolCreateInfo<'root>>
15853 for vk::MutableDescriptorTypeCreateInfoEXT<'a>
15854{
15855}
15856
15857impl<'a> crate::construction::sealed::ChainNode
15858 for vk::PhysicalDeviceDepthClipControlFeaturesEXT<'a>
15859{
15860 const S_TYPE: vk::StructureType =
15861 vk::StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT;
15862
15863 fn s_type(&self) -> vk::StructureType {
15864 self.s_type
15865 }
15866
15867 fn p_next(&self) -> *const std::ffi::c_void {
15868 self.p_next.cast_const()
15869 }
15870
15871 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15872 self.p_next = p_next;
15873 }
15874
15875 fn address(&mut self) -> *mut std::ffi::c_void {
15876 std::ptr::from_mut(self).cast()
15877 }
15878}
15879
15880impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15881 for vk::PhysicalDeviceDepthClipControlFeaturesEXT<'a>
15882{
15883}
15884
15885impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15886 for vk::PhysicalDeviceDepthClipControlFeaturesEXT<'a>
15887{
15888}
15889
15890impl<'a> crate::construction::sealed::ChainNode
15891 for vk::PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'a>
15892{
15893 const S_TYPE: vk::StructureType =
15894 vk::StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT;
15895
15896 fn s_type(&self) -> vk::StructureType {
15897 self.s_type
15898 }
15899
15900 fn p_next(&self) -> *const std::ffi::c_void {
15901 self.p_next.cast_const()
15902 }
15903
15904 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15905 self.p_next = p_next;
15906 }
15907
15908 fn address(&mut self) -> *mut std::ffi::c_void {
15909 std::ptr::from_mut(self).cast()
15910 }
15911}
15912
15913impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15914 for vk::PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'a>
15915{
15916}
15917
15918impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15919 for vk::PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT<'a>
15920{
15921}
15922
15923impl<'a> crate::construction::sealed::ChainNode for vk::BeginCustomResolveInfoEXT<'a> {
15924 const S_TYPE: vk::StructureType = vk::StructureType::BEGIN_CUSTOM_RESOLVE_INFO_EXT;
15925
15926 fn s_type(&self) -> vk::StructureType {
15927 self.s_type
15928 }
15929
15930 fn p_next(&self) -> *const std::ffi::c_void {
15931 self.p_next.cast_const()
15932 }
15933
15934 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15935 self.p_next = p_next;
15936 }
15937
15938 fn address(&mut self) -> *mut std::ffi::c_void {
15939 std::ptr::from_mut(self).cast()
15940 }
15941}
15942
15943impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceCustomResolveFeaturesEXT<'a> {
15944 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT;
15945
15946 fn s_type(&self) -> vk::StructureType {
15947 self.s_type
15948 }
15949
15950 fn p_next(&self) -> *const std::ffi::c_void {
15951 self.p_next.cast_const()
15952 }
15953
15954 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15955 self.p_next = p_next;
15956 }
15957
15958 fn address(&mut self) -> *mut std::ffi::c_void {
15959 std::ptr::from_mut(self).cast()
15960 }
15961}
15962
15963impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
15964 for vk::PhysicalDeviceCustomResolveFeaturesEXT<'a>
15965{
15966}
15967
15968impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
15969 for vk::PhysicalDeviceCustomResolveFeaturesEXT<'a>
15970{
15971}
15972
15973impl<'a> crate::construction::sealed::ChainNode for vk::CustomResolveCreateInfoEXT<'a> {
15974 const S_TYPE: vk::StructureType = vk::StructureType::CUSTOM_RESOLVE_CREATE_INFO_EXT;
15975
15976 fn s_type(&self) -> vk::StructureType {
15977 self.s_type
15978 }
15979
15980 fn p_next(&self) -> *const std::ffi::c_void {
15981 self.p_next
15982 }
15983
15984 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
15985 self.p_next = p_next.cast_const();
15986 }
15987
15988 fn address(&mut self) -> *mut std::ffi::c_void {
15989 std::ptr::from_mut(self).cast()
15990 }
15991}
15992
15993impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
15994 for vk::CustomResolveCreateInfoEXT<'a>
15995{
15996}
15997
15998impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
15999 for vk::CustomResolveCreateInfoEXT<'a>
16000{
16001}
16002
16003impl<'a, 'root> crate::Extends<vk::ShaderCreateInfoEXT<'root>>
16004 for vk::CustomResolveCreateInfoEXT<'a>
16005{
16006}
16007
16008impl<'a> crate::construction::sealed::ChainNode
16009 for vk::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a>
16010{
16011 const S_TYPE: vk::StructureType =
16012 vk::StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT;
16013
16014 fn s_type(&self) -> vk::StructureType {
16015 self.s_type
16016 }
16017
16018 fn p_next(&self) -> *const std::ffi::c_void {
16019 self.p_next.cast_const()
16020 }
16021
16022 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16023 self.p_next = p_next;
16024 }
16025
16026 fn address(&mut self) -> *mut std::ffi::c_void {
16027 std::ptr::from_mut(self).cast()
16028 }
16029}
16030
16031impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16032 for vk::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a>
16033{
16034}
16035
16036impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16037 for vk::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT<'a>
16038{
16039}
16040
16041impl<'a> crate::construction::sealed::ChainNode
16042 for vk::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a>
16043{
16044 const S_TYPE: vk::StructureType =
16045 vk::StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT;
16046
16047 fn s_type(&self) -> vk::StructureType {
16048 self.s_type
16049 }
16050
16051 fn p_next(&self) -> *const std::ffi::c_void {
16052 self.p_next.cast_const()
16053 }
16054
16055 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16056 self.p_next = p_next;
16057 }
16058
16059 fn address(&mut self) -> *mut std::ffi::c_void {
16060 std::ptr::from_mut(self).cast()
16061 }
16062}
16063
16064impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
16065 for vk::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT<'a>
16066{
16067}
16068
16069impl<'a> crate::construction::sealed::ChainNode for vk::GeneratedCommandsPipelineInfoEXT<'a> {
16070 const S_TYPE: vk::StructureType = vk::StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT;
16071
16072 fn s_type(&self) -> vk::StructureType {
16073 self.s_type
16074 }
16075
16076 fn p_next(&self) -> *const std::ffi::c_void {
16077 self.p_next.cast_const()
16078 }
16079
16080 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16081 self.p_next = p_next;
16082 }
16083
16084 fn address(&mut self) -> *mut std::ffi::c_void {
16085 std::ptr::from_mut(self).cast()
16086 }
16087}
16088
16089impl<'a, 'root> crate::Extends<vk::GeneratedCommandsInfoEXT<'root>>
16090 for vk::GeneratedCommandsPipelineInfoEXT<'a>
16091{
16092}
16093
16094impl<'a, 'root> crate::Extends<vk::GeneratedCommandsMemoryRequirementsInfoEXT<'root>>
16095 for vk::GeneratedCommandsPipelineInfoEXT<'a>
16096{
16097}
16098
16099impl<'a> crate::construction::sealed::ChainNode for vk::GeneratedCommandsShaderInfoEXT<'a> {
16100 const S_TYPE: vk::StructureType = vk::StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT;
16101
16102 fn s_type(&self) -> vk::StructureType {
16103 self.s_type
16104 }
16105
16106 fn p_next(&self) -> *const std::ffi::c_void {
16107 self.p_next.cast_const()
16108 }
16109
16110 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16111 self.p_next = p_next;
16112 }
16113
16114 fn address(&mut self) -> *mut std::ffi::c_void {
16115 std::ptr::from_mut(self).cast()
16116 }
16117}
16118
16119impl<'a, 'root> crate::Extends<vk::GeneratedCommandsInfoEXT<'root>>
16120 for vk::GeneratedCommandsShaderInfoEXT<'a>
16121{
16122}
16123
16124impl<'a, 'root> crate::Extends<vk::GeneratedCommandsMemoryRequirementsInfoEXT<'root>>
16125 for vk::GeneratedCommandsShaderInfoEXT<'a>
16126{
16127}
16128
16129impl<'a> crate::construction::sealed::ChainNode
16130 for vk::GeneratedCommandsMemoryRequirementsInfoEXT<'a>
16131{
16132 const S_TYPE: vk::StructureType =
16133 vk::StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT;
16134
16135 fn s_type(&self) -> vk::StructureType {
16136 self.s_type
16137 }
16138
16139 fn p_next(&self) -> *const std::ffi::c_void {
16140 self.p_next
16141 }
16142
16143 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16144 self.p_next = p_next.cast_const();
16145 }
16146
16147 fn address(&mut self) -> *mut std::ffi::c_void {
16148 std::ptr::from_mut(self).cast()
16149 }
16150}
16151
16152impl<'a> crate::construction::sealed::ChainNode for vk::IndirectExecutionSetPipelineInfoEXT<'a> {
16153 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT;
16154
16155 fn s_type(&self) -> vk::StructureType {
16156 self.s_type
16157 }
16158
16159 fn p_next(&self) -> *const std::ffi::c_void {
16160 self.p_next
16161 }
16162
16163 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16164 self.p_next = p_next.cast_const();
16165 }
16166
16167 fn address(&mut self) -> *mut std::ffi::c_void {
16168 std::ptr::from_mut(self).cast()
16169 }
16170}
16171
16172impl<'a> crate::construction::sealed::ChainNode
16173 for vk::IndirectExecutionSetShaderLayoutInfoEXT<'a>
16174{
16175 const S_TYPE: vk::StructureType =
16176 vk::StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT;
16177
16178 fn s_type(&self) -> vk::StructureType {
16179 self.s_type
16180 }
16181
16182 fn p_next(&self) -> *const std::ffi::c_void {
16183 self.p_next
16184 }
16185
16186 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16187 self.p_next = p_next.cast_const();
16188 }
16189
16190 fn address(&mut self) -> *mut std::ffi::c_void {
16191 std::ptr::from_mut(self).cast()
16192 }
16193}
16194
16195impl<'a> crate::construction::sealed::ChainNode for vk::IndirectExecutionSetShaderInfoEXT<'a> {
16196 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT;
16197
16198 fn s_type(&self) -> vk::StructureType {
16199 self.s_type
16200 }
16201
16202 fn p_next(&self) -> *const std::ffi::c_void {
16203 self.p_next
16204 }
16205
16206 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16207 self.p_next = p_next.cast_const();
16208 }
16209
16210 fn address(&mut self) -> *mut std::ffi::c_void {
16211 std::ptr::from_mut(self).cast()
16212 }
16213}
16214
16215impl<'a> crate::construction::sealed::ChainNode for vk::IndirectExecutionSetCreateInfoEXT<'a> {
16216 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT;
16217
16218 fn s_type(&self) -> vk::StructureType {
16219 self.s_type
16220 }
16221
16222 fn p_next(&self) -> *const std::ffi::c_void {
16223 self.p_next
16224 }
16225
16226 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16227 self.p_next = p_next.cast_const();
16228 }
16229
16230 fn address(&mut self) -> *mut std::ffi::c_void {
16231 std::ptr::from_mut(self).cast()
16232 }
16233}
16234
16235impl<'a> crate::construction::sealed::ChainNode for vk::GeneratedCommandsInfoEXT<'a> {
16236 const S_TYPE: vk::StructureType = vk::StructureType::GENERATED_COMMANDS_INFO_EXT;
16237
16238 fn s_type(&self) -> vk::StructureType {
16239 self.s_type
16240 }
16241
16242 fn p_next(&self) -> *const std::ffi::c_void {
16243 self.p_next
16244 }
16245
16246 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16247 self.p_next = p_next.cast_const();
16248 }
16249
16250 fn address(&mut self) -> *mut std::ffi::c_void {
16251 std::ptr::from_mut(self).cast()
16252 }
16253}
16254
16255impl<'a> crate::construction::sealed::ChainNode for vk::WriteIndirectExecutionSetPipelineEXT<'a> {
16256 const S_TYPE: vk::StructureType = vk::StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT;
16257
16258 fn s_type(&self) -> vk::StructureType {
16259 self.s_type
16260 }
16261
16262 fn p_next(&self) -> *const std::ffi::c_void {
16263 self.p_next
16264 }
16265
16266 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16267 self.p_next = p_next.cast_const();
16268 }
16269
16270 fn address(&mut self) -> *mut std::ffi::c_void {
16271 std::ptr::from_mut(self).cast()
16272 }
16273}
16274
16275impl<'a> crate::construction::sealed::ChainNode for vk::WriteIndirectExecutionSetShaderEXT<'a> {
16276 const S_TYPE: vk::StructureType = vk::StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT;
16277
16278 fn s_type(&self) -> vk::StructureType {
16279 self.s_type
16280 }
16281
16282 fn p_next(&self) -> *const std::ffi::c_void {
16283 self.p_next
16284 }
16285
16286 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16287 self.p_next = p_next.cast_const();
16288 }
16289
16290 fn address(&mut self) -> *mut std::ffi::c_void {
16291 std::ptr::from_mut(self).cast()
16292 }
16293}
16294
16295impl<'a> crate::construction::sealed::ChainNode for vk::IndirectCommandsLayoutCreateInfoEXT<'a> {
16296 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT;
16297
16298 fn s_type(&self) -> vk::StructureType {
16299 self.s_type
16300 }
16301
16302 fn p_next(&self) -> *const std::ffi::c_void {
16303 self.p_next
16304 }
16305
16306 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16307 self.p_next = p_next.cast_const();
16308 }
16309
16310 fn address(&mut self) -> *mut std::ffi::c_void {
16311 std::ptr::from_mut(self).cast()
16312 }
16313}
16314
16315impl<'a> crate::construction::sealed::ChainNode for vk::IndirectCommandsLayoutTokenEXT<'a> {
16316 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT;
16317
16318 fn s_type(&self) -> vk::StructureType {
16319 self.s_type
16320 }
16321
16322 fn p_next(&self) -> *const std::ffi::c_void {
16323 self.p_next
16324 }
16325
16326 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16327 self.p_next = p_next.cast_const();
16328 }
16329
16330 fn address(&mut self) -> *mut std::ffi::c_void {
16331 std::ptr::from_mut(self).cast()
16332 }
16333}
16334
16335impl<'a> crate::construction::sealed::ChainNode
16336 for vk::PipelineViewportDepthClipControlCreateInfoEXT<'a>
16337{
16338 const S_TYPE: vk::StructureType =
16339 vk::StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT;
16340
16341 fn s_type(&self) -> vk::StructureType {
16342 self.s_type
16343 }
16344
16345 fn p_next(&self) -> *const std::ffi::c_void {
16346 self.p_next
16347 }
16348
16349 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16350 self.p_next = p_next.cast_const();
16351 }
16352
16353 fn address(&mut self) -> *mut std::ffi::c_void {
16354 std::ptr::from_mut(self).cast()
16355 }
16356}
16357
16358impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
16359 for vk::PipelineViewportDepthClipControlCreateInfoEXT<'a>
16360{
16361}
16362
16363impl<'a> crate::construction::sealed::ChainNode
16364 for vk::PhysicalDeviceDepthClampControlFeaturesEXT<'a>
16365{
16366 const S_TYPE: vk::StructureType =
16367 vk::StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT;
16368
16369 fn s_type(&self) -> vk::StructureType {
16370 self.s_type
16371 }
16372
16373 fn p_next(&self) -> *const std::ffi::c_void {
16374 self.p_next.cast_const()
16375 }
16376
16377 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16378 self.p_next = p_next;
16379 }
16380
16381 fn address(&mut self) -> *mut std::ffi::c_void {
16382 std::ptr::from_mut(self).cast()
16383 }
16384}
16385
16386impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16387 for vk::PhysicalDeviceDepthClampControlFeaturesEXT<'a>
16388{
16389}
16390
16391impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16392 for vk::PhysicalDeviceDepthClampControlFeaturesEXT<'a>
16393{
16394}
16395
16396impl<'a> crate::construction::sealed::ChainNode
16397 for vk::PipelineViewportDepthClampControlCreateInfoEXT<'a>
16398{
16399 const S_TYPE: vk::StructureType =
16400 vk::StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT;
16401
16402 fn s_type(&self) -> vk::StructureType {
16403 self.s_type
16404 }
16405
16406 fn p_next(&self) -> *const std::ffi::c_void {
16407 self.p_next
16408 }
16409
16410 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16411 self.p_next = p_next.cast_const();
16412 }
16413
16414 fn address(&mut self) -> *mut std::ffi::c_void {
16415 std::ptr::from_mut(self).cast()
16416 }
16417}
16418
16419impl<'a, 'root> crate::Extends<vk::PipelineViewportStateCreateInfo<'root>>
16420 for vk::PipelineViewportDepthClampControlCreateInfoEXT<'a>
16421{
16422}
16423
16424impl<'a> crate::construction::sealed::ChainNode
16425 for vk::PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a>
16426{
16427 const S_TYPE: vk::StructureType =
16428 vk::StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
16429
16430 fn s_type(&self) -> vk::StructureType {
16431 self.s_type
16432 }
16433
16434 fn p_next(&self) -> *const std::ffi::c_void {
16435 self.p_next.cast_const()
16436 }
16437
16438 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16439 self.p_next = p_next;
16440 }
16441
16442 fn address(&mut self) -> *mut std::ffi::c_void {
16443 std::ptr::from_mut(self).cast()
16444 }
16445}
16446
16447impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16448 for vk::PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a>
16449{
16450}
16451
16452impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16453 for vk::PhysicalDeviceVertexInputDynamicStateFeaturesEXT<'a>
16454{
16455}
16456
16457impl<'a> crate::construction::sealed::ChainNode
16458 for vk::PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a>
16459{
16460 const S_TYPE: vk::StructureType =
16461 vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
16462
16463 fn s_type(&self) -> vk::StructureType {
16464 self.s_type
16465 }
16466
16467 fn p_next(&self) -> *const std::ffi::c_void {
16468 self.p_next.cast_const()
16469 }
16470
16471 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16472 self.p_next = p_next;
16473 }
16474
16475 fn address(&mut self) -> *mut std::ffi::c_void {
16476 std::ptr::from_mut(self).cast()
16477 }
16478}
16479
16480impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16481 for vk::PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a>
16482{
16483}
16484
16485impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16486 for vk::PhysicalDeviceExternalMemoryRDMAFeaturesNV<'a>
16487{
16488}
16489
16490impl<'a> crate::construction::sealed::ChainNode
16491 for vk::PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a>
16492{
16493 const S_TYPE: vk::StructureType =
16494 vk::StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR;
16495
16496 fn s_type(&self) -> vk::StructureType {
16497 self.s_type
16498 }
16499
16500 fn p_next(&self) -> *const std::ffi::c_void {
16501 self.p_next.cast_const()
16502 }
16503
16504 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16505 self.p_next = p_next;
16506 }
16507
16508 fn address(&mut self) -> *mut std::ffi::c_void {
16509 std::ptr::from_mut(self).cast()
16510 }
16511}
16512
16513impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16514 for vk::PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a>
16515{
16516}
16517
16518impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16519 for vk::PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR<'a>
16520{
16521}
16522
16523impl<'a> crate::construction::sealed::ChainNode for vk::VertexInputBindingDescription2EXT<'a> {
16524 const S_TYPE: vk::StructureType = vk::StructureType::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
16525
16526 fn s_type(&self) -> vk::StructureType {
16527 self.s_type
16528 }
16529
16530 fn p_next(&self) -> *const std::ffi::c_void {
16531 self.p_next.cast_const()
16532 }
16533
16534 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16535 self.p_next = p_next;
16536 }
16537
16538 fn address(&mut self) -> *mut std::ffi::c_void {
16539 std::ptr::from_mut(self).cast()
16540 }
16541}
16542
16543impl<'a> crate::construction::sealed::ChainNode for vk::VertexInputAttributeDescription2EXT<'a> {
16544 const S_TYPE: vk::StructureType = vk::StructureType::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
16545
16546 fn s_type(&self) -> vk::StructureType {
16547 self.s_type
16548 }
16549
16550 fn p_next(&self) -> *const std::ffi::c_void {
16551 self.p_next.cast_const()
16552 }
16553
16554 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16555 self.p_next = p_next;
16556 }
16557
16558 fn address(&mut self) -> *mut std::ffi::c_void {
16559 std::ptr::from_mut(self).cast()
16560 }
16561}
16562
16563impl<'a> crate::construction::sealed::ChainNode
16564 for vk::PhysicalDeviceColorWriteEnableFeaturesEXT<'a>
16565{
16566 const S_TYPE: vk::StructureType =
16567 vk::StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT;
16568
16569 fn s_type(&self) -> vk::StructureType {
16570 self.s_type
16571 }
16572
16573 fn p_next(&self) -> *const std::ffi::c_void {
16574 self.p_next.cast_const()
16575 }
16576
16577 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16578 self.p_next = p_next;
16579 }
16580
16581 fn address(&mut self) -> *mut std::ffi::c_void {
16582 std::ptr::from_mut(self).cast()
16583 }
16584}
16585
16586impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16587 for vk::PhysicalDeviceColorWriteEnableFeaturesEXT<'a>
16588{
16589}
16590
16591impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16592 for vk::PhysicalDeviceColorWriteEnableFeaturesEXT<'a>
16593{
16594}
16595
16596impl<'a> crate::construction::sealed::ChainNode for vk::PipelineColorWriteCreateInfoEXT<'a> {
16597 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT;
16598
16599 fn s_type(&self) -> vk::StructureType {
16600 self.s_type
16601 }
16602
16603 fn p_next(&self) -> *const std::ffi::c_void {
16604 self.p_next
16605 }
16606
16607 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16608 self.p_next = p_next.cast_const();
16609 }
16610
16611 fn address(&mut self) -> *mut std::ffi::c_void {
16612 std::ptr::from_mut(self).cast()
16613 }
16614}
16615
16616impl<'a, 'root> crate::Extends<vk::PipelineColorBlendStateCreateInfo<'root>>
16617 for vk::PipelineColorWriteCreateInfoEXT<'a>
16618{
16619}
16620
16621impl<'a> crate::construction::sealed::ChainNode for vk::MemoryBarrier2<'a> {
16622 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_BARRIER_2;
16623
16624 fn s_type(&self) -> vk::StructureType {
16625 self.s_type
16626 }
16627
16628 fn p_next(&self) -> *const std::ffi::c_void {
16629 self.p_next
16630 }
16631
16632 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16633 self.p_next = p_next.cast_const();
16634 }
16635
16636 fn address(&mut self) -> *mut std::ffi::c_void {
16637 std::ptr::from_mut(self).cast()
16638 }
16639}
16640
16641impl<'a, 'root> crate::Extends<vk::SubpassDependency2<'root>> for vk::MemoryBarrier2<'a> {}
16642
16643impl<'a> crate::construction::sealed::ChainNode for vk::ImageMemoryBarrier2<'a> {
16644 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_MEMORY_BARRIER_2;
16645
16646 fn s_type(&self) -> vk::StructureType {
16647 self.s_type
16648 }
16649
16650 fn p_next(&self) -> *const std::ffi::c_void {
16651 self.p_next
16652 }
16653
16654 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16655 self.p_next = p_next.cast_const();
16656 }
16657
16658 fn address(&mut self) -> *mut std::ffi::c_void {
16659 std::ptr::from_mut(self).cast()
16660 }
16661}
16662
16663impl<'a> crate::construction::sealed::ChainNode for vk::BufferMemoryBarrier2<'a> {
16664 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_MEMORY_BARRIER_2;
16665
16666 fn s_type(&self) -> vk::StructureType {
16667 self.s_type
16668 }
16669
16670 fn p_next(&self) -> *const std::ffi::c_void {
16671 self.p_next
16672 }
16673
16674 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16675 self.p_next = p_next.cast_const();
16676 }
16677
16678 fn address(&mut self) -> *mut std::ffi::c_void {
16679 std::ptr::from_mut(self).cast()
16680 }
16681}
16682
16683impl<'a> crate::construction::sealed::ChainNode for vk::MemoryBarrierAccessFlags3KHR<'a> {
16684 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR;
16685
16686 fn s_type(&self) -> vk::StructureType {
16687 self.s_type
16688 }
16689
16690 fn p_next(&self) -> *const std::ffi::c_void {
16691 self.p_next
16692 }
16693
16694 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16695 self.p_next = p_next.cast_const();
16696 }
16697
16698 fn address(&mut self) -> *mut std::ffi::c_void {
16699 std::ptr::from_mut(self).cast()
16700 }
16701}
16702
16703impl<'a, 'root> crate::Extends<vk::SubpassDependency2<'root>>
16704 for vk::MemoryBarrierAccessFlags3KHR<'a>
16705{
16706}
16707
16708impl<'a, 'root> crate::Extends<vk::BufferMemoryBarrier2<'root>>
16709 for vk::MemoryBarrierAccessFlags3KHR<'a>
16710{
16711}
16712
16713impl<'a, 'root> crate::Extends<vk::ImageMemoryBarrier2<'root>>
16714 for vk::MemoryBarrierAccessFlags3KHR<'a>
16715{
16716}
16717
16718impl<'a, 'root> crate::Extends<vk::MemoryBarrier2<'root>> for vk::MemoryBarrierAccessFlags3KHR<'a> {}
16719
16720impl<'a, 'root> crate::Extends<vk::MemoryRangeBarrierKHR<'root>>
16721 for vk::MemoryBarrierAccessFlags3KHR<'a>
16722{
16723}
16724
16725impl<'a> crate::construction::sealed::ChainNode for vk::DependencyInfo<'a> {
16726 const S_TYPE: vk::StructureType = vk::StructureType::DEPENDENCY_INFO;
16727
16728 fn s_type(&self) -> vk::StructureType {
16729 self.s_type
16730 }
16731
16732 fn p_next(&self) -> *const std::ffi::c_void {
16733 self.p_next
16734 }
16735
16736 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16737 self.p_next = p_next.cast_const();
16738 }
16739
16740 fn address(&mut self) -> *mut std::ffi::c_void {
16741 std::ptr::from_mut(self).cast()
16742 }
16743}
16744
16745impl<'a> crate::construction::sealed::ChainNode for vk::SemaphoreSubmitInfo<'a> {
16746 const S_TYPE: vk::StructureType = vk::StructureType::SEMAPHORE_SUBMIT_INFO;
16747
16748 fn s_type(&self) -> vk::StructureType {
16749 self.s_type
16750 }
16751
16752 fn p_next(&self) -> *const std::ffi::c_void {
16753 self.p_next
16754 }
16755
16756 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16757 self.p_next = p_next.cast_const();
16758 }
16759
16760 fn address(&mut self) -> *mut std::ffi::c_void {
16761 std::ptr::from_mut(self).cast()
16762 }
16763}
16764
16765impl<'a> crate::construction::sealed::ChainNode for vk::CommandBufferSubmitInfo<'a> {
16766 const S_TYPE: vk::StructureType = vk::StructureType::COMMAND_BUFFER_SUBMIT_INFO;
16767
16768 fn s_type(&self) -> vk::StructureType {
16769 self.s_type
16770 }
16771
16772 fn p_next(&self) -> *const std::ffi::c_void {
16773 self.p_next
16774 }
16775
16776 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16777 self.p_next = p_next.cast_const();
16778 }
16779
16780 fn address(&mut self) -> *mut std::ffi::c_void {
16781 std::ptr::from_mut(self).cast()
16782 }
16783}
16784
16785impl<'a> crate::construction::sealed::ChainNode for vk::SubmitInfo2<'a> {
16786 const S_TYPE: vk::StructureType = vk::StructureType::SUBMIT_INFO_2;
16787
16788 fn s_type(&self) -> vk::StructureType {
16789 self.s_type
16790 }
16791
16792 fn p_next(&self) -> *const std::ffi::c_void {
16793 self.p_next
16794 }
16795
16796 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16797 self.p_next = p_next.cast_const();
16798 }
16799
16800 fn address(&mut self) -> *mut std::ffi::c_void {
16801 std::ptr::from_mut(self).cast()
16802 }
16803}
16804
16805impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyCheckpointProperties2NV<'a> {
16806 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
16807
16808 fn s_type(&self) -> vk::StructureType {
16809 self.s_type
16810 }
16811
16812 fn p_next(&self) -> *const std::ffi::c_void {
16813 self.p_next.cast_const()
16814 }
16815
16816 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16817 self.p_next = p_next;
16818 }
16819
16820 fn address(&mut self) -> *mut std::ffi::c_void {
16821 std::ptr::from_mut(self).cast()
16822 }
16823}
16824
16825impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
16826 for vk::QueueFamilyCheckpointProperties2NV<'a>
16827{
16828}
16829
16830impl<'a> crate::construction::sealed::ChainNode for vk::CheckpointData2NV<'a> {
16831 const S_TYPE: vk::StructureType = vk::StructureType::CHECKPOINT_DATA_2_NV;
16832
16833 fn s_type(&self) -> vk::StructureType {
16834 self.s_type
16835 }
16836
16837 fn p_next(&self) -> *const std::ffi::c_void {
16838 self.p_next.cast_const()
16839 }
16840
16841 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16842 self.p_next = p_next;
16843 }
16844
16845 fn address(&mut self) -> *mut std::ffi::c_void {
16846 std::ptr::from_mut(self).cast()
16847 }
16848}
16849
16850impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceSynchronization2Features<'a> {
16851 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
16852
16853 fn s_type(&self) -> vk::StructureType {
16854 self.s_type
16855 }
16856
16857 fn p_next(&self) -> *const std::ffi::c_void {
16858 self.p_next.cast_const()
16859 }
16860
16861 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16862 self.p_next = p_next;
16863 }
16864
16865 fn address(&mut self) -> *mut std::ffi::c_void {
16866 std::ptr::from_mut(self).cast()
16867 }
16868}
16869
16870impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16871 for vk::PhysicalDeviceSynchronization2Features<'a>
16872{
16873}
16874
16875impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16876 for vk::PhysicalDeviceSynchronization2Features<'a>
16877{
16878}
16879
16880impl<'a> crate::construction::sealed::ChainNode
16881 for vk::PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'a>
16882{
16883 const S_TYPE: vk::StructureType =
16884 vk::StructureType::PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR;
16885
16886 fn s_type(&self) -> vk::StructureType {
16887 self.s_type
16888 }
16889
16890 fn p_next(&self) -> *const std::ffi::c_void {
16891 self.p_next.cast_const()
16892 }
16893
16894 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16895 self.p_next = p_next;
16896 }
16897
16898 fn address(&mut self) -> *mut std::ffi::c_void {
16899 std::ptr::from_mut(self).cast()
16900 }
16901}
16902
16903impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16904 for vk::PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'a>
16905{
16906}
16907
16908impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16909 for vk::PhysicalDeviceUnifiedImageLayoutsFeaturesKHR<'a>
16910{
16911}
16912
16913impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceHostImageCopyFeatures<'a> {
16914 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES;
16915
16916 fn s_type(&self) -> vk::StructureType {
16917 self.s_type
16918 }
16919
16920 fn p_next(&self) -> *const std::ffi::c_void {
16921 self.p_next.cast_const()
16922 }
16923
16924 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16925 self.p_next = p_next;
16926 }
16927
16928 fn address(&mut self) -> *mut std::ffi::c_void {
16929 std::ptr::from_mut(self).cast()
16930 }
16931}
16932
16933impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
16934 for vk::PhysicalDeviceHostImageCopyFeatures<'a>
16935{
16936}
16937
16938impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
16939 for vk::PhysicalDeviceHostImageCopyFeatures<'a>
16940{
16941}
16942
16943impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceHostImageCopyProperties<'a> {
16944 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES;
16945
16946 fn s_type(&self) -> vk::StructureType {
16947 self.s_type
16948 }
16949
16950 fn p_next(&self) -> *const std::ffi::c_void {
16951 self.p_next.cast_const()
16952 }
16953
16954 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16955 self.p_next = p_next;
16956 }
16957
16958 fn address(&mut self) -> *mut std::ffi::c_void {
16959 std::ptr::from_mut(self).cast()
16960 }
16961}
16962
16963impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
16964 for vk::PhysicalDeviceHostImageCopyProperties<'a>
16965{
16966}
16967
16968impl<'a> crate::construction::sealed::ChainNode for vk::MemoryToImageCopy<'a> {
16969 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_TO_IMAGE_COPY;
16970
16971 fn s_type(&self) -> vk::StructureType {
16972 self.s_type
16973 }
16974
16975 fn p_next(&self) -> *const std::ffi::c_void {
16976 self.p_next
16977 }
16978
16979 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
16980 self.p_next = p_next.cast_const();
16981 }
16982
16983 fn address(&mut self) -> *mut std::ffi::c_void {
16984 std::ptr::from_mut(self).cast()
16985 }
16986}
16987
16988impl<'a> crate::construction::sealed::ChainNode for vk::ImageToMemoryCopy<'a> {
16989 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_TO_MEMORY_COPY;
16990
16991 fn s_type(&self) -> vk::StructureType {
16992 self.s_type
16993 }
16994
16995 fn p_next(&self) -> *const std::ffi::c_void {
16996 self.p_next
16997 }
16998
16999 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17000 self.p_next = p_next.cast_const();
17001 }
17002
17003 fn address(&mut self) -> *mut std::ffi::c_void {
17004 std::ptr::from_mut(self).cast()
17005 }
17006}
17007
17008impl<'a> crate::construction::sealed::ChainNode for vk::CopyMemoryToImageInfo<'a> {
17009 const S_TYPE: vk::StructureType = vk::StructureType::COPY_MEMORY_TO_IMAGE_INFO;
17010
17011 fn s_type(&self) -> vk::StructureType {
17012 self.s_type
17013 }
17014
17015 fn p_next(&self) -> *const std::ffi::c_void {
17016 self.p_next
17017 }
17018
17019 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17020 self.p_next = p_next.cast_const();
17021 }
17022
17023 fn address(&mut self) -> *mut std::ffi::c_void {
17024 std::ptr::from_mut(self).cast()
17025 }
17026}
17027
17028impl<'a> crate::construction::sealed::ChainNode for vk::CopyImageToMemoryInfo<'a> {
17029 const S_TYPE: vk::StructureType = vk::StructureType::COPY_IMAGE_TO_MEMORY_INFO;
17030
17031 fn s_type(&self) -> vk::StructureType {
17032 self.s_type
17033 }
17034
17035 fn p_next(&self) -> *const std::ffi::c_void {
17036 self.p_next
17037 }
17038
17039 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17040 self.p_next = p_next.cast_const();
17041 }
17042
17043 fn address(&mut self) -> *mut std::ffi::c_void {
17044 std::ptr::from_mut(self).cast()
17045 }
17046}
17047
17048impl<'a> crate::construction::sealed::ChainNode for vk::CopyImageToImageInfo<'a> {
17049 const S_TYPE: vk::StructureType = vk::StructureType::COPY_IMAGE_TO_IMAGE_INFO;
17050
17051 fn s_type(&self) -> vk::StructureType {
17052 self.s_type
17053 }
17054
17055 fn p_next(&self) -> *const std::ffi::c_void {
17056 self.p_next
17057 }
17058
17059 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17060 self.p_next = p_next.cast_const();
17061 }
17062
17063 fn address(&mut self) -> *mut std::ffi::c_void {
17064 std::ptr::from_mut(self).cast()
17065 }
17066}
17067
17068impl<'a> crate::construction::sealed::ChainNode for vk::HostImageLayoutTransitionInfo<'a> {
17069 const S_TYPE: vk::StructureType = vk::StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO;
17070
17071 fn s_type(&self) -> vk::StructureType {
17072 self.s_type
17073 }
17074
17075 fn p_next(&self) -> *const std::ffi::c_void {
17076 self.p_next
17077 }
17078
17079 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17080 self.p_next = p_next.cast_const();
17081 }
17082
17083 fn address(&mut self) -> *mut std::ffi::c_void {
17084 std::ptr::from_mut(self).cast()
17085 }
17086}
17087
17088impl<'a> crate::construction::sealed::ChainNode for vk::SubresourceHostMemcpySize<'a> {
17089 const S_TYPE: vk::StructureType = vk::StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE;
17090
17091 fn s_type(&self) -> vk::StructureType {
17092 self.s_type
17093 }
17094
17095 fn p_next(&self) -> *const std::ffi::c_void {
17096 self.p_next.cast_const()
17097 }
17098
17099 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17100 self.p_next = p_next;
17101 }
17102
17103 fn address(&mut self) -> *mut std::ffi::c_void {
17104 std::ptr::from_mut(self).cast()
17105 }
17106}
17107
17108impl<'a, 'root> crate::Extends<vk::SubresourceLayout2<'root>>
17109 for vk::SubresourceHostMemcpySize<'a>
17110{
17111}
17112
17113impl<'a> crate::construction::sealed::ChainNode for vk::HostImageCopyDevicePerformanceQuery<'a> {
17114 const S_TYPE: vk::StructureType = vk::StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY;
17115
17116 fn s_type(&self) -> vk::StructureType {
17117 self.s_type
17118 }
17119
17120 fn p_next(&self) -> *const std::ffi::c_void {
17121 self.p_next.cast_const()
17122 }
17123
17124 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17125 self.p_next = p_next;
17126 }
17127
17128 fn address(&mut self) -> *mut std::ffi::c_void {
17129 std::ptr::from_mut(self).cast()
17130 }
17131}
17132
17133impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
17134 for vk::HostImageCopyDevicePerformanceQuery<'a>
17135{
17136}
17137
17138impl<'a> crate::construction::sealed::ChainNode
17139 for vk::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a>
17140{
17141 const S_TYPE: vk::StructureType =
17142 vk::StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT;
17143
17144 fn s_type(&self) -> vk::StructureType {
17145 self.s_type
17146 }
17147
17148 fn p_next(&self) -> *const std::ffi::c_void {
17149 self.p_next.cast_const()
17150 }
17151
17152 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17153 self.p_next = p_next;
17154 }
17155
17156 fn address(&mut self) -> *mut std::ffi::c_void {
17157 std::ptr::from_mut(self).cast()
17158 }
17159}
17160
17161impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17162 for vk::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a>
17163{
17164}
17165
17166impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17167 for vk::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<'a>
17168{
17169}
17170
17171impl<'a> crate::construction::sealed::ChainNode
17172 for vk::PhysicalDeviceLegacyDitheringFeaturesEXT<'a>
17173{
17174 const S_TYPE: vk::StructureType =
17175 vk::StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT;
17176
17177 fn s_type(&self) -> vk::StructureType {
17178 self.s_type
17179 }
17180
17181 fn p_next(&self) -> *const std::ffi::c_void {
17182 self.p_next.cast_const()
17183 }
17184
17185 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17186 self.p_next = p_next;
17187 }
17188
17189 fn address(&mut self) -> *mut std::ffi::c_void {
17190 std::ptr::from_mut(self).cast()
17191 }
17192}
17193
17194impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17195 for vk::PhysicalDeviceLegacyDitheringFeaturesEXT<'a>
17196{
17197}
17198
17199impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17200 for vk::PhysicalDeviceLegacyDitheringFeaturesEXT<'a>
17201{
17202}
17203
17204impl<'a> crate::construction::sealed::ChainNode
17205 for vk::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a>
17206{
17207 const S_TYPE: vk::StructureType =
17208 vk::StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT;
17209
17210 fn s_type(&self) -> vk::StructureType {
17211 self.s_type
17212 }
17213
17214 fn p_next(&self) -> *const std::ffi::c_void {
17215 self.p_next.cast_const()
17216 }
17217
17218 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17219 self.p_next = p_next;
17220 }
17221
17222 fn address(&mut self) -> *mut std::ffi::c_void {
17223 std::ptr::from_mut(self).cast()
17224 }
17225}
17226
17227impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17228 for vk::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a>
17229{
17230}
17231
17232impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17233 for vk::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT<'a>
17234{
17235}
17236
17237impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceCapabilitiesPresentId2KHR<'a> {
17238 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_CAPABILITIES_PRESENT_ID_2_KHR;
17239
17240 fn s_type(&self) -> vk::StructureType {
17241 self.s_type
17242 }
17243
17244 fn p_next(&self) -> *const std::ffi::c_void {
17245 self.p_next.cast_const()
17246 }
17247
17248 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17249 self.p_next = p_next;
17250 }
17251
17252 fn address(&mut self) -> *mut std::ffi::c_void {
17253 std::ptr::from_mut(self).cast()
17254 }
17255}
17256
17257impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
17258 for vk::SurfaceCapabilitiesPresentId2KHR<'a>
17259{
17260}
17261
17262impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceCapabilitiesPresentWait2KHR<'a> {
17263 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR;
17264
17265 fn s_type(&self) -> vk::StructureType {
17266 self.s_type
17267 }
17268
17269 fn p_next(&self) -> *const std::ffi::c_void {
17270 self.p_next.cast_const()
17271 }
17272
17273 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17274 self.p_next = p_next;
17275 }
17276
17277 fn address(&mut self) -> *mut std::ffi::c_void {
17278 std::ptr::from_mut(self).cast()
17279 }
17280}
17281
17282impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
17283 for vk::SurfaceCapabilitiesPresentWait2KHR<'a>
17284{
17285}
17286
17287impl<'a> crate::construction::sealed::ChainNode for vk::SubpassResolvePerformanceQueryEXT<'a> {
17288 const S_TYPE: vk::StructureType = vk::StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT;
17289
17290 fn s_type(&self) -> vk::StructureType {
17291 self.s_type
17292 }
17293
17294 fn p_next(&self) -> *const std::ffi::c_void {
17295 self.p_next.cast_const()
17296 }
17297
17298 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17299 self.p_next = p_next;
17300 }
17301
17302 fn address(&mut self) -> *mut std::ffi::c_void {
17303 std::ptr::from_mut(self).cast()
17304 }
17305}
17306
17307impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>>
17308 for vk::SubpassResolvePerformanceQueryEXT<'a>
17309{
17310}
17311
17312impl<'a> crate::construction::sealed::ChainNode
17313 for vk::MultisampledRenderToSingleSampledInfoEXT<'a>
17314{
17315 const S_TYPE: vk::StructureType =
17316 vk::StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT;
17317
17318 fn s_type(&self) -> vk::StructureType {
17319 self.s_type
17320 }
17321
17322 fn p_next(&self) -> *const std::ffi::c_void {
17323 self.p_next
17324 }
17325
17326 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17327 self.p_next = p_next.cast_const();
17328 }
17329
17330 fn address(&mut self) -> *mut std::ffi::c_void {
17331 std::ptr::from_mut(self).cast()
17332 }
17333}
17334
17335impl<'a, 'root> crate::Extends<vk::SubpassDescription2<'root>>
17336 for vk::MultisampledRenderToSingleSampledInfoEXT<'a>
17337{
17338}
17339
17340impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
17341 for vk::MultisampledRenderToSingleSampledInfoEXT<'a>
17342{
17343}
17344
17345impl<'a> crate::construction::sealed::ChainNode
17346 for vk::PhysicalDeviceMultisampledRenderToSwapchainFeaturesEXT<'a>
17347{
17348 const S_TYPE: vk::StructureType =
17349 vk::StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SWAPCHAIN_FEATURES_EXT;
17350
17351 fn s_type(&self) -> vk::StructureType {
17352 self.s_type
17353 }
17354
17355 fn p_next(&self) -> *const std::ffi::c_void {
17356 self.p_next.cast_const()
17357 }
17358
17359 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17360 self.p_next = p_next;
17361 }
17362
17363 fn address(&mut self) -> *mut std::ffi::c_void {
17364 std::ptr::from_mut(self).cast()
17365 }
17366}
17367
17368impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17369 for vk::PhysicalDeviceMultisampledRenderToSwapchainFeaturesEXT<'a>
17370{
17371}
17372
17373impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17374 for vk::PhysicalDeviceMultisampledRenderToSwapchainFeaturesEXT<'a>
17375{
17376}
17377
17378impl<'a> crate::construction::sealed::ChainNode
17379 for vk::PhysicalDevicePipelineProtectedAccessFeatures<'a>
17380{
17381 const S_TYPE: vk::StructureType =
17382 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES;
17383
17384 fn s_type(&self) -> vk::StructureType {
17385 self.s_type
17386 }
17387
17388 fn p_next(&self) -> *const std::ffi::c_void {
17389 self.p_next.cast_const()
17390 }
17391
17392 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17393 self.p_next = p_next;
17394 }
17395
17396 fn address(&mut self) -> *mut std::ffi::c_void {
17397 std::ptr::from_mut(self).cast()
17398 }
17399}
17400
17401impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17402 for vk::PhysicalDevicePipelineProtectedAccessFeatures<'a>
17403{
17404}
17405
17406impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17407 for vk::PhysicalDevicePipelineProtectedAccessFeatures<'a>
17408{
17409}
17410
17411impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyVideoPropertiesKHR<'a> {
17412 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR;
17413
17414 fn s_type(&self) -> vk::StructureType {
17415 self.s_type
17416 }
17417
17418 fn p_next(&self) -> *const std::ffi::c_void {
17419 self.p_next.cast_const()
17420 }
17421
17422 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17423 self.p_next = p_next;
17424 }
17425
17426 fn address(&mut self) -> *mut std::ffi::c_void {
17427 std::ptr::from_mut(self).cast()
17428 }
17429}
17430
17431impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
17432 for vk::QueueFamilyVideoPropertiesKHR<'a>
17433{
17434}
17435
17436impl<'a> crate::construction::sealed::ChainNode
17437 for vk::QueueFamilyQueryResultStatusPropertiesKHR<'a>
17438{
17439 const S_TYPE: vk::StructureType =
17440 vk::StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR;
17441
17442 fn s_type(&self) -> vk::StructureType {
17443 self.s_type
17444 }
17445
17446 fn p_next(&self) -> *const std::ffi::c_void {
17447 self.p_next.cast_const()
17448 }
17449
17450 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17451 self.p_next = p_next;
17452 }
17453
17454 fn address(&mut self) -> *mut std::ffi::c_void {
17455 std::ptr::from_mut(self).cast()
17456 }
17457}
17458
17459impl<'a, 'root> crate::Extends<vk::QueueFamilyProperties2<'root>>
17460 for vk::QueueFamilyQueryResultStatusPropertiesKHR<'a>
17461{
17462}
17463
17464impl<'a> crate::construction::sealed::ChainNode for vk::VideoProfileListInfoKHR<'a> {
17465 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_PROFILE_LIST_INFO_KHR;
17466
17467 fn s_type(&self) -> vk::StructureType {
17468 self.s_type
17469 }
17470
17471 fn p_next(&self) -> *const std::ffi::c_void {
17472 self.p_next
17473 }
17474
17475 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17476 self.p_next = p_next.cast_const();
17477 }
17478
17479 fn address(&mut self) -> *mut std::ffi::c_void {
17480 std::ptr::from_mut(self).cast()
17481 }
17482}
17483
17484impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
17485 for vk::VideoProfileListInfoKHR<'a>
17486{
17487}
17488
17489impl<'a, 'root> crate::Extends<vk::PhysicalDeviceVideoFormatInfoKHR<'root>>
17490 for vk::VideoProfileListInfoKHR<'a>
17491{
17492}
17493
17494impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::VideoProfileListInfoKHR<'a> {}
17495
17496impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>> for vk::VideoProfileListInfoKHR<'a> {}
17497
17498impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceVideoFormatInfoKHR<'a> {
17499 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
17500
17501 fn s_type(&self) -> vk::StructureType {
17502 self.s_type
17503 }
17504
17505 fn p_next(&self) -> *const std::ffi::c_void {
17506 self.p_next
17507 }
17508
17509 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17510 self.p_next = p_next.cast_const();
17511 }
17512
17513 fn address(&mut self) -> *mut std::ffi::c_void {
17514 std::ptr::from_mut(self).cast()
17515 }
17516}
17517
17518impl<'a> crate::construction::sealed::ChainNode for vk::VideoFormatPropertiesKHR<'a> {
17519 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_FORMAT_PROPERTIES_KHR;
17520
17521 fn s_type(&self) -> vk::StructureType {
17522 self.s_type
17523 }
17524
17525 fn p_next(&self) -> *const std::ffi::c_void {
17526 self.p_next.cast_const()
17527 }
17528
17529 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17530 self.p_next = p_next;
17531 }
17532
17533 fn address(&mut self) -> *mut std::ffi::c_void {
17534 std::ptr::from_mut(self).cast()
17535 }
17536}
17537
17538impl<'a> crate::construction::sealed::ChainNode
17539 for vk::VideoEncodeQuantizationMapCapabilitiesKHR<'a>
17540{
17541 const S_TYPE: vk::StructureType =
17542 vk::StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR;
17543
17544 fn s_type(&self) -> vk::StructureType {
17545 self.s_type
17546 }
17547
17548 fn p_next(&self) -> *const std::ffi::c_void {
17549 self.p_next.cast_const()
17550 }
17551
17552 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17553 self.p_next = p_next;
17554 }
17555
17556 fn address(&mut self) -> *mut std::ffi::c_void {
17557 std::ptr::from_mut(self).cast()
17558 }
17559}
17560
17561impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
17562 for vk::VideoEncodeQuantizationMapCapabilitiesKHR<'a>
17563{
17564}
17565
17566impl<'a> crate::construction::sealed::ChainNode
17567 for vk::VideoEncodeH264QuantizationMapCapabilitiesKHR<'a>
17568{
17569 const S_TYPE: vk::StructureType =
17570 vk::StructureType::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR;
17571
17572 fn s_type(&self) -> vk::StructureType {
17573 self.s_type
17574 }
17575
17576 fn p_next(&self) -> *const std::ffi::c_void {
17577 self.p_next.cast_const()
17578 }
17579
17580 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17581 self.p_next = p_next;
17582 }
17583
17584 fn address(&mut self) -> *mut std::ffi::c_void {
17585 std::ptr::from_mut(self).cast()
17586 }
17587}
17588
17589impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
17590 for vk::VideoEncodeH264QuantizationMapCapabilitiesKHR<'a>
17591{
17592}
17593
17594impl<'a> crate::construction::sealed::ChainNode
17595 for vk::VideoEncodeH265QuantizationMapCapabilitiesKHR<'a>
17596{
17597 const S_TYPE: vk::StructureType =
17598 vk::StructureType::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR;
17599
17600 fn s_type(&self) -> vk::StructureType {
17601 self.s_type
17602 }
17603
17604 fn p_next(&self) -> *const std::ffi::c_void {
17605 self.p_next.cast_const()
17606 }
17607
17608 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17609 self.p_next = p_next;
17610 }
17611
17612 fn address(&mut self) -> *mut std::ffi::c_void {
17613 std::ptr::from_mut(self).cast()
17614 }
17615}
17616
17617impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
17618 for vk::VideoEncodeH265QuantizationMapCapabilitiesKHR<'a>
17619{
17620}
17621
17622impl<'a> crate::construction::sealed::ChainNode
17623 for vk::VideoEncodeAV1QuantizationMapCapabilitiesKHR<'a>
17624{
17625 const S_TYPE: vk::StructureType =
17626 vk::StructureType::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR;
17627
17628 fn s_type(&self) -> vk::StructureType {
17629 self.s_type
17630 }
17631
17632 fn p_next(&self) -> *const std::ffi::c_void {
17633 self.p_next.cast_const()
17634 }
17635
17636 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17637 self.p_next = p_next;
17638 }
17639
17640 fn address(&mut self) -> *mut std::ffi::c_void {
17641 std::ptr::from_mut(self).cast()
17642 }
17643}
17644
17645impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
17646 for vk::VideoEncodeAV1QuantizationMapCapabilitiesKHR<'a>
17647{
17648}
17649
17650impl<'a> crate::construction::sealed::ChainNode
17651 for vk::VideoFormatQuantizationMapPropertiesKHR<'a>
17652{
17653 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR;
17654
17655 fn s_type(&self) -> vk::StructureType {
17656 self.s_type
17657 }
17658
17659 fn p_next(&self) -> *const std::ffi::c_void {
17660 self.p_next.cast_const()
17661 }
17662
17663 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17664 self.p_next = p_next;
17665 }
17666
17667 fn address(&mut self) -> *mut std::ffi::c_void {
17668 std::ptr::from_mut(self).cast()
17669 }
17670}
17671
17672impl<'a, 'root> crate::Extends<vk::VideoFormatPropertiesKHR<'root>>
17673 for vk::VideoFormatQuantizationMapPropertiesKHR<'a>
17674{
17675}
17676
17677impl<'a> crate::construction::sealed::ChainNode
17678 for vk::VideoFormatH265QuantizationMapPropertiesKHR<'a>
17679{
17680 const S_TYPE: vk::StructureType =
17681 vk::StructureType::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR;
17682
17683 fn s_type(&self) -> vk::StructureType {
17684 self.s_type
17685 }
17686
17687 fn p_next(&self) -> *const std::ffi::c_void {
17688 self.p_next.cast_const()
17689 }
17690
17691 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17692 self.p_next = p_next;
17693 }
17694
17695 fn address(&mut self) -> *mut std::ffi::c_void {
17696 std::ptr::from_mut(self).cast()
17697 }
17698}
17699
17700impl<'a, 'root> crate::Extends<vk::VideoFormatPropertiesKHR<'root>>
17701 for vk::VideoFormatH265QuantizationMapPropertiesKHR<'a>
17702{
17703}
17704
17705impl<'a> crate::construction::sealed::ChainNode
17706 for vk::VideoFormatAV1QuantizationMapPropertiesKHR<'a>
17707{
17708 const S_TYPE: vk::StructureType =
17709 vk::StructureType::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR;
17710
17711 fn s_type(&self) -> vk::StructureType {
17712 self.s_type
17713 }
17714
17715 fn p_next(&self) -> *const std::ffi::c_void {
17716 self.p_next.cast_const()
17717 }
17718
17719 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17720 self.p_next = p_next;
17721 }
17722
17723 fn address(&mut self) -> *mut std::ffi::c_void {
17724 std::ptr::from_mut(self).cast()
17725 }
17726}
17727
17728impl<'a, 'root> crate::Extends<vk::VideoFormatPropertiesKHR<'root>>
17729 for vk::VideoFormatAV1QuantizationMapPropertiesKHR<'a>
17730{
17731}
17732
17733impl<'a> crate::construction::sealed::ChainNode for vk::VideoProfileInfoKHR<'a> {
17734 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_PROFILE_INFO_KHR;
17735
17736 fn s_type(&self) -> vk::StructureType {
17737 self.s_type
17738 }
17739
17740 fn p_next(&self) -> *const std::ffi::c_void {
17741 self.p_next
17742 }
17743
17744 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17745 self.p_next = p_next.cast_const();
17746 }
17747
17748 fn address(&mut self) -> *mut std::ffi::c_void {
17749 std::ptr::from_mut(self).cast()
17750 }
17751}
17752
17753impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>> for vk::VideoProfileInfoKHR<'a> {}
17754
17755impl<'a> crate::construction::sealed::ChainNode for vk::VideoCapabilitiesKHR<'a> {
17756 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_CAPABILITIES_KHR;
17757
17758 fn s_type(&self) -> vk::StructureType {
17759 self.s_type
17760 }
17761
17762 fn p_next(&self) -> *const std::ffi::c_void {
17763 self.p_next.cast_const()
17764 }
17765
17766 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17767 self.p_next = p_next;
17768 }
17769
17770 fn address(&mut self) -> *mut std::ffi::c_void {
17771 std::ptr::from_mut(self).cast()
17772 }
17773}
17774
17775impl<'a> crate::construction::sealed::ChainNode for vk::VideoSessionMemoryRequirementsKHR<'a> {
17776 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR;
17777
17778 fn s_type(&self) -> vk::StructureType {
17779 self.s_type
17780 }
17781
17782 fn p_next(&self) -> *const std::ffi::c_void {
17783 self.p_next.cast_const()
17784 }
17785
17786 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17787 self.p_next = p_next;
17788 }
17789
17790 fn address(&mut self) -> *mut std::ffi::c_void {
17791 std::ptr::from_mut(self).cast()
17792 }
17793}
17794
17795impl<'a> crate::construction::sealed::ChainNode for vk::BindVideoSessionMemoryInfoKHR<'a> {
17796 const S_TYPE: vk::StructureType = vk::StructureType::BIND_VIDEO_SESSION_MEMORY_INFO_KHR;
17797
17798 fn s_type(&self) -> vk::StructureType {
17799 self.s_type
17800 }
17801
17802 fn p_next(&self) -> *const std::ffi::c_void {
17803 self.p_next
17804 }
17805
17806 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17807 self.p_next = p_next.cast_const();
17808 }
17809
17810 fn address(&mut self) -> *mut std::ffi::c_void {
17811 std::ptr::from_mut(self).cast()
17812 }
17813}
17814
17815impl<'a> crate::construction::sealed::ChainNode for vk::VideoPictureResourceInfoKHR<'a> {
17816 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_PICTURE_RESOURCE_INFO_KHR;
17817
17818 fn s_type(&self) -> vk::StructureType {
17819 self.s_type
17820 }
17821
17822 fn p_next(&self) -> *const std::ffi::c_void {
17823 self.p_next
17824 }
17825
17826 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17827 self.p_next = p_next.cast_const();
17828 }
17829
17830 fn address(&mut self) -> *mut std::ffi::c_void {
17831 std::ptr::from_mut(self).cast()
17832 }
17833}
17834
17835impl<'a> crate::construction::sealed::ChainNode for vk::VideoReferenceSlotInfoKHR<'a> {
17836 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR;
17837
17838 fn s_type(&self) -> vk::StructureType {
17839 self.s_type
17840 }
17841
17842 fn p_next(&self) -> *const std::ffi::c_void {
17843 self.p_next
17844 }
17845
17846 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17847 self.p_next = p_next.cast_const();
17848 }
17849
17850 fn address(&mut self) -> *mut std::ffi::c_void {
17851 std::ptr::from_mut(self).cast()
17852 }
17853}
17854
17855impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeCapabilitiesKHR<'a> {
17856 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_CAPABILITIES_KHR;
17857
17858 fn s_type(&self) -> vk::StructureType {
17859 self.s_type
17860 }
17861
17862 fn p_next(&self) -> *const std::ffi::c_void {
17863 self.p_next.cast_const()
17864 }
17865
17866 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17867 self.p_next = p_next;
17868 }
17869
17870 fn address(&mut self) -> *mut std::ffi::c_void {
17871 std::ptr::from_mut(self).cast()
17872 }
17873}
17874
17875impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
17876 for vk::VideoDecodeCapabilitiesKHR<'a>
17877{
17878}
17879
17880impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeUsageInfoKHR<'a> {
17881 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_USAGE_INFO_KHR;
17882
17883 fn s_type(&self) -> vk::StructureType {
17884 self.s_type
17885 }
17886
17887 fn p_next(&self) -> *const std::ffi::c_void {
17888 self.p_next
17889 }
17890
17891 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17892 self.p_next = p_next.cast_const();
17893 }
17894
17895 fn address(&mut self) -> *mut std::ffi::c_void {
17896 std::ptr::from_mut(self).cast()
17897 }
17898}
17899
17900impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>> for vk::VideoDecodeUsageInfoKHR<'a> {}
17901
17902impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>> for vk::VideoDecodeUsageInfoKHR<'a> {}
17903
17904impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeInfoKHR<'a> {
17905 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_INFO_KHR;
17906
17907 fn s_type(&self) -> vk::StructureType {
17908 self.s_type
17909 }
17910
17911 fn p_next(&self) -> *const std::ffi::c_void {
17912 self.p_next
17913 }
17914
17915 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17916 self.p_next = p_next.cast_const();
17917 }
17918
17919 fn address(&mut self) -> *mut std::ffi::c_void {
17920 std::ptr::from_mut(self).cast()
17921 }
17922}
17923
17924impl<'a> crate::construction::sealed::ChainNode
17925 for vk::PhysicalDeviceVideoMaintenance1FeaturesKHR<'a>
17926{
17927 const S_TYPE: vk::StructureType =
17928 vk::StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR;
17929
17930 fn s_type(&self) -> vk::StructureType {
17931 self.s_type
17932 }
17933
17934 fn p_next(&self) -> *const std::ffi::c_void {
17935 self.p_next.cast_const()
17936 }
17937
17938 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17939 self.p_next = p_next;
17940 }
17941
17942 fn address(&mut self) -> *mut std::ffi::c_void {
17943 std::ptr::from_mut(self).cast()
17944 }
17945}
17946
17947impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17948 for vk::PhysicalDeviceVideoMaintenance1FeaturesKHR<'a>
17949{
17950}
17951
17952impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17953 for vk::PhysicalDeviceVideoMaintenance1FeaturesKHR<'a>
17954{
17955}
17956
17957impl<'a> crate::construction::sealed::ChainNode
17958 for vk::PhysicalDeviceVideoMaintenance2FeaturesKHR<'a>
17959{
17960 const S_TYPE: vk::StructureType =
17961 vk::StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR;
17962
17963 fn s_type(&self) -> vk::StructureType {
17964 self.s_type
17965 }
17966
17967 fn p_next(&self) -> *const std::ffi::c_void {
17968 self.p_next.cast_const()
17969 }
17970
17971 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
17972 self.p_next = p_next;
17973 }
17974
17975 fn address(&mut self) -> *mut std::ffi::c_void {
17976 std::ptr::from_mut(self).cast()
17977 }
17978}
17979
17980impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
17981 for vk::PhysicalDeviceVideoMaintenance2FeaturesKHR<'a>
17982{
17983}
17984
17985impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
17986 for vk::PhysicalDeviceVideoMaintenance2FeaturesKHR<'a>
17987{
17988}
17989
17990impl<'a> crate::construction::sealed::ChainNode for vk::VideoInlineQueryInfoKHR<'a> {
17991 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_INLINE_QUERY_INFO_KHR;
17992
17993 fn s_type(&self) -> vk::StructureType {
17994 self.s_type
17995 }
17996
17997 fn p_next(&self) -> *const std::ffi::c_void {
17998 self.p_next
17999 }
18000
18001 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18002 self.p_next = p_next.cast_const();
18003 }
18004
18005 fn address(&mut self) -> *mut std::ffi::c_void {
18006 std::ptr::from_mut(self).cast()
18007 }
18008}
18009
18010impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>> for vk::VideoInlineQueryInfoKHR<'a> {}
18011
18012impl<'a, 'root> crate::Extends<vk::VideoEncodeInfoKHR<'root>> for vk::VideoInlineQueryInfoKHR<'a> {}
18013
18014impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH264ProfileInfoKHR<'a> {
18015 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR;
18016
18017 fn s_type(&self) -> vk::StructureType {
18018 self.s_type
18019 }
18020
18021 fn p_next(&self) -> *const std::ffi::c_void {
18022 self.p_next
18023 }
18024
18025 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18026 self.p_next = p_next.cast_const();
18027 }
18028
18029 fn address(&mut self) -> *mut std::ffi::c_void {
18030 std::ptr::from_mut(self).cast()
18031 }
18032}
18033
18034impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
18035 for vk::VideoDecodeH264ProfileInfoKHR<'a>
18036{
18037}
18038
18039impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
18040 for vk::VideoDecodeH264ProfileInfoKHR<'a>
18041{
18042}
18043
18044impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH264CapabilitiesKHR<'a> {
18045 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR;
18046
18047 fn s_type(&self) -> vk::StructureType {
18048 self.s_type
18049 }
18050
18051 fn p_next(&self) -> *const std::ffi::c_void {
18052 self.p_next.cast_const()
18053 }
18054
18055 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18056 self.p_next = p_next;
18057 }
18058
18059 fn address(&mut self) -> *mut std::ffi::c_void {
18060 std::ptr::from_mut(self).cast()
18061 }
18062}
18063
18064impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
18065 for vk::VideoDecodeH264CapabilitiesKHR<'a>
18066{
18067}
18068
18069impl<'a> crate::construction::sealed::ChainNode
18070 for vk::VideoDecodeH264SessionParametersAddInfoKHR<'a>
18071{
18072 const S_TYPE: vk::StructureType =
18073 vk::StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR;
18074
18075 fn s_type(&self) -> vk::StructureType {
18076 self.s_type
18077 }
18078
18079 fn p_next(&self) -> *const std::ffi::c_void {
18080 self.p_next
18081 }
18082
18083 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18084 self.p_next = p_next.cast_const();
18085 }
18086
18087 fn address(&mut self) -> *mut std::ffi::c_void {
18088 std::ptr::from_mut(self).cast()
18089 }
18090}
18091
18092impl<'a, 'root> crate::Extends<vk::VideoSessionParametersUpdateInfoKHR<'root>>
18093 for vk::VideoDecodeH264SessionParametersAddInfoKHR<'a>
18094{
18095}
18096
18097impl<'a> crate::construction::sealed::ChainNode
18098 for vk::VideoDecodeH264SessionParametersCreateInfoKHR<'a>
18099{
18100 const S_TYPE: vk::StructureType =
18101 vk::StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR;
18102
18103 fn s_type(&self) -> vk::StructureType {
18104 self.s_type
18105 }
18106
18107 fn p_next(&self) -> *const std::ffi::c_void {
18108 self.p_next
18109 }
18110
18111 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18112 self.p_next = p_next.cast_const();
18113 }
18114
18115 fn address(&mut self) -> *mut std::ffi::c_void {
18116 std::ptr::from_mut(self).cast()
18117 }
18118}
18119
18120impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
18121 for vk::VideoDecodeH264SessionParametersCreateInfoKHR<'a>
18122{
18123}
18124
18125impl<'a> crate::construction::sealed::ChainNode
18126 for vk::VideoDecodeH264InlineSessionParametersInfoKHR<'a>
18127{
18128 const S_TYPE: vk::StructureType =
18129 vk::StructureType::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR;
18130
18131 fn s_type(&self) -> vk::StructureType {
18132 self.s_type
18133 }
18134
18135 fn p_next(&self) -> *const std::ffi::c_void {
18136 self.p_next
18137 }
18138
18139 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18140 self.p_next = p_next.cast_const();
18141 }
18142
18143 fn address(&mut self) -> *mut std::ffi::c_void {
18144 std::ptr::from_mut(self).cast()
18145 }
18146}
18147
18148impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18149 for vk::VideoDecodeH264InlineSessionParametersInfoKHR<'a>
18150{
18151}
18152
18153impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH264PictureInfoKHR<'a> {
18154 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR;
18155
18156 fn s_type(&self) -> vk::StructureType {
18157 self.s_type
18158 }
18159
18160 fn p_next(&self) -> *const std::ffi::c_void {
18161 self.p_next
18162 }
18163
18164 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18165 self.p_next = p_next.cast_const();
18166 }
18167
18168 fn address(&mut self) -> *mut std::ffi::c_void {
18169 std::ptr::from_mut(self).cast()
18170 }
18171}
18172
18173impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18174 for vk::VideoDecodeH264PictureInfoKHR<'a>
18175{
18176}
18177
18178impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH264DpbSlotInfoKHR<'a> {
18179 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR;
18180
18181 fn s_type(&self) -> vk::StructureType {
18182 self.s_type
18183 }
18184
18185 fn p_next(&self) -> *const std::ffi::c_void {
18186 self.p_next
18187 }
18188
18189 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18190 self.p_next = p_next.cast_const();
18191 }
18192
18193 fn address(&mut self) -> *mut std::ffi::c_void {
18194 std::ptr::from_mut(self).cast()
18195 }
18196}
18197
18198impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
18199 for vk::VideoDecodeH264DpbSlotInfoKHR<'a>
18200{
18201}
18202
18203impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH265ProfileInfoKHR<'a> {
18204 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR;
18205
18206 fn s_type(&self) -> vk::StructureType {
18207 self.s_type
18208 }
18209
18210 fn p_next(&self) -> *const std::ffi::c_void {
18211 self.p_next
18212 }
18213
18214 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18215 self.p_next = p_next.cast_const();
18216 }
18217
18218 fn address(&mut self) -> *mut std::ffi::c_void {
18219 std::ptr::from_mut(self).cast()
18220 }
18221}
18222
18223impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
18224 for vk::VideoDecodeH265ProfileInfoKHR<'a>
18225{
18226}
18227
18228impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
18229 for vk::VideoDecodeH265ProfileInfoKHR<'a>
18230{
18231}
18232
18233impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH265CapabilitiesKHR<'a> {
18234 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR;
18235
18236 fn s_type(&self) -> vk::StructureType {
18237 self.s_type
18238 }
18239
18240 fn p_next(&self) -> *const std::ffi::c_void {
18241 self.p_next.cast_const()
18242 }
18243
18244 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18245 self.p_next = p_next;
18246 }
18247
18248 fn address(&mut self) -> *mut std::ffi::c_void {
18249 std::ptr::from_mut(self).cast()
18250 }
18251}
18252
18253impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
18254 for vk::VideoDecodeH265CapabilitiesKHR<'a>
18255{
18256}
18257
18258impl<'a> crate::construction::sealed::ChainNode
18259 for vk::VideoDecodeH265SessionParametersAddInfoKHR<'a>
18260{
18261 const S_TYPE: vk::StructureType =
18262 vk::StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR;
18263
18264 fn s_type(&self) -> vk::StructureType {
18265 self.s_type
18266 }
18267
18268 fn p_next(&self) -> *const std::ffi::c_void {
18269 self.p_next
18270 }
18271
18272 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18273 self.p_next = p_next.cast_const();
18274 }
18275
18276 fn address(&mut self) -> *mut std::ffi::c_void {
18277 std::ptr::from_mut(self).cast()
18278 }
18279}
18280
18281impl<'a, 'root> crate::Extends<vk::VideoSessionParametersUpdateInfoKHR<'root>>
18282 for vk::VideoDecodeH265SessionParametersAddInfoKHR<'a>
18283{
18284}
18285
18286impl<'a> crate::construction::sealed::ChainNode
18287 for vk::VideoDecodeH265SessionParametersCreateInfoKHR<'a>
18288{
18289 const S_TYPE: vk::StructureType =
18290 vk::StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR;
18291
18292 fn s_type(&self) -> vk::StructureType {
18293 self.s_type
18294 }
18295
18296 fn p_next(&self) -> *const std::ffi::c_void {
18297 self.p_next
18298 }
18299
18300 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18301 self.p_next = p_next.cast_const();
18302 }
18303
18304 fn address(&mut self) -> *mut std::ffi::c_void {
18305 std::ptr::from_mut(self).cast()
18306 }
18307}
18308
18309impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
18310 for vk::VideoDecodeH265SessionParametersCreateInfoKHR<'a>
18311{
18312}
18313
18314impl<'a> crate::construction::sealed::ChainNode
18315 for vk::VideoDecodeH265InlineSessionParametersInfoKHR<'a>
18316{
18317 const S_TYPE: vk::StructureType =
18318 vk::StructureType::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR;
18319
18320 fn s_type(&self) -> vk::StructureType {
18321 self.s_type
18322 }
18323
18324 fn p_next(&self) -> *const std::ffi::c_void {
18325 self.p_next
18326 }
18327
18328 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18329 self.p_next = p_next.cast_const();
18330 }
18331
18332 fn address(&mut self) -> *mut std::ffi::c_void {
18333 std::ptr::from_mut(self).cast()
18334 }
18335}
18336
18337impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18338 for vk::VideoDecodeH265InlineSessionParametersInfoKHR<'a>
18339{
18340}
18341
18342impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH265PictureInfoKHR<'a> {
18343 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR;
18344
18345 fn s_type(&self) -> vk::StructureType {
18346 self.s_type
18347 }
18348
18349 fn p_next(&self) -> *const std::ffi::c_void {
18350 self.p_next
18351 }
18352
18353 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18354 self.p_next = p_next.cast_const();
18355 }
18356
18357 fn address(&mut self) -> *mut std::ffi::c_void {
18358 std::ptr::from_mut(self).cast()
18359 }
18360}
18361
18362impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18363 for vk::VideoDecodeH265PictureInfoKHR<'a>
18364{
18365}
18366
18367impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeH265DpbSlotInfoKHR<'a> {
18368 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR;
18369
18370 fn s_type(&self) -> vk::StructureType {
18371 self.s_type
18372 }
18373
18374 fn p_next(&self) -> *const std::ffi::c_void {
18375 self.p_next
18376 }
18377
18378 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18379 self.p_next = p_next.cast_const();
18380 }
18381
18382 fn address(&mut self) -> *mut std::ffi::c_void {
18383 std::ptr::from_mut(self).cast()
18384 }
18385}
18386
18387impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
18388 for vk::VideoDecodeH265DpbSlotInfoKHR<'a>
18389{
18390}
18391
18392impl<'a> crate::construction::sealed::ChainNode
18393 for vk::PhysicalDeviceVideoDecodeVP9FeaturesKHR<'a>
18394{
18395 const S_TYPE: vk::StructureType =
18396 vk::StructureType::PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR;
18397
18398 fn s_type(&self) -> vk::StructureType {
18399 self.s_type
18400 }
18401
18402 fn p_next(&self) -> *const std::ffi::c_void {
18403 self.p_next.cast_const()
18404 }
18405
18406 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18407 self.p_next = p_next;
18408 }
18409
18410 fn address(&mut self) -> *mut std::ffi::c_void {
18411 std::ptr::from_mut(self).cast()
18412 }
18413}
18414
18415impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
18416 for vk::PhysicalDeviceVideoDecodeVP9FeaturesKHR<'a>
18417{
18418}
18419
18420impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
18421 for vk::PhysicalDeviceVideoDecodeVP9FeaturesKHR<'a>
18422{
18423}
18424
18425impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeVP9ProfileInfoKHR<'a> {
18426 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_VP9_PROFILE_INFO_KHR;
18427
18428 fn s_type(&self) -> vk::StructureType {
18429 self.s_type
18430 }
18431
18432 fn p_next(&self) -> *const std::ffi::c_void {
18433 self.p_next
18434 }
18435
18436 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18437 self.p_next = p_next.cast_const();
18438 }
18439
18440 fn address(&mut self) -> *mut std::ffi::c_void {
18441 std::ptr::from_mut(self).cast()
18442 }
18443}
18444
18445impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
18446 for vk::VideoDecodeVP9ProfileInfoKHR<'a>
18447{
18448}
18449
18450impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
18451 for vk::VideoDecodeVP9ProfileInfoKHR<'a>
18452{
18453}
18454
18455impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeVP9CapabilitiesKHR<'a> {
18456 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_VP9_CAPABILITIES_KHR;
18457
18458 fn s_type(&self) -> vk::StructureType {
18459 self.s_type
18460 }
18461
18462 fn p_next(&self) -> *const std::ffi::c_void {
18463 self.p_next.cast_const()
18464 }
18465
18466 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18467 self.p_next = p_next;
18468 }
18469
18470 fn address(&mut self) -> *mut std::ffi::c_void {
18471 std::ptr::from_mut(self).cast()
18472 }
18473}
18474
18475impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
18476 for vk::VideoDecodeVP9CapabilitiesKHR<'a>
18477{
18478}
18479
18480impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeVP9PictureInfoKHR<'a> {
18481 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_VP9_PICTURE_INFO_KHR;
18482
18483 fn s_type(&self) -> vk::StructureType {
18484 self.s_type
18485 }
18486
18487 fn p_next(&self) -> *const std::ffi::c_void {
18488 self.p_next
18489 }
18490
18491 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18492 self.p_next = p_next.cast_const();
18493 }
18494
18495 fn address(&mut self) -> *mut std::ffi::c_void {
18496 std::ptr::from_mut(self).cast()
18497 }
18498}
18499
18500impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18501 for vk::VideoDecodeVP9PictureInfoKHR<'a>
18502{
18503}
18504
18505impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeAV1ProfileInfoKHR<'a> {
18506 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR;
18507
18508 fn s_type(&self) -> vk::StructureType {
18509 self.s_type
18510 }
18511
18512 fn p_next(&self) -> *const std::ffi::c_void {
18513 self.p_next
18514 }
18515
18516 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18517 self.p_next = p_next.cast_const();
18518 }
18519
18520 fn address(&mut self) -> *mut std::ffi::c_void {
18521 std::ptr::from_mut(self).cast()
18522 }
18523}
18524
18525impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
18526 for vk::VideoDecodeAV1ProfileInfoKHR<'a>
18527{
18528}
18529
18530impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
18531 for vk::VideoDecodeAV1ProfileInfoKHR<'a>
18532{
18533}
18534
18535impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeAV1CapabilitiesKHR<'a> {
18536 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR;
18537
18538 fn s_type(&self) -> vk::StructureType {
18539 self.s_type
18540 }
18541
18542 fn p_next(&self) -> *const std::ffi::c_void {
18543 self.p_next.cast_const()
18544 }
18545
18546 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18547 self.p_next = p_next;
18548 }
18549
18550 fn address(&mut self) -> *mut std::ffi::c_void {
18551 std::ptr::from_mut(self).cast()
18552 }
18553}
18554
18555impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
18556 for vk::VideoDecodeAV1CapabilitiesKHR<'a>
18557{
18558}
18559
18560impl<'a> crate::construction::sealed::ChainNode
18561 for vk::VideoDecodeAV1SessionParametersCreateInfoKHR<'a>
18562{
18563 const S_TYPE: vk::StructureType =
18564 vk::StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR;
18565
18566 fn s_type(&self) -> vk::StructureType {
18567 self.s_type
18568 }
18569
18570 fn p_next(&self) -> *const std::ffi::c_void {
18571 self.p_next
18572 }
18573
18574 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18575 self.p_next = p_next.cast_const();
18576 }
18577
18578 fn address(&mut self) -> *mut std::ffi::c_void {
18579 std::ptr::from_mut(self).cast()
18580 }
18581}
18582
18583impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
18584 for vk::VideoDecodeAV1SessionParametersCreateInfoKHR<'a>
18585{
18586}
18587
18588impl<'a> crate::construction::sealed::ChainNode
18589 for vk::VideoDecodeAV1InlineSessionParametersInfoKHR<'a>
18590{
18591 const S_TYPE: vk::StructureType =
18592 vk::StructureType::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR;
18593
18594 fn s_type(&self) -> vk::StructureType {
18595 self.s_type
18596 }
18597
18598 fn p_next(&self) -> *const std::ffi::c_void {
18599 self.p_next
18600 }
18601
18602 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18603 self.p_next = p_next.cast_const();
18604 }
18605
18606 fn address(&mut self) -> *mut std::ffi::c_void {
18607 std::ptr::from_mut(self).cast()
18608 }
18609}
18610
18611impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18612 for vk::VideoDecodeAV1InlineSessionParametersInfoKHR<'a>
18613{
18614}
18615
18616impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeAV1PictureInfoKHR<'a> {
18617 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR;
18618
18619 fn s_type(&self) -> vk::StructureType {
18620 self.s_type
18621 }
18622
18623 fn p_next(&self) -> *const std::ffi::c_void {
18624 self.p_next
18625 }
18626
18627 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18628 self.p_next = p_next.cast_const();
18629 }
18630
18631 fn address(&mut self) -> *mut std::ffi::c_void {
18632 std::ptr::from_mut(self).cast()
18633 }
18634}
18635
18636impl<'a, 'root> crate::Extends<vk::VideoDecodeInfoKHR<'root>>
18637 for vk::VideoDecodeAV1PictureInfoKHR<'a>
18638{
18639}
18640
18641impl<'a> crate::construction::sealed::ChainNode for vk::VideoDecodeAV1DpbSlotInfoKHR<'a> {
18642 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR;
18643
18644 fn s_type(&self) -> vk::StructureType {
18645 self.s_type
18646 }
18647
18648 fn p_next(&self) -> *const std::ffi::c_void {
18649 self.p_next
18650 }
18651
18652 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18653 self.p_next = p_next.cast_const();
18654 }
18655
18656 fn address(&mut self) -> *mut std::ffi::c_void {
18657 std::ptr::from_mut(self).cast()
18658 }
18659}
18660
18661impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
18662 for vk::VideoDecodeAV1DpbSlotInfoKHR<'a>
18663{
18664}
18665
18666impl<'a> crate::construction::sealed::ChainNode for vk::VideoSessionCreateInfoKHR<'a> {
18667 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_SESSION_CREATE_INFO_KHR;
18668
18669 fn s_type(&self) -> vk::StructureType {
18670 self.s_type
18671 }
18672
18673 fn p_next(&self) -> *const std::ffi::c_void {
18674 self.p_next
18675 }
18676
18677 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18678 self.p_next = p_next.cast_const();
18679 }
18680
18681 fn address(&mut self) -> *mut std::ffi::c_void {
18682 std::ptr::from_mut(self).cast()
18683 }
18684}
18685
18686impl<'a> crate::construction::sealed::ChainNode for vk::VideoSessionParametersCreateInfoKHR<'a> {
18687 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
18688
18689 fn s_type(&self) -> vk::StructureType {
18690 self.s_type
18691 }
18692
18693 fn p_next(&self) -> *const std::ffi::c_void {
18694 self.p_next
18695 }
18696
18697 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18698 self.p_next = p_next.cast_const();
18699 }
18700
18701 fn address(&mut self) -> *mut std::ffi::c_void {
18702 std::ptr::from_mut(self).cast()
18703 }
18704}
18705
18706impl<'a> crate::construction::sealed::ChainNode for vk::VideoSessionParametersUpdateInfoKHR<'a> {
18707 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
18708
18709 fn s_type(&self) -> vk::StructureType {
18710 self.s_type
18711 }
18712
18713 fn p_next(&self) -> *const std::ffi::c_void {
18714 self.p_next
18715 }
18716
18717 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18718 self.p_next = p_next.cast_const();
18719 }
18720
18721 fn address(&mut self) -> *mut std::ffi::c_void {
18722 std::ptr::from_mut(self).cast()
18723 }
18724}
18725
18726impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeSessionParametersGetInfoKHR<'a> {
18727 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR;
18728
18729 fn s_type(&self) -> vk::StructureType {
18730 self.s_type
18731 }
18732
18733 fn p_next(&self) -> *const std::ffi::c_void {
18734 self.p_next
18735 }
18736
18737 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18738 self.p_next = p_next.cast_const();
18739 }
18740
18741 fn address(&mut self) -> *mut std::ffi::c_void {
18742 std::ptr::from_mut(self).cast()
18743 }
18744}
18745
18746impl<'a> crate::construction::sealed::ChainNode
18747 for vk::VideoEncodeSessionParametersFeedbackInfoKHR<'a>
18748{
18749 const S_TYPE: vk::StructureType =
18750 vk::StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
18751
18752 fn s_type(&self) -> vk::StructureType {
18753 self.s_type
18754 }
18755
18756 fn p_next(&self) -> *const std::ffi::c_void {
18757 self.p_next.cast_const()
18758 }
18759
18760 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18761 self.p_next = p_next;
18762 }
18763
18764 fn address(&mut self) -> *mut std::ffi::c_void {
18765 std::ptr::from_mut(self).cast()
18766 }
18767}
18768
18769impl<'a> crate::construction::sealed::ChainNode for vk::VideoBeginCodingInfoKHR<'a> {
18770 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_BEGIN_CODING_INFO_KHR;
18771
18772 fn s_type(&self) -> vk::StructureType {
18773 self.s_type
18774 }
18775
18776 fn p_next(&self) -> *const std::ffi::c_void {
18777 self.p_next
18778 }
18779
18780 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18781 self.p_next = p_next.cast_const();
18782 }
18783
18784 fn address(&mut self) -> *mut std::ffi::c_void {
18785 std::ptr::from_mut(self).cast()
18786 }
18787}
18788
18789impl<'a> crate::construction::sealed::ChainNode for vk::VideoEndCodingInfoKHR<'a> {
18790 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_END_CODING_INFO_KHR;
18791
18792 fn s_type(&self) -> vk::StructureType {
18793 self.s_type
18794 }
18795
18796 fn p_next(&self) -> *const std::ffi::c_void {
18797 self.p_next
18798 }
18799
18800 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18801 self.p_next = p_next.cast_const();
18802 }
18803
18804 fn address(&mut self) -> *mut std::ffi::c_void {
18805 std::ptr::from_mut(self).cast()
18806 }
18807}
18808
18809impl<'a> crate::construction::sealed::ChainNode for vk::VideoCodingControlInfoKHR<'a> {
18810 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_CODING_CONTROL_INFO_KHR;
18811
18812 fn s_type(&self) -> vk::StructureType {
18813 self.s_type
18814 }
18815
18816 fn p_next(&self) -> *const std::ffi::c_void {
18817 self.p_next
18818 }
18819
18820 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18821 self.p_next = p_next.cast_const();
18822 }
18823
18824 fn address(&mut self) -> *mut std::ffi::c_void {
18825 std::ptr::from_mut(self).cast()
18826 }
18827}
18828
18829impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeUsageInfoKHR<'a> {
18830 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_USAGE_INFO_KHR;
18831
18832 fn s_type(&self) -> vk::StructureType {
18833 self.s_type
18834 }
18835
18836 fn p_next(&self) -> *const std::ffi::c_void {
18837 self.p_next
18838 }
18839
18840 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18841 self.p_next = p_next.cast_const();
18842 }
18843
18844 fn address(&mut self) -> *mut std::ffi::c_void {
18845 std::ptr::from_mut(self).cast()
18846 }
18847}
18848
18849impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>> for vk::VideoEncodeUsageInfoKHR<'a> {}
18850
18851impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>> for vk::VideoEncodeUsageInfoKHR<'a> {}
18852
18853impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeInfoKHR<'a> {
18854 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_INFO_KHR;
18855
18856 fn s_type(&self) -> vk::StructureType {
18857 self.s_type
18858 }
18859
18860 fn p_next(&self) -> *const std::ffi::c_void {
18861 self.p_next
18862 }
18863
18864 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18865 self.p_next = p_next.cast_const();
18866 }
18867
18868 fn address(&mut self) -> *mut std::ffi::c_void {
18869 std::ptr::from_mut(self).cast()
18870 }
18871}
18872
18873impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeQuantizationMapInfoKHR<'a> {
18874 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR;
18875
18876 fn s_type(&self) -> vk::StructureType {
18877 self.s_type
18878 }
18879
18880 fn p_next(&self) -> *const std::ffi::c_void {
18881 self.p_next
18882 }
18883
18884 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18885 self.p_next = p_next.cast_const();
18886 }
18887
18888 fn address(&mut self) -> *mut std::ffi::c_void {
18889 std::ptr::from_mut(self).cast()
18890 }
18891}
18892
18893impl<'a, 'root> crate::Extends<vk::VideoEncodeInfoKHR<'root>>
18894 for vk::VideoEncodeQuantizationMapInfoKHR<'a>
18895{
18896}
18897
18898impl<'a> crate::construction::sealed::ChainNode
18899 for vk::VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'a>
18900{
18901 const S_TYPE: vk::StructureType =
18902 vk::StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR;
18903
18904 fn s_type(&self) -> vk::StructureType {
18905 self.s_type
18906 }
18907
18908 fn p_next(&self) -> *const std::ffi::c_void {
18909 self.p_next
18910 }
18911
18912 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18913 self.p_next = p_next.cast_const();
18914 }
18915
18916 fn address(&mut self) -> *mut std::ffi::c_void {
18917 std::ptr::from_mut(self).cast()
18918 }
18919}
18920
18921impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
18922 for vk::VideoEncodeQuantizationMapSessionParametersCreateInfoKHR<'a>
18923{
18924}
18925
18926impl<'a> crate::construction::sealed::ChainNode
18927 for vk::PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'a>
18928{
18929 const S_TYPE: vk::StructureType =
18930 vk::StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR;
18931
18932 fn s_type(&self) -> vk::StructureType {
18933 self.s_type
18934 }
18935
18936 fn p_next(&self) -> *const std::ffi::c_void {
18937 self.p_next.cast_const()
18938 }
18939
18940 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18941 self.p_next = p_next;
18942 }
18943
18944 fn address(&mut self) -> *mut std::ffi::c_void {
18945 std::ptr::from_mut(self).cast()
18946 }
18947}
18948
18949impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
18950 for vk::PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'a>
18951{
18952}
18953
18954impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
18955 for vk::PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR<'a>
18956{
18957}
18958
18959impl<'a> crate::construction::sealed::ChainNode
18960 for vk::QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a>
18961{
18962 const S_TYPE: vk::StructureType =
18963 vk::StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR;
18964
18965 fn s_type(&self) -> vk::StructureType {
18966 self.s_type
18967 }
18968
18969 fn p_next(&self) -> *const std::ffi::c_void {
18970 self.p_next
18971 }
18972
18973 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18974 self.p_next = p_next.cast_const();
18975 }
18976
18977 fn address(&mut self) -> *mut std::ffi::c_void {
18978 std::ptr::from_mut(self).cast()
18979 }
18980}
18981
18982impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
18983 for vk::QueryPoolVideoEncodeFeedbackCreateInfoKHR<'a>
18984{
18985}
18986
18987impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeQualityLevelInfoKHR<'a> {
18988 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR;
18989
18990 fn s_type(&self) -> vk::StructureType {
18991 self.s_type
18992 }
18993
18994 fn p_next(&self) -> *const std::ffi::c_void {
18995 self.p_next
18996 }
18997
18998 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
18999 self.p_next = p_next.cast_const();
19000 }
19001
19002 fn address(&mut self) -> *mut std::ffi::c_void {
19003 std::ptr::from_mut(self).cast()
19004 }
19005}
19006
19007impl<'a, 'root> crate::Extends<vk::VideoCodingControlInfoKHR<'root>>
19008 for vk::VideoEncodeQualityLevelInfoKHR<'a>
19009{
19010}
19011
19012impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
19013 for vk::VideoEncodeQualityLevelInfoKHR<'a>
19014{
19015}
19016
19017impl<'a> crate::construction::sealed::ChainNode
19018 for vk::PhysicalDeviceVideoEncodeQualityLevelInfoKHR<'a>
19019{
19020 const S_TYPE: vk::StructureType =
19021 vk::StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR;
19022
19023 fn s_type(&self) -> vk::StructureType {
19024 self.s_type
19025 }
19026
19027 fn p_next(&self) -> *const std::ffi::c_void {
19028 self.p_next
19029 }
19030
19031 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19032 self.p_next = p_next.cast_const();
19033 }
19034
19035 fn address(&mut self) -> *mut std::ffi::c_void {
19036 std::ptr::from_mut(self).cast()
19037 }
19038}
19039
19040impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeQualityLevelPropertiesKHR<'a> {
19041 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR;
19042
19043 fn s_type(&self) -> vk::StructureType {
19044 self.s_type
19045 }
19046
19047 fn p_next(&self) -> *const std::ffi::c_void {
19048 self.p_next.cast_const()
19049 }
19050
19051 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19052 self.p_next = p_next;
19053 }
19054
19055 fn address(&mut self) -> *mut std::ffi::c_void {
19056 std::ptr::from_mut(self).cast()
19057 }
19058}
19059
19060impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeRateControlInfoKHR<'a> {
19061 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
19062
19063 fn s_type(&self) -> vk::StructureType {
19064 self.s_type
19065 }
19066
19067 fn p_next(&self) -> *const std::ffi::c_void {
19068 self.p_next
19069 }
19070
19071 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19072 self.p_next = p_next.cast_const();
19073 }
19074
19075 fn address(&mut self) -> *mut std::ffi::c_void {
19076 std::ptr::from_mut(self).cast()
19077 }
19078}
19079
19080impl<'a, 'root> crate::Extends<vk::VideoCodingControlInfoKHR<'root>>
19081 for vk::VideoEncodeRateControlInfoKHR<'a>
19082{
19083}
19084
19085impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
19086 for vk::VideoEncodeRateControlInfoKHR<'a>
19087{
19088}
19089
19090impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeRateControlLayerInfoKHR<'a> {
19091 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR;
19092
19093 fn s_type(&self) -> vk::StructureType {
19094 self.s_type
19095 }
19096
19097 fn p_next(&self) -> *const std::ffi::c_void {
19098 self.p_next
19099 }
19100
19101 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19102 self.p_next = p_next.cast_const();
19103 }
19104
19105 fn address(&mut self) -> *mut std::ffi::c_void {
19106 std::ptr::from_mut(self).cast()
19107 }
19108}
19109
19110impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeCapabilitiesKHR<'a> {
19111 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_CAPABILITIES_KHR;
19112
19113 fn s_type(&self) -> vk::StructureType {
19114 self.s_type
19115 }
19116
19117 fn p_next(&self) -> *const std::ffi::c_void {
19118 self.p_next.cast_const()
19119 }
19120
19121 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19122 self.p_next = p_next;
19123 }
19124
19125 fn address(&mut self) -> *mut std::ffi::c_void {
19126 std::ptr::from_mut(self).cast()
19127 }
19128}
19129
19130impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
19131 for vk::VideoEncodeCapabilitiesKHR<'a>
19132{
19133}
19134
19135impl<'a> crate::construction::sealed::ChainNode
19136 for vk::PhysicalDeviceVideoEncodeFeedback2FeaturesKHR<'a>
19137{
19138 const S_TYPE: vk::StructureType =
19139 vk::StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_FEEDBACK_2_FEATURES_KHR;
19140
19141 fn s_type(&self) -> vk::StructureType {
19142 self.s_type
19143 }
19144
19145 fn p_next(&self) -> *const std::ffi::c_void {
19146 self.p_next.cast_const()
19147 }
19148
19149 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19150 self.p_next = p_next;
19151 }
19152
19153 fn address(&mut self) -> *mut std::ffi::c_void {
19154 std::ptr::from_mut(self).cast()
19155 }
19156}
19157
19158impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
19159 for vk::PhysicalDeviceVideoEncodeFeedback2FeaturesKHR<'a>
19160{
19161}
19162
19163impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
19164 for vk::PhysicalDeviceVideoEncodeFeedback2FeaturesKHR<'a>
19165{
19166}
19167
19168impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeFeedback2CapabilitiesKHR<'a> {
19169 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_FEEDBACK_2_CAPABILITIES_KHR;
19170
19171 fn s_type(&self) -> vk::StructureType {
19172 self.s_type
19173 }
19174
19175 fn p_next(&self) -> *const std::ffi::c_void {
19176 self.p_next.cast_const()
19177 }
19178
19179 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19180 self.p_next = p_next;
19181 }
19182
19183 fn address(&mut self) -> *mut std::ffi::c_void {
19184 std::ptr::from_mut(self).cast()
19185 }
19186}
19187
19188impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
19189 for vk::VideoEncodeFeedback2CapabilitiesKHR<'a>
19190{
19191}
19192
19193impl<'a> crate::construction::sealed::ChainNode
19194 for vk::QueryPoolVideoEncodePerPartitionFeedbackCreateInfoKHR<'a>
19195{
19196 const S_TYPE: vk::StructureType =
19197 vk::StructureType::QUERY_POOL_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_CREATE_INFO_KHR;
19198
19199 fn s_type(&self) -> vk::StructureType {
19200 self.s_type
19201 }
19202
19203 fn p_next(&self) -> *const std::ffi::c_void {
19204 self.p_next
19205 }
19206
19207 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19208 self.p_next = p_next.cast_const();
19209 }
19210
19211 fn address(&mut self) -> *mut std::ffi::c_void {
19212 std::ptr::from_mut(self).cast()
19213 }
19214}
19215
19216impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
19217 for vk::QueryPoolVideoEncodePerPartitionFeedbackCreateInfoKHR<'a>
19218{
19219}
19220
19221impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264CapabilitiesKHR<'a> {
19222 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR;
19223
19224 fn s_type(&self) -> vk::StructureType {
19225 self.s_type
19226 }
19227
19228 fn p_next(&self) -> *const std::ffi::c_void {
19229 self.p_next.cast_const()
19230 }
19231
19232 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19233 self.p_next = p_next;
19234 }
19235
19236 fn address(&mut self) -> *mut std::ffi::c_void {
19237 std::ptr::from_mut(self).cast()
19238 }
19239}
19240
19241impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
19242 for vk::VideoEncodeH264CapabilitiesKHR<'a>
19243{
19244}
19245
19246impl<'a> crate::construction::sealed::ChainNode
19247 for vk::VideoEncodeH264QualityLevelPropertiesKHR<'a>
19248{
19249 const S_TYPE: vk::StructureType =
19250 vk::StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR;
19251
19252 fn s_type(&self) -> vk::StructureType {
19253 self.s_type
19254 }
19255
19256 fn p_next(&self) -> *const std::ffi::c_void {
19257 self.p_next.cast_const()
19258 }
19259
19260 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19261 self.p_next = p_next;
19262 }
19263
19264 fn address(&mut self) -> *mut std::ffi::c_void {
19265 std::ptr::from_mut(self).cast()
19266 }
19267}
19268
19269impl<'a, 'root> crate::Extends<vk::VideoEncodeQualityLevelPropertiesKHR<'root>>
19270 for vk::VideoEncodeH264QualityLevelPropertiesKHR<'a>
19271{
19272}
19273
19274impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264SessionCreateInfoKHR<'a> {
19275 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR;
19276
19277 fn s_type(&self) -> vk::StructureType {
19278 self.s_type
19279 }
19280
19281 fn p_next(&self) -> *const std::ffi::c_void {
19282 self.p_next
19283 }
19284
19285 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19286 self.p_next = p_next.cast_const();
19287 }
19288
19289 fn address(&mut self) -> *mut std::ffi::c_void {
19290 std::ptr::from_mut(self).cast()
19291 }
19292}
19293
19294impl<'a, 'root> crate::Extends<vk::VideoSessionCreateInfoKHR<'root>>
19295 for vk::VideoEncodeH264SessionCreateInfoKHR<'a>
19296{
19297}
19298
19299impl<'a> crate::construction::sealed::ChainNode
19300 for vk::VideoEncodeH264SessionParametersAddInfoKHR<'a>
19301{
19302 const S_TYPE: vk::StructureType =
19303 vk::StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR;
19304
19305 fn s_type(&self) -> vk::StructureType {
19306 self.s_type
19307 }
19308
19309 fn p_next(&self) -> *const std::ffi::c_void {
19310 self.p_next
19311 }
19312
19313 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19314 self.p_next = p_next.cast_const();
19315 }
19316
19317 fn address(&mut self) -> *mut std::ffi::c_void {
19318 std::ptr::from_mut(self).cast()
19319 }
19320}
19321
19322impl<'a, 'root> crate::Extends<vk::VideoSessionParametersUpdateInfoKHR<'root>>
19323 for vk::VideoEncodeH264SessionParametersAddInfoKHR<'a>
19324{
19325}
19326
19327impl<'a> crate::construction::sealed::ChainNode
19328 for vk::VideoEncodeH264SessionParametersCreateInfoKHR<'a>
19329{
19330 const S_TYPE: vk::StructureType =
19331 vk::StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR;
19332
19333 fn s_type(&self) -> vk::StructureType {
19334 self.s_type
19335 }
19336
19337 fn p_next(&self) -> *const std::ffi::c_void {
19338 self.p_next
19339 }
19340
19341 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19342 self.p_next = p_next.cast_const();
19343 }
19344
19345 fn address(&mut self) -> *mut std::ffi::c_void {
19346 std::ptr::from_mut(self).cast()
19347 }
19348}
19349
19350impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
19351 for vk::VideoEncodeH264SessionParametersCreateInfoKHR<'a>
19352{
19353}
19354
19355impl<'a> crate::construction::sealed::ChainNode
19356 for vk::VideoEncodeH264SessionParametersGetInfoKHR<'a>
19357{
19358 const S_TYPE: vk::StructureType =
19359 vk::StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR;
19360
19361 fn s_type(&self) -> vk::StructureType {
19362 self.s_type
19363 }
19364
19365 fn p_next(&self) -> *const std::ffi::c_void {
19366 self.p_next
19367 }
19368
19369 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19370 self.p_next = p_next.cast_const();
19371 }
19372
19373 fn address(&mut self) -> *mut std::ffi::c_void {
19374 std::ptr::from_mut(self).cast()
19375 }
19376}
19377
19378impl<'a, 'root> crate::Extends<vk::VideoEncodeSessionParametersGetInfoKHR<'root>>
19379 for vk::VideoEncodeH264SessionParametersGetInfoKHR<'a>
19380{
19381}
19382
19383impl<'a> crate::construction::sealed::ChainNode
19384 for vk::VideoEncodeH264SessionParametersFeedbackInfoKHR<'a>
19385{
19386 const S_TYPE: vk::StructureType =
19387 vk::StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19388
19389 fn s_type(&self) -> vk::StructureType {
19390 self.s_type
19391 }
19392
19393 fn p_next(&self) -> *const std::ffi::c_void {
19394 self.p_next.cast_const()
19395 }
19396
19397 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19398 self.p_next = p_next;
19399 }
19400
19401 fn address(&mut self) -> *mut std::ffi::c_void {
19402 std::ptr::from_mut(self).cast()
19403 }
19404}
19405
19406impl<'a, 'root> crate::Extends<vk::VideoEncodeSessionParametersFeedbackInfoKHR<'root>>
19407 for vk::VideoEncodeH264SessionParametersFeedbackInfoKHR<'a>
19408{
19409}
19410
19411impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264DpbSlotInfoKHR<'a> {
19412 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR;
19413
19414 fn s_type(&self) -> vk::StructureType {
19415 self.s_type
19416 }
19417
19418 fn p_next(&self) -> *const std::ffi::c_void {
19419 self.p_next
19420 }
19421
19422 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19423 self.p_next = p_next.cast_const();
19424 }
19425
19426 fn address(&mut self) -> *mut std::ffi::c_void {
19427 std::ptr::from_mut(self).cast()
19428 }
19429}
19430
19431impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
19432 for vk::VideoEncodeH264DpbSlotInfoKHR<'a>
19433{
19434}
19435
19436impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264PictureInfoKHR<'a> {
19437 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR;
19438
19439 fn s_type(&self) -> vk::StructureType {
19440 self.s_type
19441 }
19442
19443 fn p_next(&self) -> *const std::ffi::c_void {
19444 self.p_next
19445 }
19446
19447 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19448 self.p_next = p_next.cast_const();
19449 }
19450
19451 fn address(&mut self) -> *mut std::ffi::c_void {
19452 std::ptr::from_mut(self).cast()
19453 }
19454}
19455
19456impl<'a, 'root> crate::Extends<vk::VideoEncodeInfoKHR<'root>>
19457 for vk::VideoEncodeH264PictureInfoKHR<'a>
19458{
19459}
19460
19461impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264ProfileInfoKHR<'a> {
19462 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR;
19463
19464 fn s_type(&self) -> vk::StructureType {
19465 self.s_type
19466 }
19467
19468 fn p_next(&self) -> *const std::ffi::c_void {
19469 self.p_next
19470 }
19471
19472 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19473 self.p_next = p_next.cast_const();
19474 }
19475
19476 fn address(&mut self) -> *mut std::ffi::c_void {
19477 std::ptr::from_mut(self).cast()
19478 }
19479}
19480
19481impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
19482 for vk::VideoEncodeH264ProfileInfoKHR<'a>
19483{
19484}
19485
19486impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
19487 for vk::VideoEncodeH264ProfileInfoKHR<'a>
19488{
19489}
19490
19491impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264NaluSliceInfoKHR<'a> {
19492 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR;
19493
19494 fn s_type(&self) -> vk::StructureType {
19495 self.s_type
19496 }
19497
19498 fn p_next(&self) -> *const std::ffi::c_void {
19499 self.p_next
19500 }
19501
19502 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19503 self.p_next = p_next.cast_const();
19504 }
19505
19506 fn address(&mut self) -> *mut std::ffi::c_void {
19507 std::ptr::from_mut(self).cast()
19508 }
19509}
19510
19511impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264RateControlInfoKHR<'a> {
19512 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR;
19513
19514 fn s_type(&self) -> vk::StructureType {
19515 self.s_type
19516 }
19517
19518 fn p_next(&self) -> *const std::ffi::c_void {
19519 self.p_next
19520 }
19521
19522 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19523 self.p_next = p_next.cast_const();
19524 }
19525
19526 fn address(&mut self) -> *mut std::ffi::c_void {
19527 std::ptr::from_mut(self).cast()
19528 }
19529}
19530
19531impl<'a, 'root> crate::Extends<vk::VideoCodingControlInfoKHR<'root>>
19532 for vk::VideoEncodeH264RateControlInfoKHR<'a>
19533{
19534}
19535
19536impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
19537 for vk::VideoEncodeH264RateControlInfoKHR<'a>
19538{
19539}
19540
19541impl<'a> crate::construction::sealed::ChainNode
19542 for vk::VideoEncodeH264GopRemainingFrameInfoKHR<'a>
19543{
19544 const S_TYPE: vk::StructureType =
19545 vk::StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR;
19546
19547 fn s_type(&self) -> vk::StructureType {
19548 self.s_type
19549 }
19550
19551 fn p_next(&self) -> *const std::ffi::c_void {
19552 self.p_next
19553 }
19554
19555 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19556 self.p_next = p_next.cast_const();
19557 }
19558
19559 fn address(&mut self) -> *mut std::ffi::c_void {
19560 std::ptr::from_mut(self).cast()
19561 }
19562}
19563
19564impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
19565 for vk::VideoEncodeH264GopRemainingFrameInfoKHR<'a>
19566{
19567}
19568
19569impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH264RateControlLayerInfoKHR<'a> {
19570 const S_TYPE: vk::StructureType =
19571 vk::StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR;
19572
19573 fn s_type(&self) -> vk::StructureType {
19574 self.s_type
19575 }
19576
19577 fn p_next(&self) -> *const std::ffi::c_void {
19578 self.p_next
19579 }
19580
19581 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19582 self.p_next = p_next.cast_const();
19583 }
19584
19585 fn address(&mut self) -> *mut std::ffi::c_void {
19586 std::ptr::from_mut(self).cast()
19587 }
19588}
19589
19590impl<'a, 'root> crate::Extends<vk::VideoEncodeRateControlLayerInfoKHR<'root>>
19591 for vk::VideoEncodeH264RateControlLayerInfoKHR<'a>
19592{
19593}
19594
19595impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265CapabilitiesKHR<'a> {
19596 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR;
19597
19598 fn s_type(&self) -> vk::StructureType {
19599 self.s_type
19600 }
19601
19602 fn p_next(&self) -> *const std::ffi::c_void {
19603 self.p_next.cast_const()
19604 }
19605
19606 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19607 self.p_next = p_next;
19608 }
19609
19610 fn address(&mut self) -> *mut std::ffi::c_void {
19611 std::ptr::from_mut(self).cast()
19612 }
19613}
19614
19615impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
19616 for vk::VideoEncodeH265CapabilitiesKHR<'a>
19617{
19618}
19619
19620impl<'a> crate::construction::sealed::ChainNode
19621 for vk::VideoEncodeH265QualityLevelPropertiesKHR<'a>
19622{
19623 const S_TYPE: vk::StructureType =
19624 vk::StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR;
19625
19626 fn s_type(&self) -> vk::StructureType {
19627 self.s_type
19628 }
19629
19630 fn p_next(&self) -> *const std::ffi::c_void {
19631 self.p_next.cast_const()
19632 }
19633
19634 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19635 self.p_next = p_next;
19636 }
19637
19638 fn address(&mut self) -> *mut std::ffi::c_void {
19639 std::ptr::from_mut(self).cast()
19640 }
19641}
19642
19643impl<'a, 'root> crate::Extends<vk::VideoEncodeQualityLevelPropertiesKHR<'root>>
19644 for vk::VideoEncodeH265QualityLevelPropertiesKHR<'a>
19645{
19646}
19647
19648impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265SessionCreateInfoKHR<'a> {
19649 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR;
19650
19651 fn s_type(&self) -> vk::StructureType {
19652 self.s_type
19653 }
19654
19655 fn p_next(&self) -> *const std::ffi::c_void {
19656 self.p_next
19657 }
19658
19659 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19660 self.p_next = p_next.cast_const();
19661 }
19662
19663 fn address(&mut self) -> *mut std::ffi::c_void {
19664 std::ptr::from_mut(self).cast()
19665 }
19666}
19667
19668impl<'a, 'root> crate::Extends<vk::VideoSessionCreateInfoKHR<'root>>
19669 for vk::VideoEncodeH265SessionCreateInfoKHR<'a>
19670{
19671}
19672
19673impl<'a> crate::construction::sealed::ChainNode
19674 for vk::VideoEncodeH265SessionParametersAddInfoKHR<'a>
19675{
19676 const S_TYPE: vk::StructureType =
19677 vk::StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR;
19678
19679 fn s_type(&self) -> vk::StructureType {
19680 self.s_type
19681 }
19682
19683 fn p_next(&self) -> *const std::ffi::c_void {
19684 self.p_next
19685 }
19686
19687 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19688 self.p_next = p_next.cast_const();
19689 }
19690
19691 fn address(&mut self) -> *mut std::ffi::c_void {
19692 std::ptr::from_mut(self).cast()
19693 }
19694}
19695
19696impl<'a, 'root> crate::Extends<vk::VideoSessionParametersUpdateInfoKHR<'root>>
19697 for vk::VideoEncodeH265SessionParametersAddInfoKHR<'a>
19698{
19699}
19700
19701impl<'a> crate::construction::sealed::ChainNode
19702 for vk::VideoEncodeH265SessionParametersCreateInfoKHR<'a>
19703{
19704 const S_TYPE: vk::StructureType =
19705 vk::StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR;
19706
19707 fn s_type(&self) -> vk::StructureType {
19708 self.s_type
19709 }
19710
19711 fn p_next(&self) -> *const std::ffi::c_void {
19712 self.p_next
19713 }
19714
19715 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19716 self.p_next = p_next.cast_const();
19717 }
19718
19719 fn address(&mut self) -> *mut std::ffi::c_void {
19720 std::ptr::from_mut(self).cast()
19721 }
19722}
19723
19724impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
19725 for vk::VideoEncodeH265SessionParametersCreateInfoKHR<'a>
19726{
19727}
19728
19729impl<'a> crate::construction::sealed::ChainNode
19730 for vk::VideoEncodeH265SessionParametersGetInfoKHR<'a>
19731{
19732 const S_TYPE: vk::StructureType =
19733 vk::StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR;
19734
19735 fn s_type(&self) -> vk::StructureType {
19736 self.s_type
19737 }
19738
19739 fn p_next(&self) -> *const std::ffi::c_void {
19740 self.p_next
19741 }
19742
19743 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19744 self.p_next = p_next.cast_const();
19745 }
19746
19747 fn address(&mut self) -> *mut std::ffi::c_void {
19748 std::ptr::from_mut(self).cast()
19749 }
19750}
19751
19752impl<'a, 'root> crate::Extends<vk::VideoEncodeSessionParametersGetInfoKHR<'root>>
19753 for vk::VideoEncodeH265SessionParametersGetInfoKHR<'a>
19754{
19755}
19756
19757impl<'a> crate::construction::sealed::ChainNode
19758 for vk::VideoEncodeH265SessionParametersFeedbackInfoKHR<'a>
19759{
19760 const S_TYPE: vk::StructureType =
19761 vk::StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19762
19763 fn s_type(&self) -> vk::StructureType {
19764 self.s_type
19765 }
19766
19767 fn p_next(&self) -> *const std::ffi::c_void {
19768 self.p_next.cast_const()
19769 }
19770
19771 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19772 self.p_next = p_next;
19773 }
19774
19775 fn address(&mut self) -> *mut std::ffi::c_void {
19776 std::ptr::from_mut(self).cast()
19777 }
19778}
19779
19780impl<'a, 'root> crate::Extends<vk::VideoEncodeSessionParametersFeedbackInfoKHR<'root>>
19781 for vk::VideoEncodeH265SessionParametersFeedbackInfoKHR<'a>
19782{
19783}
19784
19785impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265PictureInfoKHR<'a> {
19786 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR;
19787
19788 fn s_type(&self) -> vk::StructureType {
19789 self.s_type
19790 }
19791
19792 fn p_next(&self) -> *const std::ffi::c_void {
19793 self.p_next
19794 }
19795
19796 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19797 self.p_next = p_next.cast_const();
19798 }
19799
19800 fn address(&mut self) -> *mut std::ffi::c_void {
19801 std::ptr::from_mut(self).cast()
19802 }
19803}
19804
19805impl<'a, 'root> crate::Extends<vk::VideoEncodeInfoKHR<'root>>
19806 for vk::VideoEncodeH265PictureInfoKHR<'a>
19807{
19808}
19809
19810impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265NaluSliceSegmentInfoKHR<'a> {
19811 const S_TYPE: vk::StructureType =
19812 vk::StructureType::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR;
19813
19814 fn s_type(&self) -> vk::StructureType {
19815 self.s_type
19816 }
19817
19818 fn p_next(&self) -> *const std::ffi::c_void {
19819 self.p_next
19820 }
19821
19822 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19823 self.p_next = p_next.cast_const();
19824 }
19825
19826 fn address(&mut self) -> *mut std::ffi::c_void {
19827 std::ptr::from_mut(self).cast()
19828 }
19829}
19830
19831impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265RateControlInfoKHR<'a> {
19832 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR;
19833
19834 fn s_type(&self) -> vk::StructureType {
19835 self.s_type
19836 }
19837
19838 fn p_next(&self) -> *const std::ffi::c_void {
19839 self.p_next
19840 }
19841
19842 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19843 self.p_next = p_next.cast_const();
19844 }
19845
19846 fn address(&mut self) -> *mut std::ffi::c_void {
19847 std::ptr::from_mut(self).cast()
19848 }
19849}
19850
19851impl<'a, 'root> crate::Extends<vk::VideoCodingControlInfoKHR<'root>>
19852 for vk::VideoEncodeH265RateControlInfoKHR<'a>
19853{
19854}
19855
19856impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
19857 for vk::VideoEncodeH265RateControlInfoKHR<'a>
19858{
19859}
19860
19861impl<'a> crate::construction::sealed::ChainNode
19862 for vk::VideoEncodeH265GopRemainingFrameInfoKHR<'a>
19863{
19864 const S_TYPE: vk::StructureType =
19865 vk::StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR;
19866
19867 fn s_type(&self) -> vk::StructureType {
19868 self.s_type
19869 }
19870
19871 fn p_next(&self) -> *const std::ffi::c_void {
19872 self.p_next
19873 }
19874
19875 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19876 self.p_next = p_next.cast_const();
19877 }
19878
19879 fn address(&mut self) -> *mut std::ffi::c_void {
19880 std::ptr::from_mut(self).cast()
19881 }
19882}
19883
19884impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
19885 for vk::VideoEncodeH265GopRemainingFrameInfoKHR<'a>
19886{
19887}
19888
19889impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265RateControlLayerInfoKHR<'a> {
19890 const S_TYPE: vk::StructureType =
19891 vk::StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR;
19892
19893 fn s_type(&self) -> vk::StructureType {
19894 self.s_type
19895 }
19896
19897 fn p_next(&self) -> *const std::ffi::c_void {
19898 self.p_next
19899 }
19900
19901 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19902 self.p_next = p_next.cast_const();
19903 }
19904
19905 fn address(&mut self) -> *mut std::ffi::c_void {
19906 std::ptr::from_mut(self).cast()
19907 }
19908}
19909
19910impl<'a, 'root> crate::Extends<vk::VideoEncodeRateControlLayerInfoKHR<'root>>
19911 for vk::VideoEncodeH265RateControlLayerInfoKHR<'a>
19912{
19913}
19914
19915impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265ProfileInfoKHR<'a> {
19916 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR;
19917
19918 fn s_type(&self) -> vk::StructureType {
19919 self.s_type
19920 }
19921
19922 fn p_next(&self) -> *const std::ffi::c_void {
19923 self.p_next
19924 }
19925
19926 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19927 self.p_next = p_next.cast_const();
19928 }
19929
19930 fn address(&mut self) -> *mut std::ffi::c_void {
19931 std::ptr::from_mut(self).cast()
19932 }
19933}
19934
19935impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
19936 for vk::VideoEncodeH265ProfileInfoKHR<'a>
19937{
19938}
19939
19940impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
19941 for vk::VideoEncodeH265ProfileInfoKHR<'a>
19942{
19943}
19944
19945impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeH265DpbSlotInfoKHR<'a> {
19946 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR;
19947
19948 fn s_type(&self) -> vk::StructureType {
19949 self.s_type
19950 }
19951
19952 fn p_next(&self) -> *const std::ffi::c_void {
19953 self.p_next
19954 }
19955
19956 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19957 self.p_next = p_next.cast_const();
19958 }
19959
19960 fn address(&mut self) -> *mut std::ffi::c_void {
19961 std::ptr::from_mut(self).cast()
19962 }
19963}
19964
19965impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
19966 for vk::VideoEncodeH265DpbSlotInfoKHR<'a>
19967{
19968}
19969
19970impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1CapabilitiesKHR<'a> {
19971 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_CAPABILITIES_KHR;
19972
19973 fn s_type(&self) -> vk::StructureType {
19974 self.s_type
19975 }
19976
19977 fn p_next(&self) -> *const std::ffi::c_void {
19978 self.p_next.cast_const()
19979 }
19980
19981 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
19982 self.p_next = p_next;
19983 }
19984
19985 fn address(&mut self) -> *mut std::ffi::c_void {
19986 std::ptr::from_mut(self).cast()
19987 }
19988}
19989
19990impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
19991 for vk::VideoEncodeAV1CapabilitiesKHR<'a>
19992{
19993}
19994
19995impl<'a> crate::construction::sealed::ChainNode
19996 for vk::VideoEncodeAV1QualityLevelPropertiesKHR<'a>
19997{
19998 const S_TYPE: vk::StructureType =
19999 vk::StructureType::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR;
20000
20001 fn s_type(&self) -> vk::StructureType {
20002 self.s_type
20003 }
20004
20005 fn p_next(&self) -> *const std::ffi::c_void {
20006 self.p_next.cast_const()
20007 }
20008
20009 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20010 self.p_next = p_next;
20011 }
20012
20013 fn address(&mut self) -> *mut std::ffi::c_void {
20014 std::ptr::from_mut(self).cast()
20015 }
20016}
20017
20018impl<'a, 'root> crate::Extends<vk::VideoEncodeQualityLevelPropertiesKHR<'root>>
20019 for vk::VideoEncodeAV1QualityLevelPropertiesKHR<'a>
20020{
20021}
20022
20023impl<'a> crate::construction::sealed::ChainNode
20024 for vk::PhysicalDeviceVideoEncodeAV1FeaturesKHR<'a>
20025{
20026 const S_TYPE: vk::StructureType =
20027 vk::StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR;
20028
20029 fn s_type(&self) -> vk::StructureType {
20030 self.s_type
20031 }
20032
20033 fn p_next(&self) -> *const std::ffi::c_void {
20034 self.p_next.cast_const()
20035 }
20036
20037 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20038 self.p_next = p_next;
20039 }
20040
20041 fn address(&mut self) -> *mut std::ffi::c_void {
20042 std::ptr::from_mut(self).cast()
20043 }
20044}
20045
20046impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
20047 for vk::PhysicalDeviceVideoEncodeAV1FeaturesKHR<'a>
20048{
20049}
20050
20051impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
20052 for vk::PhysicalDeviceVideoEncodeAV1FeaturesKHR<'a>
20053{
20054}
20055
20056impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1SessionCreateInfoKHR<'a> {
20057 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR;
20058
20059 fn s_type(&self) -> vk::StructureType {
20060 self.s_type
20061 }
20062
20063 fn p_next(&self) -> *const std::ffi::c_void {
20064 self.p_next
20065 }
20066
20067 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20068 self.p_next = p_next.cast_const();
20069 }
20070
20071 fn address(&mut self) -> *mut std::ffi::c_void {
20072 std::ptr::from_mut(self).cast()
20073 }
20074}
20075
20076impl<'a, 'root> crate::Extends<vk::VideoSessionCreateInfoKHR<'root>>
20077 for vk::VideoEncodeAV1SessionCreateInfoKHR<'a>
20078{
20079}
20080
20081impl<'a> crate::construction::sealed::ChainNode
20082 for vk::VideoEncodeAV1SessionParametersCreateInfoKHR<'a>
20083{
20084 const S_TYPE: vk::StructureType =
20085 vk::StructureType::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR;
20086
20087 fn s_type(&self) -> vk::StructureType {
20088 self.s_type
20089 }
20090
20091 fn p_next(&self) -> *const std::ffi::c_void {
20092 self.p_next
20093 }
20094
20095 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20096 self.p_next = p_next.cast_const();
20097 }
20098
20099 fn address(&mut self) -> *mut std::ffi::c_void {
20100 std::ptr::from_mut(self).cast()
20101 }
20102}
20103
20104impl<'a, 'root> crate::Extends<vk::VideoSessionParametersCreateInfoKHR<'root>>
20105 for vk::VideoEncodeAV1SessionParametersCreateInfoKHR<'a>
20106{
20107}
20108
20109impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1DpbSlotInfoKHR<'a> {
20110 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR;
20111
20112 fn s_type(&self) -> vk::StructureType {
20113 self.s_type
20114 }
20115
20116 fn p_next(&self) -> *const std::ffi::c_void {
20117 self.p_next
20118 }
20119
20120 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20121 self.p_next = p_next.cast_const();
20122 }
20123
20124 fn address(&mut self) -> *mut std::ffi::c_void {
20125 std::ptr::from_mut(self).cast()
20126 }
20127}
20128
20129impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
20130 for vk::VideoEncodeAV1DpbSlotInfoKHR<'a>
20131{
20132}
20133
20134impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1PictureInfoKHR<'a> {
20135 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR;
20136
20137 fn s_type(&self) -> vk::StructureType {
20138 self.s_type
20139 }
20140
20141 fn p_next(&self) -> *const std::ffi::c_void {
20142 self.p_next
20143 }
20144
20145 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20146 self.p_next = p_next.cast_const();
20147 }
20148
20149 fn address(&mut self) -> *mut std::ffi::c_void {
20150 std::ptr::from_mut(self).cast()
20151 }
20152}
20153
20154impl<'a, 'root> crate::Extends<vk::VideoEncodeInfoKHR<'root>>
20155 for vk::VideoEncodeAV1PictureInfoKHR<'a>
20156{
20157}
20158
20159impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1ProfileInfoKHR<'a> {
20160 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR;
20161
20162 fn s_type(&self) -> vk::StructureType {
20163 self.s_type
20164 }
20165
20166 fn p_next(&self) -> *const std::ffi::c_void {
20167 self.p_next
20168 }
20169
20170 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20171 self.p_next = p_next.cast_const();
20172 }
20173
20174 fn address(&mut self) -> *mut std::ffi::c_void {
20175 std::ptr::from_mut(self).cast()
20176 }
20177}
20178
20179impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
20180 for vk::VideoEncodeAV1ProfileInfoKHR<'a>
20181{
20182}
20183
20184impl<'a, 'root> crate::Extends<vk::QueryPoolCreateInfo<'root>>
20185 for vk::VideoEncodeAV1ProfileInfoKHR<'a>
20186{
20187}
20188
20189impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1RateControlInfoKHR<'a> {
20190 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR;
20191
20192 fn s_type(&self) -> vk::StructureType {
20193 self.s_type
20194 }
20195
20196 fn p_next(&self) -> *const std::ffi::c_void {
20197 self.p_next
20198 }
20199
20200 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20201 self.p_next = p_next.cast_const();
20202 }
20203
20204 fn address(&mut self) -> *mut std::ffi::c_void {
20205 std::ptr::from_mut(self).cast()
20206 }
20207}
20208
20209impl<'a, 'root> crate::Extends<vk::VideoCodingControlInfoKHR<'root>>
20210 for vk::VideoEncodeAV1RateControlInfoKHR<'a>
20211{
20212}
20213
20214impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
20215 for vk::VideoEncodeAV1RateControlInfoKHR<'a>
20216{
20217}
20218
20219impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1GopRemainingFrameInfoKHR<'a> {
20220 const S_TYPE: vk::StructureType =
20221 vk::StructureType::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR;
20222
20223 fn s_type(&self) -> vk::StructureType {
20224 self.s_type
20225 }
20226
20227 fn p_next(&self) -> *const std::ffi::c_void {
20228 self.p_next
20229 }
20230
20231 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20232 self.p_next = p_next.cast_const();
20233 }
20234
20235 fn address(&mut self) -> *mut std::ffi::c_void {
20236 std::ptr::from_mut(self).cast()
20237 }
20238}
20239
20240impl<'a, 'root> crate::Extends<vk::VideoBeginCodingInfoKHR<'root>>
20241 for vk::VideoEncodeAV1GopRemainingFrameInfoKHR<'a>
20242{
20243}
20244
20245impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeAV1RateControlLayerInfoKHR<'a> {
20246 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR;
20247
20248 fn s_type(&self) -> vk::StructureType {
20249 self.s_type
20250 }
20251
20252 fn p_next(&self) -> *const std::ffi::c_void {
20253 self.p_next
20254 }
20255
20256 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20257 self.p_next = p_next.cast_const();
20258 }
20259
20260 fn address(&mut self) -> *mut std::ffi::c_void {
20261 std::ptr::from_mut(self).cast()
20262 }
20263}
20264
20265impl<'a, 'root> crate::Extends<vk::VideoEncodeRateControlLayerInfoKHR<'root>>
20266 for vk::VideoEncodeAV1RateControlLayerInfoKHR<'a>
20267{
20268}
20269
20270impl<'a> crate::construction::sealed::ChainNode
20271 for vk::PhysicalDeviceInheritedViewportScissorFeaturesNV<'a>
20272{
20273 const S_TYPE: vk::StructureType =
20274 vk::StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
20275
20276 fn s_type(&self) -> vk::StructureType {
20277 self.s_type
20278 }
20279
20280 fn p_next(&self) -> *const std::ffi::c_void {
20281 self.p_next.cast_const()
20282 }
20283
20284 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20285 self.p_next = p_next;
20286 }
20287
20288 fn address(&mut self) -> *mut std::ffi::c_void {
20289 std::ptr::from_mut(self).cast()
20290 }
20291}
20292
20293impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
20294 for vk::PhysicalDeviceInheritedViewportScissorFeaturesNV<'a>
20295{
20296}
20297
20298impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
20299 for vk::PhysicalDeviceInheritedViewportScissorFeaturesNV<'a>
20300{
20301}
20302
20303impl<'a> crate::construction::sealed::ChainNode
20304 for vk::CommandBufferInheritanceViewportScissorInfoNV<'a>
20305{
20306 const S_TYPE: vk::StructureType =
20307 vk::StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
20308
20309 fn s_type(&self) -> vk::StructureType {
20310 self.s_type
20311 }
20312
20313 fn p_next(&self) -> *const std::ffi::c_void {
20314 self.p_next
20315 }
20316
20317 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20318 self.p_next = p_next.cast_const();
20319 }
20320
20321 fn address(&mut self) -> *mut std::ffi::c_void {
20322 std::ptr::from_mut(self).cast()
20323 }
20324}
20325
20326impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
20327 for vk::CommandBufferInheritanceViewportScissorInfoNV<'a>
20328{
20329}
20330
20331impl<'a> crate::construction::sealed::ChainNode
20332 for vk::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a>
20333{
20334 const S_TYPE: vk::StructureType =
20335 vk::StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
20336
20337 fn s_type(&self) -> vk::StructureType {
20338 self.s_type
20339 }
20340
20341 fn p_next(&self) -> *const std::ffi::c_void {
20342 self.p_next.cast_const()
20343 }
20344
20345 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20346 self.p_next = p_next;
20347 }
20348
20349 fn address(&mut self) -> *mut std::ffi::c_void {
20350 std::ptr::from_mut(self).cast()
20351 }
20352}
20353
20354impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
20355 for vk::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a>
20356{
20357}
20358
20359impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
20360 for vk::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT<'a>
20361{
20362}
20363
20364impl<'a> crate::construction::sealed::ChainNode
20365 for vk::PhysicalDeviceProvokingVertexFeaturesEXT<'a>
20366{
20367 const S_TYPE: vk::StructureType =
20368 vk::StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
20369
20370 fn s_type(&self) -> vk::StructureType {
20371 self.s_type
20372 }
20373
20374 fn p_next(&self) -> *const std::ffi::c_void {
20375 self.p_next.cast_const()
20376 }
20377
20378 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20379 self.p_next = p_next;
20380 }
20381
20382 fn address(&mut self) -> *mut std::ffi::c_void {
20383 std::ptr::from_mut(self).cast()
20384 }
20385}
20386
20387impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
20388 for vk::PhysicalDeviceProvokingVertexFeaturesEXT<'a>
20389{
20390}
20391
20392impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
20393 for vk::PhysicalDeviceProvokingVertexFeaturesEXT<'a>
20394{
20395}
20396
20397impl<'a> crate::construction::sealed::ChainNode
20398 for vk::PhysicalDeviceProvokingVertexPropertiesEXT<'a>
20399{
20400 const S_TYPE: vk::StructureType =
20401 vk::StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
20402
20403 fn s_type(&self) -> vk::StructureType {
20404 self.s_type
20405 }
20406
20407 fn p_next(&self) -> *const std::ffi::c_void {
20408 self.p_next.cast_const()
20409 }
20410
20411 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20412 self.p_next = p_next;
20413 }
20414
20415 fn address(&mut self) -> *mut std::ffi::c_void {
20416 std::ptr::from_mut(self).cast()
20417 }
20418}
20419
20420impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
20421 for vk::PhysicalDeviceProvokingVertexPropertiesEXT<'a>
20422{
20423}
20424
20425impl<'a> crate::construction::sealed::ChainNode
20426 for vk::PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a>
20427{
20428 const S_TYPE: vk::StructureType =
20429 vk::StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
20430
20431 fn s_type(&self) -> vk::StructureType {
20432 self.s_type
20433 }
20434
20435 fn p_next(&self) -> *const std::ffi::c_void {
20436 self.p_next
20437 }
20438
20439 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20440 self.p_next = p_next.cast_const();
20441 }
20442
20443 fn address(&mut self) -> *mut std::ffi::c_void {
20444 std::ptr::from_mut(self).cast()
20445 }
20446}
20447
20448impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
20449 for vk::PipelineRasterizationProvokingVertexStateCreateInfoEXT<'a>
20450{
20451}
20452
20453impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeIntraRefreshCapabilitiesKHR<'a> {
20454 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR;
20455
20456 fn s_type(&self) -> vk::StructureType {
20457 self.s_type
20458 }
20459
20460 fn p_next(&self) -> *const std::ffi::c_void {
20461 self.p_next.cast_const()
20462 }
20463
20464 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20465 self.p_next = p_next;
20466 }
20467
20468 fn address(&mut self) -> *mut std::ffi::c_void {
20469 std::ptr::from_mut(self).cast()
20470 }
20471}
20472
20473impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
20474 for vk::VideoEncodeIntraRefreshCapabilitiesKHR<'a>
20475{
20476}
20477
20478impl<'a> crate::construction::sealed::ChainNode
20479 for vk::VideoEncodeSessionIntraRefreshCreateInfoKHR<'a>
20480{
20481 const S_TYPE: vk::StructureType =
20482 vk::StructureType::VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR;
20483
20484 fn s_type(&self) -> vk::StructureType {
20485 self.s_type
20486 }
20487
20488 fn p_next(&self) -> *const std::ffi::c_void {
20489 self.p_next
20490 }
20491
20492 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20493 self.p_next = p_next.cast_const();
20494 }
20495
20496 fn address(&mut self) -> *mut std::ffi::c_void {
20497 std::ptr::from_mut(self).cast()
20498 }
20499}
20500
20501impl<'a, 'root> crate::Extends<vk::VideoSessionCreateInfoKHR<'root>>
20502 for vk::VideoEncodeSessionIntraRefreshCreateInfoKHR<'a>
20503{
20504}
20505
20506impl<'a> crate::construction::sealed::ChainNode for vk::VideoEncodeIntraRefreshInfoKHR<'a> {
20507 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR;
20508
20509 fn s_type(&self) -> vk::StructureType {
20510 self.s_type
20511 }
20512
20513 fn p_next(&self) -> *const std::ffi::c_void {
20514 self.p_next
20515 }
20516
20517 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20518 self.p_next = p_next.cast_const();
20519 }
20520
20521 fn address(&mut self) -> *mut std::ffi::c_void {
20522 std::ptr::from_mut(self).cast()
20523 }
20524}
20525
20526impl<'a, 'root> crate::Extends<vk::VideoEncodeInfoKHR<'root>>
20527 for vk::VideoEncodeIntraRefreshInfoKHR<'a>
20528{
20529}
20530
20531impl<'a> crate::construction::sealed::ChainNode for vk::VideoReferenceIntraRefreshInfoKHR<'a> {
20532 const S_TYPE: vk::StructureType = vk::StructureType::VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR;
20533
20534 fn s_type(&self) -> vk::StructureType {
20535 self.s_type
20536 }
20537
20538 fn p_next(&self) -> *const std::ffi::c_void {
20539 self.p_next
20540 }
20541
20542 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20543 self.p_next = p_next.cast_const();
20544 }
20545
20546 fn address(&mut self) -> *mut std::ffi::c_void {
20547 std::ptr::from_mut(self).cast()
20548 }
20549}
20550
20551impl<'a, 'root> crate::Extends<vk::VideoReferenceSlotInfoKHR<'root>>
20552 for vk::VideoReferenceIntraRefreshInfoKHR<'a>
20553{
20554}
20555
20556impl<'a> crate::construction::sealed::ChainNode
20557 for vk::PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'a>
20558{
20559 const S_TYPE: vk::StructureType =
20560 vk::StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR;
20561
20562 fn s_type(&self) -> vk::StructureType {
20563 self.s_type
20564 }
20565
20566 fn p_next(&self) -> *const std::ffi::c_void {
20567 self.p_next.cast_const()
20568 }
20569
20570 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20571 self.p_next = p_next;
20572 }
20573
20574 fn address(&mut self) -> *mut std::ffi::c_void {
20575 std::ptr::from_mut(self).cast()
20576 }
20577}
20578
20579impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
20580 for vk::PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'a>
20581{
20582}
20583
20584impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
20585 for vk::PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR<'a>
20586{
20587}
20588
20589impl<'a> crate::construction::sealed::ChainNode for vk::CuModuleCreateInfoNVX<'a> {
20590 const S_TYPE: vk::StructureType = vk::StructureType::CU_MODULE_CREATE_INFO_NVX;
20591
20592 fn s_type(&self) -> vk::StructureType {
20593 self.s_type
20594 }
20595
20596 fn p_next(&self) -> *const std::ffi::c_void {
20597 self.p_next
20598 }
20599
20600 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20601 self.p_next = p_next.cast_const();
20602 }
20603
20604 fn address(&mut self) -> *mut std::ffi::c_void {
20605 std::ptr::from_mut(self).cast()
20606 }
20607}
20608
20609impl<'a> crate::construction::sealed::ChainNode for vk::CuModuleTexturingModeCreateInfoNVX<'a> {
20610 const S_TYPE: vk::StructureType = vk::StructureType::CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX;
20611
20612 fn s_type(&self) -> vk::StructureType {
20613 self.s_type
20614 }
20615
20616 fn p_next(&self) -> *const std::ffi::c_void {
20617 self.p_next
20618 }
20619
20620 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20621 self.p_next = p_next.cast_const();
20622 }
20623
20624 fn address(&mut self) -> *mut std::ffi::c_void {
20625 std::ptr::from_mut(self).cast()
20626 }
20627}
20628
20629impl<'a, 'root> crate::Extends<vk::CuModuleCreateInfoNVX<'root>>
20630 for vk::CuModuleTexturingModeCreateInfoNVX<'a>
20631{
20632}
20633
20634impl<'a> crate::construction::sealed::ChainNode for vk::CuFunctionCreateInfoNVX<'a> {
20635 const S_TYPE: vk::StructureType = vk::StructureType::CU_FUNCTION_CREATE_INFO_NVX;
20636
20637 fn s_type(&self) -> vk::StructureType {
20638 self.s_type
20639 }
20640
20641 fn p_next(&self) -> *const std::ffi::c_void {
20642 self.p_next
20643 }
20644
20645 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20646 self.p_next = p_next.cast_const();
20647 }
20648
20649 fn address(&mut self) -> *mut std::ffi::c_void {
20650 std::ptr::from_mut(self).cast()
20651 }
20652}
20653
20654impl<'a> crate::construction::sealed::ChainNode for vk::CuLaunchInfoNVX<'a> {
20655 const S_TYPE: vk::StructureType = vk::StructureType::CU_LAUNCH_INFO_NVX;
20656
20657 fn s_type(&self) -> vk::StructureType {
20658 self.s_type
20659 }
20660
20661 fn p_next(&self) -> *const std::ffi::c_void {
20662 self.p_next
20663 }
20664
20665 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20666 self.p_next = p_next.cast_const();
20667 }
20668
20669 fn address(&mut self) -> *mut std::ffi::c_void {
20670 std::ptr::from_mut(self).cast()
20671 }
20672}
20673
20674impl<'a> crate::construction::sealed::ChainNode
20675 for vk::PhysicalDeviceDescriptorBufferFeaturesEXT<'a>
20676{
20677 const S_TYPE: vk::StructureType =
20678 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT;
20679
20680 fn s_type(&self) -> vk::StructureType {
20681 self.s_type
20682 }
20683
20684 fn p_next(&self) -> *const std::ffi::c_void {
20685 self.p_next.cast_const()
20686 }
20687
20688 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20689 self.p_next = p_next;
20690 }
20691
20692 fn address(&mut self) -> *mut std::ffi::c_void {
20693 std::ptr::from_mut(self).cast()
20694 }
20695}
20696
20697impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
20698 for vk::PhysicalDeviceDescriptorBufferFeaturesEXT<'a>
20699{
20700}
20701
20702impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
20703 for vk::PhysicalDeviceDescriptorBufferFeaturesEXT<'a>
20704{
20705}
20706
20707impl<'a> crate::construction::sealed::ChainNode
20708 for vk::PhysicalDeviceDescriptorBufferPropertiesEXT<'a>
20709{
20710 const S_TYPE: vk::StructureType =
20711 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT;
20712
20713 fn s_type(&self) -> vk::StructureType {
20714 self.s_type
20715 }
20716
20717 fn p_next(&self) -> *const std::ffi::c_void {
20718 self.p_next.cast_const()
20719 }
20720
20721 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20722 self.p_next = p_next;
20723 }
20724
20725 fn address(&mut self) -> *mut std::ffi::c_void {
20726 std::ptr::from_mut(self).cast()
20727 }
20728}
20729
20730impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
20731 for vk::PhysicalDeviceDescriptorBufferPropertiesEXT<'a>
20732{
20733}
20734
20735impl<'a> crate::construction::sealed::ChainNode
20736 for vk::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a>
20737{
20738 const S_TYPE: vk::StructureType =
20739 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT;
20740
20741 fn s_type(&self) -> vk::StructureType {
20742 self.s_type
20743 }
20744
20745 fn p_next(&self) -> *const std::ffi::c_void {
20746 self.p_next.cast_const()
20747 }
20748
20749 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20750 self.p_next = p_next;
20751 }
20752
20753 fn address(&mut self) -> *mut std::ffi::c_void {
20754 std::ptr::from_mut(self).cast()
20755 }
20756}
20757
20758impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
20759 for vk::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT<'a>
20760{
20761}
20762
20763impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorAddressInfoEXT<'a> {
20764 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_ADDRESS_INFO_EXT;
20765
20766 fn s_type(&self) -> vk::StructureType {
20767 self.s_type
20768 }
20769
20770 fn p_next(&self) -> *const std::ffi::c_void {
20771 self.p_next.cast_const()
20772 }
20773
20774 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20775 self.p_next = p_next;
20776 }
20777
20778 fn address(&mut self) -> *mut std::ffi::c_void {
20779 std::ptr::from_mut(self).cast()
20780 }
20781}
20782
20783impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorBufferBindingInfoEXT<'a> {
20784 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT;
20785
20786 fn s_type(&self) -> vk::StructureType {
20787 self.s_type
20788 }
20789
20790 fn p_next(&self) -> *const std::ffi::c_void {
20791 self.p_next
20792 }
20793
20794 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20795 self.p_next = p_next.cast_const();
20796 }
20797
20798 fn address(&mut self) -> *mut std::ffi::c_void {
20799 std::ptr::from_mut(self).cast()
20800 }
20801}
20802
20803impl<'a> crate::construction::sealed::ChainNode
20804 for vk::DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a>
20805{
20806 const S_TYPE: vk::StructureType =
20807 vk::StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT;
20808
20809 fn s_type(&self) -> vk::StructureType {
20810 self.s_type
20811 }
20812
20813 fn p_next(&self) -> *const std::ffi::c_void {
20814 self.p_next
20815 }
20816
20817 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20818 self.p_next = p_next.cast_const();
20819 }
20820
20821 fn address(&mut self) -> *mut std::ffi::c_void {
20822 std::ptr::from_mut(self).cast()
20823 }
20824}
20825
20826impl<'a, 'root> crate::Extends<vk::DescriptorBufferBindingInfoEXT<'root>>
20827 for vk::DescriptorBufferBindingPushDescriptorBufferHandleEXT<'a>
20828{
20829}
20830
20831impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorGetInfoEXT<'a> {
20832 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_GET_INFO_EXT;
20833
20834 fn s_type(&self) -> vk::StructureType {
20835 self.s_type
20836 }
20837
20838 fn p_next(&self) -> *const std::ffi::c_void {
20839 self.p_next
20840 }
20841
20842 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20843 self.p_next = p_next.cast_const();
20844 }
20845
20846 fn address(&mut self) -> *mut std::ffi::c_void {
20847 std::ptr::from_mut(self).cast()
20848 }
20849}
20850
20851impl<'a> crate::construction::sealed::ChainNode for vk::BufferCaptureDescriptorDataInfoEXT<'a> {
20852 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
20853
20854 fn s_type(&self) -> vk::StructureType {
20855 self.s_type
20856 }
20857
20858 fn p_next(&self) -> *const std::ffi::c_void {
20859 self.p_next
20860 }
20861
20862 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20863 self.p_next = p_next.cast_const();
20864 }
20865
20866 fn address(&mut self) -> *mut std::ffi::c_void {
20867 std::ptr::from_mut(self).cast()
20868 }
20869}
20870
20871impl<'a> crate::construction::sealed::ChainNode for vk::ImageCaptureDescriptorDataInfoEXT<'a> {
20872 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
20873
20874 fn s_type(&self) -> vk::StructureType {
20875 self.s_type
20876 }
20877
20878 fn p_next(&self) -> *const std::ffi::c_void {
20879 self.p_next
20880 }
20881
20882 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20883 self.p_next = p_next.cast_const();
20884 }
20885
20886 fn address(&mut self) -> *mut std::ffi::c_void {
20887 std::ptr::from_mut(self).cast()
20888 }
20889}
20890
20891impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewCaptureDescriptorDataInfoEXT<'a> {
20892 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
20893
20894 fn s_type(&self) -> vk::StructureType {
20895 self.s_type
20896 }
20897
20898 fn p_next(&self) -> *const std::ffi::c_void {
20899 self.p_next
20900 }
20901
20902 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20903 self.p_next = p_next.cast_const();
20904 }
20905
20906 fn address(&mut self) -> *mut std::ffi::c_void {
20907 std::ptr::from_mut(self).cast()
20908 }
20909}
20910
20911impl<'a> crate::construction::sealed::ChainNode for vk::SamplerCaptureDescriptorDataInfoEXT<'a> {
20912 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
20913
20914 fn s_type(&self) -> vk::StructureType {
20915 self.s_type
20916 }
20917
20918 fn p_next(&self) -> *const std::ffi::c_void {
20919 self.p_next
20920 }
20921
20922 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20923 self.p_next = p_next.cast_const();
20924 }
20925
20926 fn address(&mut self) -> *mut std::ffi::c_void {
20927 std::ptr::from_mut(self).cast()
20928 }
20929}
20930
20931impl<'a> crate::construction::sealed::ChainNode
20932 for vk::AccelerationStructureCaptureDescriptorDataInfoEXT<'a>
20933{
20934 const S_TYPE: vk::StructureType =
20935 vk::StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
20936
20937 fn s_type(&self) -> vk::StructureType {
20938 self.s_type
20939 }
20940
20941 fn p_next(&self) -> *const std::ffi::c_void {
20942 self.p_next
20943 }
20944
20945 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20946 self.p_next = p_next.cast_const();
20947 }
20948
20949 fn address(&mut self) -> *mut std::ffi::c_void {
20950 std::ptr::from_mut(self).cast()
20951 }
20952}
20953
20954impl<'a> crate::construction::sealed::ChainNode
20955 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
20956{
20957 const S_TYPE: vk::StructureType =
20958 vk::StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT;
20959
20960 fn s_type(&self) -> vk::StructureType {
20961 self.s_type
20962 }
20963
20964 fn p_next(&self) -> *const std::ffi::c_void {
20965 self.p_next
20966 }
20967
20968 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
20969 self.p_next = p_next.cast_const();
20970 }
20971
20972 fn address(&mut self) -> *mut std::ffi::c_void {
20973 std::ptr::from_mut(self).cast()
20974 }
20975}
20976
20977impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
20978 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
20979{
20980}
20981
20982impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
20983 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
20984{
20985}
20986
20987impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
20988 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
20989{
20990}
20991
20992impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
20993 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
20994{
20995}
20996
20997impl<'a, 'root> crate::Extends<vk::AccelerationStructureCreateInfoKHR<'root>>
20998 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
20999{
21000}
21001
21002impl<'a, 'root> crate::Extends<vk::AccelerationStructureCreateInfoNV<'root>>
21003 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
21004{
21005}
21006
21007impl<'a, 'root> crate::Extends<vk::TensorCreateInfoARM<'root>>
21008 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
21009{
21010}
21011
21012impl<'a, 'root> crate::Extends<vk::TensorViewCreateInfoARM<'root>>
21013 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
21014{
21015}
21016
21017impl<'a, 'root> crate::Extends<vk::AccelerationStructureCreateInfo2KHR<'root>>
21018 for vk::OpaqueCaptureDescriptorDataCreateInfoEXT<'a>
21019{
21020}
21021
21022impl<'a> crate::construction::sealed::ChainNode
21023 for vk::PhysicalDeviceShaderIntegerDotProductFeatures<'a>
21024{
21025 const S_TYPE: vk::StructureType =
21026 vk::StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
21027
21028 fn s_type(&self) -> vk::StructureType {
21029 self.s_type
21030 }
21031
21032 fn p_next(&self) -> *const std::ffi::c_void {
21033 self.p_next.cast_const()
21034 }
21035
21036 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21037 self.p_next = p_next;
21038 }
21039
21040 fn address(&mut self) -> *mut std::ffi::c_void {
21041 std::ptr::from_mut(self).cast()
21042 }
21043}
21044
21045impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21046 for vk::PhysicalDeviceShaderIntegerDotProductFeatures<'a>
21047{
21048}
21049
21050impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21051 for vk::PhysicalDeviceShaderIntegerDotProductFeatures<'a>
21052{
21053}
21054
21055impl<'a> crate::construction::sealed::ChainNode
21056 for vk::PhysicalDeviceShaderIntegerDotProductProperties<'a>
21057{
21058 const S_TYPE: vk::StructureType =
21059 vk::StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
21060
21061 fn s_type(&self) -> vk::StructureType {
21062 self.s_type
21063 }
21064
21065 fn p_next(&self) -> *const std::ffi::c_void {
21066 self.p_next.cast_const()
21067 }
21068
21069 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21070 self.p_next = p_next;
21071 }
21072
21073 fn address(&mut self) -> *mut std::ffi::c_void {
21074 std::ptr::from_mut(self).cast()
21075 }
21076}
21077
21078impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
21079 for vk::PhysicalDeviceShaderIntegerDotProductProperties<'a>
21080{
21081}
21082
21083impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceDrmPropertiesEXT<'a> {
21084 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
21085
21086 fn s_type(&self) -> vk::StructureType {
21087 self.s_type
21088 }
21089
21090 fn p_next(&self) -> *const std::ffi::c_void {
21091 self.p_next.cast_const()
21092 }
21093
21094 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21095 self.p_next = p_next;
21096 }
21097
21098 fn address(&mut self) -> *mut std::ffi::c_void {
21099 std::ptr::from_mut(self).cast()
21100 }
21101}
21102
21103impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
21104 for vk::PhysicalDeviceDrmPropertiesEXT<'a>
21105{
21106}
21107
21108impl<'a> crate::construction::sealed::ChainNode
21109 for vk::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a>
21110{
21111 const S_TYPE: vk::StructureType =
21112 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
21113
21114 fn s_type(&self) -> vk::StructureType {
21115 self.s_type
21116 }
21117
21118 fn p_next(&self) -> *const std::ffi::c_void {
21119 self.p_next.cast_const()
21120 }
21121
21122 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21123 self.p_next = p_next;
21124 }
21125
21126 fn address(&mut self) -> *mut std::ffi::c_void {
21127 std::ptr::from_mut(self).cast()
21128 }
21129}
21130
21131impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21132 for vk::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a>
21133{
21134}
21135
21136impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21137 for vk::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR<'a>
21138{
21139}
21140
21141impl<'a> crate::construction::sealed::ChainNode
21142 for vk::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a>
21143{
21144 const S_TYPE: vk::StructureType =
21145 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR;
21146
21147 fn s_type(&self) -> vk::StructureType {
21148 self.s_type
21149 }
21150
21151 fn p_next(&self) -> *const std::ffi::c_void {
21152 self.p_next.cast_const()
21153 }
21154
21155 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21156 self.p_next = p_next;
21157 }
21158
21159 fn address(&mut self) -> *mut std::ffi::c_void {
21160 std::ptr::from_mut(self).cast()
21161 }
21162}
21163
21164impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
21165 for vk::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR<'a>
21166{
21167}
21168
21169impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderFmaFeaturesKHR<'a> {
21170 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR;
21171
21172 fn s_type(&self) -> vk::StructureType {
21173 self.s_type
21174 }
21175
21176 fn p_next(&self) -> *const std::ffi::c_void {
21177 self.p_next.cast_const()
21178 }
21179
21180 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21181 self.p_next = p_next;
21182 }
21183
21184 fn address(&mut self) -> *mut std::ffi::c_void {
21185 std::ptr::from_mut(self).cast()
21186 }
21187}
21188
21189impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21190 for vk::PhysicalDeviceShaderFmaFeaturesKHR<'a>
21191{
21192}
21193
21194impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21195 for vk::PhysicalDeviceShaderFmaFeaturesKHR<'a>
21196{
21197}
21198
21199impl<'a> crate::construction::sealed::ChainNode
21200 for vk::PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a>
21201{
21202 const S_TYPE: vk::StructureType =
21203 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
21204
21205 fn s_type(&self) -> vk::StructureType {
21206 self.s_type
21207 }
21208
21209 fn p_next(&self) -> *const std::ffi::c_void {
21210 self.p_next.cast_const()
21211 }
21212
21213 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21214 self.p_next = p_next;
21215 }
21216
21217 fn address(&mut self) -> *mut std::ffi::c_void {
21218 std::ptr::from_mut(self).cast()
21219 }
21220}
21221
21222impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21223 for vk::PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a>
21224{
21225}
21226
21227impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21228 for vk::PhysicalDeviceRayTracingMotionBlurFeaturesNV<'a>
21229{
21230}
21231
21232impl<'a> crate::construction::sealed::ChainNode
21233 for vk::PhysicalDeviceRayTracingValidationFeaturesNV<'a>
21234{
21235 const S_TYPE: vk::StructureType =
21236 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV;
21237
21238 fn s_type(&self) -> vk::StructureType {
21239 self.s_type
21240 }
21241
21242 fn p_next(&self) -> *const std::ffi::c_void {
21243 self.p_next.cast_const()
21244 }
21245
21246 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21247 self.p_next = p_next;
21248 }
21249
21250 fn address(&mut self) -> *mut std::ffi::c_void {
21251 std::ptr::from_mut(self).cast()
21252 }
21253}
21254
21255impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21256 for vk::PhysicalDeviceRayTracingValidationFeaturesNV<'a>
21257{
21258}
21259
21260impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21261 for vk::PhysicalDeviceRayTracingValidationFeaturesNV<'a>
21262{
21263}
21264
21265impl<'a> crate::construction::sealed::ChainNode
21266 for vk::PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'a>
21267{
21268 const S_TYPE: vk::StructureType =
21269 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV;
21270
21271 fn s_type(&self) -> vk::StructureType {
21272 self.s_type
21273 }
21274
21275 fn p_next(&self) -> *const std::ffi::c_void {
21276 self.p_next.cast_const()
21277 }
21278
21279 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21280 self.p_next = p_next;
21281 }
21282
21283 fn address(&mut self) -> *mut std::ffi::c_void {
21284 std::ptr::from_mut(self).cast()
21285 }
21286}
21287
21288impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21289 for vk::PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'a>
21290{
21291}
21292
21293impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21294 for vk::PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV<'a>
21295{
21296}
21297
21298impl<'a> crate::construction::sealed::ChainNode
21299 for vk::AccelerationStructureGeometryMotionTrianglesDataNV<'a>
21300{
21301 const S_TYPE: vk::StructureType =
21302 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV;
21303
21304 fn s_type(&self) -> vk::StructureType {
21305 self.s_type
21306 }
21307
21308 fn p_next(&self) -> *const std::ffi::c_void {
21309 self.p_next
21310 }
21311
21312 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21313 self.p_next = p_next.cast_const();
21314 }
21315
21316 fn address(&mut self) -> *mut std::ffi::c_void {
21317 std::ptr::from_mut(self).cast()
21318 }
21319}
21320
21321impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryTrianglesDataKHR<'root>>
21322 for vk::AccelerationStructureGeometryMotionTrianglesDataNV<'a>
21323{
21324}
21325
21326impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureMotionInfoNV<'a> {
21327 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV;
21328
21329 fn s_type(&self) -> vk::StructureType {
21330 self.s_type
21331 }
21332
21333 fn p_next(&self) -> *const std::ffi::c_void {
21334 self.p_next
21335 }
21336
21337 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21338 self.p_next = p_next.cast_const();
21339 }
21340
21341 fn address(&mut self) -> *mut std::ffi::c_void {
21342 std::ptr::from_mut(self).cast()
21343 }
21344}
21345
21346impl<'a, 'root> crate::Extends<vk::AccelerationStructureCreateInfoKHR<'root>>
21347 for vk::AccelerationStructureMotionInfoNV<'a>
21348{
21349}
21350
21351impl<'a> crate::construction::sealed::ChainNode for vk::MemoryGetRemoteAddressInfoNV<'a> {
21352 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
21353
21354 fn s_type(&self) -> vk::StructureType {
21355 self.s_type
21356 }
21357
21358 fn p_next(&self) -> *const std::ffi::c_void {
21359 self.p_next
21360 }
21361
21362 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21363 self.p_next = p_next.cast_const();
21364 }
21365
21366 fn address(&mut self) -> *mut std::ffi::c_void {
21367 std::ptr::from_mut(self).cast()
21368 }
21369}
21370
21371#[cfg(feature = "platform-fuchsia")]
21372impl<'a> crate::construction::sealed::ChainNode for vk::ImportMemoryBufferCollectionFUCHSIA<'a> {
21373 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA;
21374
21375 fn s_type(&self) -> vk::StructureType {
21376 self.s_type
21377 }
21378
21379 fn p_next(&self) -> *const std::ffi::c_void {
21380 self.p_next
21381 }
21382
21383 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21384 self.p_next = p_next.cast_const();
21385 }
21386
21387 fn address(&mut self) -> *mut std::ffi::c_void {
21388 std::ptr::from_mut(self).cast()
21389 }
21390}
21391
21392#[cfg(feature = "platform-fuchsia")]
21393impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
21394 for vk::ImportMemoryBufferCollectionFUCHSIA<'a>
21395{
21396}
21397
21398#[cfg(feature = "platform-fuchsia")]
21399impl<'a> crate::construction::sealed::ChainNode for vk::BufferCollectionImageCreateInfoFUCHSIA<'a> {
21400 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA;
21401
21402 fn s_type(&self) -> vk::StructureType {
21403 self.s_type
21404 }
21405
21406 fn p_next(&self) -> *const std::ffi::c_void {
21407 self.p_next
21408 }
21409
21410 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21411 self.p_next = p_next.cast_const();
21412 }
21413
21414 fn address(&mut self) -> *mut std::ffi::c_void {
21415 std::ptr::from_mut(self).cast()
21416 }
21417}
21418
21419#[cfg(feature = "platform-fuchsia")]
21420impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
21421 for vk::BufferCollectionImageCreateInfoFUCHSIA<'a>
21422{
21423}
21424
21425#[cfg(feature = "platform-fuchsia")]
21426impl<'a> crate::construction::sealed::ChainNode
21427 for vk::BufferCollectionBufferCreateInfoFUCHSIA<'a>
21428{
21429 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA;
21430
21431 fn s_type(&self) -> vk::StructureType {
21432 self.s_type
21433 }
21434
21435 fn p_next(&self) -> *const std::ffi::c_void {
21436 self.p_next
21437 }
21438
21439 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21440 self.p_next = p_next.cast_const();
21441 }
21442
21443 fn address(&mut self) -> *mut std::ffi::c_void {
21444 std::ptr::from_mut(self).cast()
21445 }
21446}
21447
21448#[cfg(feature = "platform-fuchsia")]
21449impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
21450 for vk::BufferCollectionBufferCreateInfoFUCHSIA<'a>
21451{
21452}
21453
21454#[cfg(feature = "platform-fuchsia")]
21455impl<'a> crate::construction::sealed::ChainNode for vk::BufferCollectionCreateInfoFUCHSIA<'a> {
21456 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA;
21457
21458 fn s_type(&self) -> vk::StructureType {
21459 self.s_type
21460 }
21461
21462 fn p_next(&self) -> *const std::ffi::c_void {
21463 self.p_next
21464 }
21465
21466 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21467 self.p_next = p_next.cast_const();
21468 }
21469
21470 fn address(&mut self) -> *mut std::ffi::c_void {
21471 std::ptr::from_mut(self).cast()
21472 }
21473}
21474
21475#[cfg(feature = "platform-fuchsia")]
21476impl<'a> crate::construction::sealed::ChainNode for vk::BufferCollectionPropertiesFUCHSIA<'a> {
21477 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA;
21478
21479 fn s_type(&self) -> vk::StructureType {
21480 self.s_type
21481 }
21482
21483 fn p_next(&self) -> *const std::ffi::c_void {
21484 self.p_next.cast_const()
21485 }
21486
21487 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21488 self.p_next = p_next;
21489 }
21490
21491 fn address(&mut self) -> *mut std::ffi::c_void {
21492 std::ptr::from_mut(self).cast()
21493 }
21494}
21495
21496#[cfg(feature = "platform-fuchsia")]
21497impl<'a> crate::construction::sealed::ChainNode for vk::BufferConstraintsInfoFUCHSIA<'a> {
21498 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA;
21499
21500 fn s_type(&self) -> vk::StructureType {
21501 self.s_type
21502 }
21503
21504 fn p_next(&self) -> *const std::ffi::c_void {
21505 self.p_next
21506 }
21507
21508 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21509 self.p_next = p_next.cast_const();
21510 }
21511
21512 fn address(&mut self) -> *mut std::ffi::c_void {
21513 std::ptr::from_mut(self).cast()
21514 }
21515}
21516
21517#[cfg(feature = "platform-fuchsia")]
21518impl<'a> crate::construction::sealed::ChainNode for vk::SysmemColorSpaceFUCHSIA<'a> {
21519 const S_TYPE: vk::StructureType = vk::StructureType::SYSMEM_COLOR_SPACE_FUCHSIA;
21520
21521 fn s_type(&self) -> vk::StructureType {
21522 self.s_type
21523 }
21524
21525 fn p_next(&self) -> *const std::ffi::c_void {
21526 self.p_next
21527 }
21528
21529 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21530 self.p_next = p_next.cast_const();
21531 }
21532
21533 fn address(&mut self) -> *mut std::ffi::c_void {
21534 std::ptr::from_mut(self).cast()
21535 }
21536}
21537
21538#[cfg(feature = "platform-fuchsia")]
21539impl<'a> crate::construction::sealed::ChainNode for vk::ImageFormatConstraintsInfoFUCHSIA<'a> {
21540 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA;
21541
21542 fn s_type(&self) -> vk::StructureType {
21543 self.s_type
21544 }
21545
21546 fn p_next(&self) -> *const std::ffi::c_void {
21547 self.p_next
21548 }
21549
21550 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21551 self.p_next = p_next.cast_const();
21552 }
21553
21554 fn address(&mut self) -> *mut std::ffi::c_void {
21555 std::ptr::from_mut(self).cast()
21556 }
21557}
21558
21559#[cfg(feature = "platform-fuchsia")]
21560impl<'a> crate::construction::sealed::ChainNode for vk::ImageConstraintsInfoFUCHSIA<'a> {
21561 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA;
21562
21563 fn s_type(&self) -> vk::StructureType {
21564 self.s_type
21565 }
21566
21567 fn p_next(&self) -> *const std::ffi::c_void {
21568 self.p_next
21569 }
21570
21571 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21572 self.p_next = p_next.cast_const();
21573 }
21574
21575 fn address(&mut self) -> *mut std::ffi::c_void {
21576 std::ptr::from_mut(self).cast()
21577 }
21578}
21579
21580#[cfg(feature = "platform-fuchsia")]
21581impl<'a> crate::construction::sealed::ChainNode for vk::BufferCollectionConstraintsInfoFUCHSIA<'a> {
21582 const S_TYPE: vk::StructureType = vk::StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA;
21583
21584 fn s_type(&self) -> vk::StructureType {
21585 self.s_type
21586 }
21587
21588 fn p_next(&self) -> *const std::ffi::c_void {
21589 self.p_next
21590 }
21591
21592 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21593 self.p_next = p_next.cast_const();
21594 }
21595
21596 fn address(&mut self) -> *mut std::ffi::c_void {
21597 std::ptr::from_mut(self).cast()
21598 }
21599}
21600
21601#[cfg(feature = "provisional")]
21602impl<'a> crate::construction::sealed::ChainNode for vk::CudaModuleCreateInfoNV<'a> {
21603 const S_TYPE: vk::StructureType = vk::StructureType::CUDA_MODULE_CREATE_INFO_NV;
21604
21605 fn s_type(&self) -> vk::StructureType {
21606 self.s_type
21607 }
21608
21609 fn p_next(&self) -> *const std::ffi::c_void {
21610 self.p_next
21611 }
21612
21613 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21614 self.p_next = p_next.cast_const();
21615 }
21616
21617 fn address(&mut self) -> *mut std::ffi::c_void {
21618 std::ptr::from_mut(self).cast()
21619 }
21620}
21621
21622#[cfg(feature = "provisional")]
21623impl<'a> crate::construction::sealed::ChainNode for vk::CudaFunctionCreateInfoNV<'a> {
21624 const S_TYPE: vk::StructureType = vk::StructureType::CUDA_FUNCTION_CREATE_INFO_NV;
21625
21626 fn s_type(&self) -> vk::StructureType {
21627 self.s_type
21628 }
21629
21630 fn p_next(&self) -> *const std::ffi::c_void {
21631 self.p_next
21632 }
21633
21634 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21635 self.p_next = p_next.cast_const();
21636 }
21637
21638 fn address(&mut self) -> *mut std::ffi::c_void {
21639 std::ptr::from_mut(self).cast()
21640 }
21641}
21642
21643#[cfg(feature = "provisional")]
21644impl<'a> crate::construction::sealed::ChainNode for vk::CudaLaunchInfoNV<'a> {
21645 const S_TYPE: vk::StructureType = vk::StructureType::CUDA_LAUNCH_INFO_NV;
21646
21647 fn s_type(&self) -> vk::StructureType {
21648 self.s_type
21649 }
21650
21651 fn p_next(&self) -> *const std::ffi::c_void {
21652 self.p_next
21653 }
21654
21655 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21656 self.p_next = p_next.cast_const();
21657 }
21658
21659 fn address(&mut self) -> *mut std::ffi::c_void {
21660 std::ptr::from_mut(self).cast()
21661 }
21662}
21663
21664impl<'a> crate::construction::sealed::ChainNode
21665 for vk::PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a>
21666{
21667 const S_TYPE: vk::StructureType =
21668 vk::StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT;
21669
21670 fn s_type(&self) -> vk::StructureType {
21671 self.s_type
21672 }
21673
21674 fn p_next(&self) -> *const std::ffi::c_void {
21675 self.p_next.cast_const()
21676 }
21677
21678 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21679 self.p_next = p_next;
21680 }
21681
21682 fn address(&mut self) -> *mut std::ffi::c_void {
21683 std::ptr::from_mut(self).cast()
21684 }
21685}
21686
21687impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21688 for vk::PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a>
21689{
21690}
21691
21692impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21693 for vk::PhysicalDeviceRGBA10X6FormatsFeaturesEXT<'a>
21694{
21695}
21696
21697impl<'a> crate::construction::sealed::ChainNode for vk::FormatProperties3<'a> {
21698 const S_TYPE: vk::StructureType = vk::StructureType::FORMAT_PROPERTIES_3;
21699
21700 fn s_type(&self) -> vk::StructureType {
21701 self.s_type
21702 }
21703
21704 fn p_next(&self) -> *const std::ffi::c_void {
21705 self.p_next.cast_const()
21706 }
21707
21708 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21709 self.p_next = p_next;
21710 }
21711
21712 fn address(&mut self) -> *mut std::ffi::c_void {
21713 std::ptr::from_mut(self).cast()
21714 }
21715}
21716
21717impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>> for vk::FormatProperties3<'a> {}
21718
21719impl<'a> crate::construction::sealed::ChainNode for vk::FormatProperties4KHR<'a> {
21720 const S_TYPE: vk::StructureType = vk::StructureType::FORMAT_PROPERTIES_4_KHR;
21721
21722 fn s_type(&self) -> vk::StructureType {
21723 self.s_type
21724 }
21725
21726 fn p_next(&self) -> *const std::ffi::c_void {
21727 self.p_next.cast_const()
21728 }
21729
21730 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21731 self.p_next = p_next;
21732 }
21733
21734 fn address(&mut self) -> *mut std::ffi::c_void {
21735 std::ptr::from_mut(self).cast()
21736 }
21737}
21738
21739impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>> for vk::FormatProperties4KHR<'a> {}
21740
21741impl<'a> crate::construction::sealed::ChainNode for vk::DrmFormatModifierPropertiesList2EXT<'a> {
21742 const S_TYPE: vk::StructureType = vk::StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT;
21743
21744 fn s_type(&self) -> vk::StructureType {
21745 self.s_type
21746 }
21747
21748 fn p_next(&self) -> *const std::ffi::c_void {
21749 self.p_next.cast_const()
21750 }
21751
21752 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21753 self.p_next = p_next;
21754 }
21755
21756 fn address(&mut self) -> *mut std::ffi::c_void {
21757 std::ptr::from_mut(self).cast()
21758 }
21759}
21760
21761impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>>
21762 for vk::DrmFormatModifierPropertiesList2EXT<'a>
21763{
21764}
21765
21766#[cfg(feature = "platform-android")]
21767impl<'a> crate::construction::sealed::ChainNode
21768 for vk::AndroidHardwareBufferFormatProperties2ANDROID<'a>
21769{
21770 const S_TYPE: vk::StructureType =
21771 vk::StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID;
21772
21773 fn s_type(&self) -> vk::StructureType {
21774 self.s_type
21775 }
21776
21777 fn p_next(&self) -> *const std::ffi::c_void {
21778 self.p_next.cast_const()
21779 }
21780
21781 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21782 self.p_next = p_next;
21783 }
21784
21785 fn address(&mut self) -> *mut std::ffi::c_void {
21786 std::ptr::from_mut(self).cast()
21787 }
21788}
21789
21790#[cfg(feature = "platform-android")]
21791impl<'a, 'root> crate::Extends<vk::AndroidHardwareBufferPropertiesANDROID<'root>>
21792 for vk::AndroidHardwareBufferFormatProperties2ANDROID<'a>
21793{
21794}
21795
21796impl<'a> crate::construction::sealed::ChainNode for vk::PipelineRenderingCreateInfo<'a> {
21797 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_RENDERING_CREATE_INFO;
21798
21799 fn s_type(&self) -> vk::StructureType {
21800 self.s_type
21801 }
21802
21803 fn p_next(&self) -> *const std::ffi::c_void {
21804 self.p_next
21805 }
21806
21807 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21808 self.p_next = p_next.cast_const();
21809 }
21810
21811 fn address(&mut self) -> *mut std::ffi::c_void {
21812 std::ptr::from_mut(self).cast()
21813 }
21814}
21815
21816impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
21817 for vk::PipelineRenderingCreateInfo<'a>
21818{
21819}
21820
21821impl<'a> crate::construction::sealed::ChainNode for vk::RenderingInfo<'a> {
21822 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_INFO;
21823
21824 fn s_type(&self) -> vk::StructureType {
21825 self.s_type
21826 }
21827
21828 fn p_next(&self) -> *const std::ffi::c_void {
21829 self.p_next
21830 }
21831
21832 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21833 self.p_next = p_next.cast_const();
21834 }
21835
21836 fn address(&mut self) -> *mut std::ffi::c_void {
21837 std::ptr::from_mut(self).cast()
21838 }
21839}
21840
21841impl<'a> crate::construction::sealed::ChainNode for vk::RenderingEndInfoKHR<'a> {
21842 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_END_INFO_KHR;
21843
21844 fn s_type(&self) -> vk::StructureType {
21845 self.s_type
21846 }
21847
21848 fn p_next(&self) -> *const std::ffi::c_void {
21849 self.p_next
21850 }
21851
21852 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21853 self.p_next = p_next.cast_const();
21854 }
21855
21856 fn address(&mut self) -> *mut std::ffi::c_void {
21857 std::ptr::from_mut(self).cast()
21858 }
21859}
21860
21861impl<'a> crate::construction::sealed::ChainNode for vk::RenderingAttachmentInfo<'a> {
21862 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_ATTACHMENT_INFO;
21863
21864 fn s_type(&self) -> vk::StructureType {
21865 self.s_type
21866 }
21867
21868 fn p_next(&self) -> *const std::ffi::c_void {
21869 self.p_next
21870 }
21871
21872 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21873 self.p_next = p_next.cast_const();
21874 }
21875
21876 fn address(&mut self) -> *mut std::ffi::c_void {
21877 std::ptr::from_mut(self).cast()
21878 }
21879}
21880
21881impl<'a> crate::construction::sealed::ChainNode
21882 for vk::RenderingFragmentShadingRateAttachmentInfoKHR<'a>
21883{
21884 const S_TYPE: vk::StructureType =
21885 vk::StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
21886
21887 fn s_type(&self) -> vk::StructureType {
21888 self.s_type
21889 }
21890
21891 fn p_next(&self) -> *const std::ffi::c_void {
21892 self.p_next
21893 }
21894
21895 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21896 self.p_next = p_next.cast_const();
21897 }
21898
21899 fn address(&mut self) -> *mut std::ffi::c_void {
21900 std::ptr::from_mut(self).cast()
21901 }
21902}
21903
21904impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
21905 for vk::RenderingFragmentShadingRateAttachmentInfoKHR<'a>
21906{
21907}
21908
21909impl<'a> crate::construction::sealed::ChainNode
21910 for vk::RenderingFragmentDensityMapAttachmentInfoEXT<'a>
21911{
21912 const S_TYPE: vk::StructureType =
21913 vk::StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT;
21914
21915 fn s_type(&self) -> vk::StructureType {
21916 self.s_type
21917 }
21918
21919 fn p_next(&self) -> *const std::ffi::c_void {
21920 self.p_next
21921 }
21922
21923 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21924 self.p_next = p_next.cast_const();
21925 }
21926
21927 fn address(&mut self) -> *mut std::ffi::c_void {
21928 std::ptr::from_mut(self).cast()
21929 }
21930}
21931
21932impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
21933 for vk::RenderingFragmentDensityMapAttachmentInfoEXT<'a>
21934{
21935}
21936
21937impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceDynamicRenderingFeatures<'a> {
21938 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
21939
21940 fn s_type(&self) -> vk::StructureType {
21941 self.s_type
21942 }
21943
21944 fn p_next(&self) -> *const std::ffi::c_void {
21945 self.p_next.cast_const()
21946 }
21947
21948 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21949 self.p_next = p_next;
21950 }
21951
21952 fn address(&mut self) -> *mut std::ffi::c_void {
21953 std::ptr::from_mut(self).cast()
21954 }
21955}
21956
21957impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
21958 for vk::PhysicalDeviceDynamicRenderingFeatures<'a>
21959{
21960}
21961
21962impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
21963 for vk::PhysicalDeviceDynamicRenderingFeatures<'a>
21964{
21965}
21966
21967impl<'a> crate::construction::sealed::ChainNode for vk::CommandBufferInheritanceRenderingInfo<'a> {
21968 const S_TYPE: vk::StructureType = vk::StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
21969
21970 fn s_type(&self) -> vk::StructureType {
21971 self.s_type
21972 }
21973
21974 fn p_next(&self) -> *const std::ffi::c_void {
21975 self.p_next
21976 }
21977
21978 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
21979 self.p_next = p_next.cast_const();
21980 }
21981
21982 fn address(&mut self) -> *mut std::ffi::c_void {
21983 std::ptr::from_mut(self).cast()
21984 }
21985}
21986
21987impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
21988 for vk::CommandBufferInheritanceRenderingInfo<'a>
21989{
21990}
21991
21992impl<'a> crate::construction::sealed::ChainNode for vk::AttachmentSampleCountInfoAMD<'a> {
21993 const S_TYPE: vk::StructureType = vk::StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
21994
21995 fn s_type(&self) -> vk::StructureType {
21996 self.s_type
21997 }
21998
21999 fn p_next(&self) -> *const std::ffi::c_void {
22000 self.p_next
22001 }
22002
22003 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22004 self.p_next = p_next.cast_const();
22005 }
22006
22007 fn address(&mut self) -> *mut std::ffi::c_void {
22008 std::ptr::from_mut(self).cast()
22009 }
22010}
22011
22012impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
22013 for vk::AttachmentSampleCountInfoAMD<'a>
22014{
22015}
22016
22017impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
22018 for vk::AttachmentSampleCountInfoAMD<'a>
22019{
22020}
22021
22022impl<'a> crate::construction::sealed::ChainNode for vk::MultiviewPerViewAttributesInfoNVX<'a> {
22023 const S_TYPE: vk::StructureType = vk::StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX;
22024
22025 fn s_type(&self) -> vk::StructureType {
22026 self.s_type
22027 }
22028
22029 fn p_next(&self) -> *const std::ffi::c_void {
22030 self.p_next
22031 }
22032
22033 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22034 self.p_next = p_next.cast_const();
22035 }
22036
22037 fn address(&mut self) -> *mut std::ffi::c_void {
22038 std::ptr::from_mut(self).cast()
22039 }
22040}
22041
22042impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
22043 for vk::MultiviewPerViewAttributesInfoNVX<'a>
22044{
22045}
22046
22047impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
22048 for vk::MultiviewPerViewAttributesInfoNVX<'a>
22049{
22050}
22051
22052impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
22053 for vk::MultiviewPerViewAttributesInfoNVX<'a>
22054{
22055}
22056
22057impl<'a> crate::construction::sealed::ChainNode
22058 for vk::PhysicalDeviceImageViewMinLodFeaturesEXT<'a>
22059{
22060 const S_TYPE: vk::StructureType =
22061 vk::StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT;
22062
22063 fn s_type(&self) -> vk::StructureType {
22064 self.s_type
22065 }
22066
22067 fn p_next(&self) -> *const std::ffi::c_void {
22068 self.p_next.cast_const()
22069 }
22070
22071 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22072 self.p_next = p_next;
22073 }
22074
22075 fn address(&mut self) -> *mut std::ffi::c_void {
22076 std::ptr::from_mut(self).cast()
22077 }
22078}
22079
22080impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22081 for vk::PhysicalDeviceImageViewMinLodFeaturesEXT<'a>
22082{
22083}
22084
22085impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22086 for vk::PhysicalDeviceImageViewMinLodFeaturesEXT<'a>
22087{
22088}
22089
22090impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewMinLodCreateInfoEXT<'a> {
22091 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
22092
22093 fn s_type(&self) -> vk::StructureType {
22094 self.s_type
22095 }
22096
22097 fn p_next(&self) -> *const std::ffi::c_void {
22098 self.p_next
22099 }
22100
22101 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22102 self.p_next = p_next.cast_const();
22103 }
22104
22105 fn address(&mut self) -> *mut std::ffi::c_void {
22106 std::ptr::from_mut(self).cast()
22107 }
22108}
22109
22110impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
22111 for vk::ImageViewMinLodCreateInfoEXT<'a>
22112{
22113}
22114
22115impl<'a> crate::construction::sealed::ChainNode
22116 for vk::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a>
22117{
22118 const S_TYPE: vk::StructureType =
22119 vk::StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT;
22120
22121 fn s_type(&self) -> vk::StructureType {
22122 self.s_type
22123 }
22124
22125 fn p_next(&self) -> *const std::ffi::c_void {
22126 self.p_next.cast_const()
22127 }
22128
22129 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22130 self.p_next = p_next;
22131 }
22132
22133 fn address(&mut self) -> *mut std::ffi::c_void {
22134 std::ptr::from_mut(self).cast()
22135 }
22136}
22137
22138impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22139 for vk::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a>
22140{
22141}
22142
22143impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22144 for vk::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT<'a>
22145{
22146}
22147
22148impl<'a> crate::construction::sealed::ChainNode
22149 for vk::PhysicalDeviceLinearColorAttachmentFeaturesNV<'a>
22150{
22151 const S_TYPE: vk::StructureType =
22152 vk::StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV;
22153
22154 fn s_type(&self) -> vk::StructureType {
22155 self.s_type
22156 }
22157
22158 fn p_next(&self) -> *const std::ffi::c_void {
22159 self.p_next.cast_const()
22160 }
22161
22162 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22163 self.p_next = p_next;
22164 }
22165
22166 fn address(&mut self) -> *mut std::ffi::c_void {
22167 std::ptr::from_mut(self).cast()
22168 }
22169}
22170
22171impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22172 for vk::PhysicalDeviceLinearColorAttachmentFeaturesNV<'a>
22173{
22174}
22175
22176impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22177 for vk::PhysicalDeviceLinearColorAttachmentFeaturesNV<'a>
22178{
22179}
22180
22181impl<'a> crate::construction::sealed::ChainNode
22182 for vk::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a>
22183{
22184 const S_TYPE: vk::StructureType =
22185 vk::StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
22186
22187 fn s_type(&self) -> vk::StructureType {
22188 self.s_type
22189 }
22190
22191 fn p_next(&self) -> *const std::ffi::c_void {
22192 self.p_next.cast_const()
22193 }
22194
22195 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22196 self.p_next = p_next;
22197 }
22198
22199 fn address(&mut self) -> *mut std::ffi::c_void {
22200 std::ptr::from_mut(self).cast()
22201 }
22202}
22203
22204impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22205 for vk::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a>
22206{
22207}
22208
22209impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22210 for vk::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT<'a>
22211{
22212}
22213
22214impl<'a> crate::construction::sealed::ChainNode
22215 for vk::PhysicalDevicePipelineBinaryFeaturesKHR<'a>
22216{
22217 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR;
22218
22219 fn s_type(&self) -> vk::StructureType {
22220 self.s_type
22221 }
22222
22223 fn p_next(&self) -> *const std::ffi::c_void {
22224 self.p_next.cast_const()
22225 }
22226
22227 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22228 self.p_next = p_next;
22229 }
22230
22231 fn address(&mut self) -> *mut std::ffi::c_void {
22232 std::ptr::from_mut(self).cast()
22233 }
22234}
22235
22236impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22237 for vk::PhysicalDevicePipelineBinaryFeaturesKHR<'a>
22238{
22239}
22240
22241impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22242 for vk::PhysicalDevicePipelineBinaryFeaturesKHR<'a>
22243{
22244}
22245
22246impl<'a> crate::construction::sealed::ChainNode
22247 for vk::DevicePipelineBinaryInternalCacheControlKHR<'a>
22248{
22249 const S_TYPE: vk::StructureType =
22250 vk::StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR;
22251
22252 fn s_type(&self) -> vk::StructureType {
22253 self.s_type
22254 }
22255
22256 fn p_next(&self) -> *const std::ffi::c_void {
22257 self.p_next
22258 }
22259
22260 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22261 self.p_next = p_next.cast_const();
22262 }
22263
22264 fn address(&mut self) -> *mut std::ffi::c_void {
22265 std::ptr::from_mut(self).cast()
22266 }
22267}
22268
22269impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22270 for vk::DevicePipelineBinaryInternalCacheControlKHR<'a>
22271{
22272}
22273
22274impl<'a> crate::construction::sealed::ChainNode
22275 for vk::PhysicalDevicePipelineBinaryPropertiesKHR<'a>
22276{
22277 const S_TYPE: vk::StructureType =
22278 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR;
22279
22280 fn s_type(&self) -> vk::StructureType {
22281 self.s_type
22282 }
22283
22284 fn p_next(&self) -> *const std::ffi::c_void {
22285 self.p_next.cast_const()
22286 }
22287
22288 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22289 self.p_next = p_next;
22290 }
22291
22292 fn address(&mut self) -> *mut std::ffi::c_void {
22293 std::ptr::from_mut(self).cast()
22294 }
22295}
22296
22297impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
22298 for vk::PhysicalDevicePipelineBinaryPropertiesKHR<'a>
22299{
22300}
22301
22302impl<'a> crate::construction::sealed::ChainNode
22303 for vk::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a>
22304{
22305 const S_TYPE: vk::StructureType =
22306 vk::StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT;
22307
22308 fn s_type(&self) -> vk::StructureType {
22309 self.s_type
22310 }
22311
22312 fn p_next(&self) -> *const std::ffi::c_void {
22313 self.p_next.cast_const()
22314 }
22315
22316 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22317 self.p_next = p_next;
22318 }
22319
22320 fn address(&mut self) -> *mut std::ffi::c_void {
22321 std::ptr::from_mut(self).cast()
22322 }
22323}
22324
22325impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
22326 for vk::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<'a>
22327{
22328}
22329
22330impl<'a> crate::construction::sealed::ChainNode for vk::GraphicsPipelineLibraryCreateInfoEXT<'a> {
22331 const S_TYPE: vk::StructureType = vk::StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;
22332
22333 fn s_type(&self) -> vk::StructureType {
22334 self.s_type
22335 }
22336
22337 fn p_next(&self) -> *const std::ffi::c_void {
22338 self.p_next
22339 }
22340
22341 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22342 self.p_next = p_next.cast_const();
22343 }
22344
22345 fn address(&mut self) -> *mut std::ffi::c_void {
22346 std::ptr::from_mut(self).cast()
22347 }
22348}
22349
22350impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
22351 for vk::GraphicsPipelineLibraryCreateInfoEXT<'a>
22352{
22353}
22354
22355impl<'a> crate::construction::sealed::ChainNode
22356 for vk::PhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM<'a>
22357{
22358 const S_TYPE: vk::StructureType =
22359 vk::StructureType::PHYSICAL_DEVICE_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_FEATURES_ARM;
22360
22361 fn s_type(&self) -> vk::StructureType {
22362 self.s_type
22363 }
22364
22365 fn p_next(&self) -> *const std::ffi::c_void {
22366 self.p_next.cast_const()
22367 }
22368
22369 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22370 self.p_next = p_next;
22371 }
22372
22373 fn address(&mut self) -> *mut std::ffi::c_void {
22374 std::ptr::from_mut(self).cast()
22375 }
22376}
22377
22378impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22379 for vk::PhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM<'a>
22380{
22381}
22382
22383impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22384 for vk::PhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM<'a>
22385{
22386}
22387
22388impl<'a> crate::construction::sealed::ChainNode
22389 for vk::DataGraphPipelineNeuralStatisticsCreateInfoARM<'a>
22390{
22391 const S_TYPE: vk::StructureType =
22392 vk::StructureType::DATA_GRAPH_PIPELINE_NEURAL_STATISTICS_CREATE_INFO_ARM;
22393
22394 fn s_type(&self) -> vk::StructureType {
22395 self.s_type
22396 }
22397
22398 fn p_next(&self) -> *const std::ffi::c_void {
22399 self.p_next
22400 }
22401
22402 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22403 self.p_next = p_next.cast_const();
22404 }
22405
22406 fn address(&mut self) -> *mut std::ffi::c_void {
22407 std::ptr::from_mut(self).cast()
22408 }
22409}
22410
22411impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
22412 for vk::DataGraphPipelineNeuralStatisticsCreateInfoARM<'a>
22413{
22414}
22415
22416impl<'a> crate::construction::sealed::ChainNode
22417 for vk::DataGraphPipelineSessionNeuralStatisticsCreateInfoARM<'a>
22418{
22419 const S_TYPE: vk::StructureType =
22420 vk::StructureType::DATA_GRAPH_PIPELINE_SESSION_NEURAL_STATISTICS_CREATE_INFO_ARM;
22421
22422 fn s_type(&self) -> vk::StructureType {
22423 self.s_type
22424 }
22425
22426 fn p_next(&self) -> *const std::ffi::c_void {
22427 self.p_next
22428 }
22429
22430 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22431 self.p_next = p_next.cast_const();
22432 }
22433
22434 fn address(&mut self) -> *mut std::ffi::c_void {
22435 std::ptr::from_mut(self).cast()
22436 }
22437}
22438
22439impl<'a, 'root> crate::Extends<vk::DataGraphPipelineSessionCreateInfoARM<'root>>
22440 for vk::DataGraphPipelineSessionNeuralStatisticsCreateInfoARM<'a>
22441{
22442}
22443
22444impl<'a> crate::construction::sealed::ChainNode
22445 for vk::TensorExplicitTilingFormatPropertiesARM<'a>
22446{
22447 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_EXPLICIT_TILING_FORMAT_PROPERTIES_ARM;
22448
22449 fn s_type(&self) -> vk::StructureType {
22450 self.s_type
22451 }
22452
22453 fn p_next(&self) -> *const std::ffi::c_void {
22454 self.p_next.cast_const()
22455 }
22456
22457 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22458 self.p_next = p_next;
22459 }
22460
22461 fn address(&mut self) -> *mut std::ffi::c_void {
22462 std::ptr::from_mut(self).cast()
22463 }
22464}
22465
22466impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>>
22467 for vk::TensorExplicitTilingFormatPropertiesARM<'a>
22468{
22469}
22470
22471impl<'a> crate::construction::sealed::ChainNode for vk::TensorRollingBackingCreateInfoARM<'a> {
22472 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_ROLLING_BACKING_CREATE_INFO_ARM;
22473
22474 fn s_type(&self) -> vk::StructureType {
22475 self.s_type
22476 }
22477
22478 fn p_next(&self) -> *const std::ffi::c_void {
22479 self.p_next
22480 }
22481
22482 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22483 self.p_next = p_next.cast_const();
22484 }
22485
22486 fn address(&mut self) -> *mut std::ffi::c_void {
22487 std::ptr::from_mut(self).cast()
22488 }
22489}
22490
22491impl<'a, 'root> crate::Extends<vk::TensorCreateInfoARM<'root>>
22492 for vk::TensorRollingBackingCreateInfoARM<'a>
22493{
22494}
22495
22496impl<'a> crate::construction::sealed::ChainNode
22497 for vk::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a>
22498{
22499 const S_TYPE: vk::StructureType =
22500 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE;
22501
22502 fn s_type(&self) -> vk::StructureType {
22503 self.s_type
22504 }
22505
22506 fn p_next(&self) -> *const std::ffi::c_void {
22507 self.p_next.cast_const()
22508 }
22509
22510 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22511 self.p_next = p_next;
22512 }
22513
22514 fn address(&mut self) -> *mut std::ffi::c_void {
22515 std::ptr::from_mut(self).cast()
22516 }
22517}
22518
22519impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22520 for vk::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a>
22521{
22522}
22523
22524impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22525 for vk::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE<'a>
22526{
22527}
22528
22529impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorSetBindingReferenceVALVE<'a> {
22530 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE;
22531
22532 fn s_type(&self) -> vk::StructureType {
22533 self.s_type
22534 }
22535
22536 fn p_next(&self) -> *const std::ffi::c_void {
22537 self.p_next
22538 }
22539
22540 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22541 self.p_next = p_next.cast_const();
22542 }
22543
22544 fn address(&mut self) -> *mut std::ffi::c_void {
22545 std::ptr::from_mut(self).cast()
22546 }
22547}
22548
22549impl<'a> crate::construction::sealed::ChainNode
22550 for vk::DescriptorSetLayoutHostMappingInfoVALVE<'a>
22551{
22552 const S_TYPE: vk::StructureType =
22553 vk::StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE;
22554
22555 fn s_type(&self) -> vk::StructureType {
22556 self.s_type
22557 }
22558
22559 fn p_next(&self) -> *const std::ffi::c_void {
22560 self.p_next.cast_const()
22561 }
22562
22563 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22564 self.p_next = p_next;
22565 }
22566
22567 fn address(&mut self) -> *mut std::ffi::c_void {
22568 std::ptr::from_mut(self).cast()
22569 }
22570}
22571
22572impl<'a> crate::construction::sealed::ChainNode
22573 for vk::PhysicalDeviceNestedCommandBufferFeaturesEXT<'a>
22574{
22575 const S_TYPE: vk::StructureType =
22576 vk::StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT;
22577
22578 fn s_type(&self) -> vk::StructureType {
22579 self.s_type
22580 }
22581
22582 fn p_next(&self) -> *const std::ffi::c_void {
22583 self.p_next.cast_const()
22584 }
22585
22586 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22587 self.p_next = p_next;
22588 }
22589
22590 fn address(&mut self) -> *mut std::ffi::c_void {
22591 std::ptr::from_mut(self).cast()
22592 }
22593}
22594
22595impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22596 for vk::PhysicalDeviceNestedCommandBufferFeaturesEXT<'a>
22597{
22598}
22599
22600impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22601 for vk::PhysicalDeviceNestedCommandBufferFeaturesEXT<'a>
22602{
22603}
22604
22605impl<'a> crate::construction::sealed::ChainNode
22606 for vk::PhysicalDeviceNestedCommandBufferPropertiesEXT<'a>
22607{
22608 const S_TYPE: vk::StructureType =
22609 vk::StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT;
22610
22611 fn s_type(&self) -> vk::StructureType {
22612 self.s_type
22613 }
22614
22615 fn p_next(&self) -> *const std::ffi::c_void {
22616 self.p_next.cast_const()
22617 }
22618
22619 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22620 self.p_next = p_next;
22621 }
22622
22623 fn address(&mut self) -> *mut std::ffi::c_void {
22624 std::ptr::from_mut(self).cast()
22625 }
22626}
22627
22628impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
22629 for vk::PhysicalDeviceNestedCommandBufferPropertiesEXT<'a>
22630{
22631}
22632
22633impl<'a> crate::construction::sealed::ChainNode
22634 for vk::PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a>
22635{
22636 const S_TYPE: vk::StructureType =
22637 vk::StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
22638
22639 fn s_type(&self) -> vk::StructureType {
22640 self.s_type
22641 }
22642
22643 fn p_next(&self) -> *const std::ffi::c_void {
22644 self.p_next.cast_const()
22645 }
22646
22647 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22648 self.p_next = p_next;
22649 }
22650
22651 fn address(&mut self) -> *mut std::ffi::c_void {
22652 std::ptr::from_mut(self).cast()
22653 }
22654}
22655
22656impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22657 for vk::PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a>
22658{
22659}
22660
22661impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22662 for vk::PhysicalDeviceShaderModuleIdentifierFeaturesEXT<'a>
22663{
22664}
22665
22666impl<'a> crate::construction::sealed::ChainNode
22667 for vk::PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a>
22668{
22669 const S_TYPE: vk::StructureType =
22670 vk::StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT;
22671
22672 fn s_type(&self) -> vk::StructureType {
22673 self.s_type
22674 }
22675
22676 fn p_next(&self) -> *const std::ffi::c_void {
22677 self.p_next.cast_const()
22678 }
22679
22680 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22681 self.p_next = p_next;
22682 }
22683
22684 fn address(&mut self) -> *mut std::ffi::c_void {
22685 std::ptr::from_mut(self).cast()
22686 }
22687}
22688
22689impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
22690 for vk::PhysicalDeviceShaderModuleIdentifierPropertiesEXT<'a>
22691{
22692}
22693
22694impl<'a> crate::construction::sealed::ChainNode
22695 for vk::PipelineShaderStageModuleIdentifierCreateInfoEXT<'a>
22696{
22697 const S_TYPE: vk::StructureType =
22698 vk::StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT;
22699
22700 fn s_type(&self) -> vk::StructureType {
22701 self.s_type
22702 }
22703
22704 fn p_next(&self) -> *const std::ffi::c_void {
22705 self.p_next
22706 }
22707
22708 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22709 self.p_next = p_next.cast_const();
22710 }
22711
22712 fn address(&mut self) -> *mut std::ffi::c_void {
22713 std::ptr::from_mut(self).cast()
22714 }
22715}
22716
22717impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
22718 for vk::PipelineShaderStageModuleIdentifierCreateInfoEXT<'a>
22719{
22720}
22721
22722impl<'a> crate::construction::sealed::ChainNode for vk::ShaderModuleIdentifierEXT<'a> {
22723 const S_TYPE: vk::StructureType = vk::StructureType::SHADER_MODULE_IDENTIFIER_EXT;
22724
22725 fn s_type(&self) -> vk::StructureType {
22726 self.s_type
22727 }
22728
22729 fn p_next(&self) -> *const std::ffi::c_void {
22730 self.p_next.cast_const()
22731 }
22732
22733 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22734 self.p_next = p_next;
22735 }
22736
22737 fn address(&mut self) -> *mut std::ffi::c_void {
22738 std::ptr::from_mut(self).cast()
22739 }
22740}
22741
22742impl<'a> crate::construction::sealed::ChainNode for vk::ImageCompressionControlEXT<'a> {
22743 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_COMPRESSION_CONTROL_EXT;
22744
22745 fn s_type(&self) -> vk::StructureType {
22746 self.s_type
22747 }
22748
22749 fn p_next(&self) -> *const std::ffi::c_void {
22750 self.p_next
22751 }
22752
22753 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22754 self.p_next = p_next.cast_const();
22755 }
22756
22757 fn address(&mut self) -> *mut std::ffi::c_void {
22758 std::ptr::from_mut(self).cast()
22759 }
22760}
22761
22762impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ImageCompressionControlEXT<'a> {}
22763
22764impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
22765 for vk::ImageCompressionControlEXT<'a>
22766{
22767}
22768
22769impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
22770 for vk::ImageCompressionControlEXT<'a>
22771{
22772}
22773
22774impl<'a> crate::construction::sealed::ChainNode
22775 for vk::PhysicalDeviceImageCompressionControlFeaturesEXT<'a>
22776{
22777 const S_TYPE: vk::StructureType =
22778 vk::StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT;
22779
22780 fn s_type(&self) -> vk::StructureType {
22781 self.s_type
22782 }
22783
22784 fn p_next(&self) -> *const std::ffi::c_void {
22785 self.p_next.cast_const()
22786 }
22787
22788 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22789 self.p_next = p_next;
22790 }
22791
22792 fn address(&mut self) -> *mut std::ffi::c_void {
22793 std::ptr::from_mut(self).cast()
22794 }
22795}
22796
22797impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22798 for vk::PhysicalDeviceImageCompressionControlFeaturesEXT<'a>
22799{
22800}
22801
22802impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22803 for vk::PhysicalDeviceImageCompressionControlFeaturesEXT<'a>
22804{
22805}
22806
22807impl<'a> crate::construction::sealed::ChainNode for vk::ImageCompressionPropertiesEXT<'a> {
22808 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT;
22809
22810 fn s_type(&self) -> vk::StructureType {
22811 self.s_type
22812 }
22813
22814 fn p_next(&self) -> *const std::ffi::c_void {
22815 self.p_next.cast_const()
22816 }
22817
22818 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22819 self.p_next = p_next;
22820 }
22821
22822 fn address(&mut self) -> *mut std::ffi::c_void {
22823 std::ptr::from_mut(self).cast()
22824 }
22825}
22826
22827impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
22828 for vk::ImageCompressionPropertiesEXT<'a>
22829{
22830}
22831
22832impl<'a, 'root> crate::Extends<vk::SurfaceFormat2KHR<'root>>
22833 for vk::ImageCompressionPropertiesEXT<'a>
22834{
22835}
22836
22837impl<'a, 'root> crate::Extends<vk::SubresourceLayout2<'root>>
22838 for vk::ImageCompressionPropertiesEXT<'a>
22839{
22840}
22841
22842impl<'a> crate::construction::sealed::ChainNode
22843 for vk::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a>
22844{
22845 const S_TYPE: vk::StructureType =
22846 vk::StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT;
22847
22848 fn s_type(&self) -> vk::StructureType {
22849 self.s_type
22850 }
22851
22852 fn p_next(&self) -> *const std::ffi::c_void {
22853 self.p_next.cast_const()
22854 }
22855
22856 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22857 self.p_next = p_next;
22858 }
22859
22860 fn address(&mut self) -> *mut std::ffi::c_void {
22861 std::ptr::from_mut(self).cast()
22862 }
22863}
22864
22865impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
22866 for vk::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a>
22867{
22868}
22869
22870impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
22871 for vk::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT<'a>
22872{
22873}
22874
22875impl<'a> crate::construction::sealed::ChainNode for vk::ImageSubresource2<'a> {
22876 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_SUBRESOURCE_2;
22877
22878 fn s_type(&self) -> vk::StructureType {
22879 self.s_type
22880 }
22881
22882 fn p_next(&self) -> *const std::ffi::c_void {
22883 self.p_next.cast_const()
22884 }
22885
22886 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22887 self.p_next = p_next;
22888 }
22889
22890 fn address(&mut self) -> *mut std::ffi::c_void {
22891 std::ptr::from_mut(self).cast()
22892 }
22893}
22894
22895impl<'a> crate::construction::sealed::ChainNode for vk::SubresourceLayout2<'a> {
22896 const S_TYPE: vk::StructureType = vk::StructureType::SUBRESOURCE_LAYOUT_2;
22897
22898 fn s_type(&self) -> vk::StructureType {
22899 self.s_type
22900 }
22901
22902 fn p_next(&self) -> *const std::ffi::c_void {
22903 self.p_next.cast_const()
22904 }
22905
22906 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22907 self.p_next = p_next;
22908 }
22909
22910 fn address(&mut self) -> *mut std::ffi::c_void {
22911 std::ptr::from_mut(self).cast()
22912 }
22913}
22914
22915impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassCreationControlEXT<'a> {
22916 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_CREATION_CONTROL_EXT;
22917
22918 fn s_type(&self) -> vk::StructureType {
22919 self.s_type
22920 }
22921
22922 fn p_next(&self) -> *const std::ffi::c_void {
22923 self.p_next
22924 }
22925
22926 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22927 self.p_next = p_next.cast_const();
22928 }
22929
22930 fn address(&mut self) -> *mut std::ffi::c_void {
22931 std::ptr::from_mut(self).cast()
22932 }
22933}
22934
22935impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo2<'root>>
22936 for vk::RenderPassCreationControlEXT<'a>
22937{
22938}
22939
22940impl<'a, 'root> crate::Extends<vk::SubpassDescription2<'root>>
22941 for vk::RenderPassCreationControlEXT<'a>
22942{
22943}
22944
22945impl<'a> crate::construction::sealed::ChainNode
22946 for vk::RenderPassCreationFeedbackCreateInfoEXT<'a>
22947{
22948 const S_TYPE: vk::StructureType =
22949 vk::StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT;
22950
22951 fn s_type(&self) -> vk::StructureType {
22952 self.s_type
22953 }
22954
22955 fn p_next(&self) -> *const std::ffi::c_void {
22956 self.p_next
22957 }
22958
22959 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22960 self.p_next = p_next.cast_const();
22961 }
22962
22963 fn address(&mut self) -> *mut std::ffi::c_void {
22964 std::ptr::from_mut(self).cast()
22965 }
22966}
22967
22968impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo2<'root>>
22969 for vk::RenderPassCreationFeedbackCreateInfoEXT<'a>
22970{
22971}
22972
22973impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassSubpassFeedbackCreateInfoEXT<'a> {
22974 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT;
22975
22976 fn s_type(&self) -> vk::StructureType {
22977 self.s_type
22978 }
22979
22980 fn p_next(&self) -> *const std::ffi::c_void {
22981 self.p_next
22982 }
22983
22984 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
22985 self.p_next = p_next.cast_const();
22986 }
22987
22988 fn address(&mut self) -> *mut std::ffi::c_void {
22989 std::ptr::from_mut(self).cast()
22990 }
22991}
22992
22993impl<'a, 'root> crate::Extends<vk::SubpassDescription2<'root>>
22994 for vk::RenderPassSubpassFeedbackCreateInfoEXT<'a>
22995{
22996}
22997
22998impl<'a> crate::construction::sealed::ChainNode
22999 for vk::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a>
23000{
23001 const S_TYPE: vk::StructureType =
23002 vk::StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT;
23003
23004 fn s_type(&self) -> vk::StructureType {
23005 self.s_type
23006 }
23007
23008 fn p_next(&self) -> *const std::ffi::c_void {
23009 self.p_next.cast_const()
23010 }
23011
23012 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23013 self.p_next = p_next;
23014 }
23015
23016 fn address(&mut self) -> *mut std::ffi::c_void {
23017 std::ptr::from_mut(self).cast()
23018 }
23019}
23020
23021impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23022 for vk::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a>
23023{
23024}
23025
23026impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23027 for vk::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT<'a>
23028{
23029}
23030
23031impl<'a> crate::construction::sealed::ChainNode for vk::MicromapBuildInfoEXT<'a> {
23032 const S_TYPE: vk::StructureType = vk::StructureType::MICROMAP_BUILD_INFO_EXT;
23033
23034 fn s_type(&self) -> vk::StructureType {
23035 self.s_type
23036 }
23037
23038 fn p_next(&self) -> *const std::ffi::c_void {
23039 self.p_next
23040 }
23041
23042 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23043 self.p_next = p_next.cast_const();
23044 }
23045
23046 fn address(&mut self) -> *mut std::ffi::c_void {
23047 std::ptr::from_mut(self).cast()
23048 }
23049}
23050
23051impl<'a> crate::construction::sealed::ChainNode
23052 for vk::AccelerationStructureGeometryMicromapDataKHR<'a>
23053{
23054 const S_TYPE: vk::StructureType =
23055 vk::StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MICROMAP_DATA_KHR;
23056
23057 fn s_type(&self) -> vk::StructureType {
23058 self.s_type
23059 }
23060
23061 fn p_next(&self) -> *const std::ffi::c_void {
23062 self.p_next
23063 }
23064
23065 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23066 self.p_next = p_next.cast_const();
23067 }
23068
23069 fn address(&mut self) -> *mut std::ffi::c_void {
23070 std::ptr::from_mut(self).cast()
23071 }
23072}
23073
23074impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryKHR<'root>>
23075 for vk::AccelerationStructureGeometryMicromapDataKHR<'a>
23076{
23077}
23078
23079impl<'a> crate::construction::sealed::ChainNode for vk::MicromapCreateInfoEXT<'a> {
23080 const S_TYPE: vk::StructureType = vk::StructureType::MICROMAP_CREATE_INFO_EXT;
23081
23082 fn s_type(&self) -> vk::StructureType {
23083 self.s_type
23084 }
23085
23086 fn p_next(&self) -> *const std::ffi::c_void {
23087 self.p_next
23088 }
23089
23090 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23091 self.p_next = p_next.cast_const();
23092 }
23093
23094 fn address(&mut self) -> *mut std::ffi::c_void {
23095 std::ptr::from_mut(self).cast()
23096 }
23097}
23098
23099impl<'a> crate::construction::sealed::ChainNode for vk::MicromapVersionInfoEXT<'a> {
23100 const S_TYPE: vk::StructureType = vk::StructureType::MICROMAP_VERSION_INFO_EXT;
23101
23102 fn s_type(&self) -> vk::StructureType {
23103 self.s_type
23104 }
23105
23106 fn p_next(&self) -> *const std::ffi::c_void {
23107 self.p_next
23108 }
23109
23110 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23111 self.p_next = p_next.cast_const();
23112 }
23113
23114 fn address(&mut self) -> *mut std::ffi::c_void {
23115 std::ptr::from_mut(self).cast()
23116 }
23117}
23118
23119impl<'a> crate::construction::sealed::ChainNode for vk::CopyMicromapInfoEXT<'a> {
23120 const S_TYPE: vk::StructureType = vk::StructureType::COPY_MICROMAP_INFO_EXT;
23121
23122 fn s_type(&self) -> vk::StructureType {
23123 self.s_type
23124 }
23125
23126 fn p_next(&self) -> *const std::ffi::c_void {
23127 self.p_next
23128 }
23129
23130 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23131 self.p_next = p_next.cast_const();
23132 }
23133
23134 fn address(&mut self) -> *mut std::ffi::c_void {
23135 std::ptr::from_mut(self).cast()
23136 }
23137}
23138
23139impl<'a> crate::construction::sealed::ChainNode for vk::CopyMicromapToMemoryInfoEXT<'a> {
23140 const S_TYPE: vk::StructureType = vk::StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT;
23141
23142 fn s_type(&self) -> vk::StructureType {
23143 self.s_type
23144 }
23145
23146 fn p_next(&self) -> *const std::ffi::c_void {
23147 self.p_next
23148 }
23149
23150 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23151 self.p_next = p_next.cast_const();
23152 }
23153
23154 fn address(&mut self) -> *mut std::ffi::c_void {
23155 std::ptr::from_mut(self).cast()
23156 }
23157}
23158
23159impl<'a> crate::construction::sealed::ChainNode for vk::CopyMemoryToMicromapInfoEXT<'a> {
23160 const S_TYPE: vk::StructureType = vk::StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT;
23161
23162 fn s_type(&self) -> vk::StructureType {
23163 self.s_type
23164 }
23165
23166 fn p_next(&self) -> *const std::ffi::c_void {
23167 self.p_next
23168 }
23169
23170 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23171 self.p_next = p_next.cast_const();
23172 }
23173
23174 fn address(&mut self) -> *mut std::ffi::c_void {
23175 std::ptr::from_mut(self).cast()
23176 }
23177}
23178
23179impl<'a> crate::construction::sealed::ChainNode for vk::MicromapBuildSizesInfoEXT<'a> {
23180 const S_TYPE: vk::StructureType = vk::StructureType::MICROMAP_BUILD_SIZES_INFO_EXT;
23181
23182 fn s_type(&self) -> vk::StructureType {
23183 self.s_type
23184 }
23185
23186 fn p_next(&self) -> *const std::ffi::c_void {
23187 self.p_next
23188 }
23189
23190 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23191 self.p_next = p_next.cast_const();
23192 }
23193
23194 fn address(&mut self) -> *mut std::ffi::c_void {
23195 std::ptr::from_mut(self).cast()
23196 }
23197}
23198
23199impl<'a> crate::construction::sealed::ChainNode
23200 for vk::PhysicalDeviceOpacityMicromapFeaturesKHR<'a>
23201{
23202 const S_TYPE: vk::StructureType =
23203 vk::StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_KHR;
23204
23205 fn s_type(&self) -> vk::StructureType {
23206 self.s_type
23207 }
23208
23209 fn p_next(&self) -> *const std::ffi::c_void {
23210 self.p_next.cast_const()
23211 }
23212
23213 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23214 self.p_next = p_next;
23215 }
23216
23217 fn address(&mut self) -> *mut std::ffi::c_void {
23218 std::ptr::from_mut(self).cast()
23219 }
23220}
23221
23222impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23223 for vk::PhysicalDeviceOpacityMicromapFeaturesKHR<'a>
23224{
23225}
23226
23227impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23228 for vk::PhysicalDeviceOpacityMicromapFeaturesKHR<'a>
23229{
23230}
23231
23232impl<'a> crate::construction::sealed::ChainNode
23233 for vk::PhysicalDeviceOpacityMicromapFeaturesEXT<'a>
23234{
23235 const S_TYPE: vk::StructureType =
23236 vk::StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT;
23237
23238 fn s_type(&self) -> vk::StructureType {
23239 self.s_type
23240 }
23241
23242 fn p_next(&self) -> *const std::ffi::c_void {
23243 self.p_next.cast_const()
23244 }
23245
23246 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23247 self.p_next = p_next;
23248 }
23249
23250 fn address(&mut self) -> *mut std::ffi::c_void {
23251 std::ptr::from_mut(self).cast()
23252 }
23253}
23254
23255impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23256 for vk::PhysicalDeviceOpacityMicromapFeaturesEXT<'a>
23257{
23258}
23259
23260impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23261 for vk::PhysicalDeviceOpacityMicromapFeaturesEXT<'a>
23262{
23263}
23264
23265impl<'a> crate::construction::sealed::ChainNode
23266 for vk::PhysicalDeviceOpacityMicromapPropertiesKHR<'a>
23267{
23268 const S_TYPE: vk::StructureType =
23269 vk::StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_KHR;
23270
23271 fn s_type(&self) -> vk::StructureType {
23272 self.s_type
23273 }
23274
23275 fn p_next(&self) -> *const std::ffi::c_void {
23276 self.p_next.cast_const()
23277 }
23278
23279 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23280 self.p_next = p_next;
23281 }
23282
23283 fn address(&mut self) -> *mut std::ffi::c_void {
23284 std::ptr::from_mut(self).cast()
23285 }
23286}
23287
23288impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
23289 for vk::PhysicalDeviceOpacityMicromapPropertiesKHR<'a>
23290{
23291}
23292
23293impl<'a> crate::construction::sealed::ChainNode
23294 for vk::PhysicalDeviceOpacityMicromapPropertiesEXT<'a>
23295{
23296 const S_TYPE: vk::StructureType =
23297 vk::StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT;
23298
23299 fn s_type(&self) -> vk::StructureType {
23300 self.s_type
23301 }
23302
23303 fn p_next(&self) -> *const std::ffi::c_void {
23304 self.p_next.cast_const()
23305 }
23306
23307 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23308 self.p_next = p_next;
23309 }
23310
23311 fn address(&mut self) -> *mut std::ffi::c_void {
23312 std::ptr::from_mut(self).cast()
23313 }
23314}
23315
23316impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
23317 for vk::PhysicalDeviceOpacityMicromapPropertiesEXT<'a>
23318{
23319}
23320
23321impl<'a> crate::construction::sealed::ChainNode
23322 for vk::AccelerationStructureTrianglesOpacityMicromapKHR<'a>
23323{
23324 const S_TYPE: vk::StructureType =
23325 vk::StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_KHR;
23326
23327 fn s_type(&self) -> vk::StructureType {
23328 self.s_type
23329 }
23330
23331 fn p_next(&self) -> *const std::ffi::c_void {
23332 self.p_next.cast_const()
23333 }
23334
23335 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23336 self.p_next = p_next;
23337 }
23338
23339 fn address(&mut self) -> *mut std::ffi::c_void {
23340 std::ptr::from_mut(self).cast()
23341 }
23342}
23343
23344impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryTrianglesDataKHR<'root>>
23345 for vk::AccelerationStructureTrianglesOpacityMicromapKHR<'a>
23346{
23347}
23348
23349#[cfg(feature = "provisional")]
23350impl<'a, 'root> crate::Extends<vk::AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'root>>
23351 for vk::AccelerationStructureTrianglesOpacityMicromapKHR<'a>
23352{
23353}
23354
23355impl<'a> crate::construction::sealed::ChainNode
23356 for vk::AccelerationStructureTrianglesOpacityMicromapEXT<'a>
23357{
23358 const S_TYPE: vk::StructureType =
23359 vk::StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT;
23360
23361 fn s_type(&self) -> vk::StructureType {
23362 self.s_type
23363 }
23364
23365 fn p_next(&self) -> *const std::ffi::c_void {
23366 self.p_next.cast_const()
23367 }
23368
23369 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23370 self.p_next = p_next;
23371 }
23372
23373 fn address(&mut self) -> *mut std::ffi::c_void {
23374 std::ptr::from_mut(self).cast()
23375 }
23376}
23377
23378impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryTrianglesDataKHR<'root>>
23379 for vk::AccelerationStructureTrianglesOpacityMicromapEXT<'a>
23380{
23381}
23382
23383#[cfg(feature = "provisional")]
23384impl<'a, 'root> crate::Extends<vk::AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'root>>
23385 for vk::AccelerationStructureTrianglesOpacityMicromapEXT<'a>
23386{
23387}
23388
23389#[cfg(feature = "provisional")]
23390impl<'a> crate::construction::sealed::ChainNode
23391 for vk::PhysicalDeviceDisplacementMicromapFeaturesNV<'a>
23392{
23393 const S_TYPE: vk::StructureType =
23394 vk::StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV;
23395
23396 fn s_type(&self) -> vk::StructureType {
23397 self.s_type
23398 }
23399
23400 fn p_next(&self) -> *const std::ffi::c_void {
23401 self.p_next.cast_const()
23402 }
23403
23404 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23405 self.p_next = p_next;
23406 }
23407
23408 fn address(&mut self) -> *mut std::ffi::c_void {
23409 std::ptr::from_mut(self).cast()
23410 }
23411}
23412
23413#[cfg(feature = "provisional")]
23414impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23415 for vk::PhysicalDeviceDisplacementMicromapFeaturesNV<'a>
23416{
23417}
23418
23419#[cfg(feature = "provisional")]
23420impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23421 for vk::PhysicalDeviceDisplacementMicromapFeaturesNV<'a>
23422{
23423}
23424
23425#[cfg(feature = "provisional")]
23426impl<'a> crate::construction::sealed::ChainNode
23427 for vk::PhysicalDeviceDisplacementMicromapPropertiesNV<'a>
23428{
23429 const S_TYPE: vk::StructureType =
23430 vk::StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV;
23431
23432 fn s_type(&self) -> vk::StructureType {
23433 self.s_type
23434 }
23435
23436 fn p_next(&self) -> *const std::ffi::c_void {
23437 self.p_next.cast_const()
23438 }
23439
23440 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23441 self.p_next = p_next;
23442 }
23443
23444 fn address(&mut self) -> *mut std::ffi::c_void {
23445 std::ptr::from_mut(self).cast()
23446 }
23447}
23448
23449#[cfg(feature = "provisional")]
23450impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
23451 for vk::PhysicalDeviceDisplacementMicromapPropertiesNV<'a>
23452{
23453}
23454
23455#[cfg(feature = "provisional")]
23456impl<'a> crate::construction::sealed::ChainNode
23457 for vk::AccelerationStructureTrianglesDisplacementMicromapNV<'a>
23458{
23459 const S_TYPE: vk::StructureType =
23460 vk::StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV;
23461
23462 fn s_type(&self) -> vk::StructureType {
23463 self.s_type
23464 }
23465
23466 fn p_next(&self) -> *const std::ffi::c_void {
23467 self.p_next.cast_const()
23468 }
23469
23470 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23471 self.p_next = p_next;
23472 }
23473
23474 fn address(&mut self) -> *mut std::ffi::c_void {
23475 std::ptr::from_mut(self).cast()
23476 }
23477}
23478
23479#[cfg(feature = "provisional")]
23480impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryTrianglesDataKHR<'root>>
23481 for vk::AccelerationStructureTrianglesDisplacementMicromapNV<'a>
23482{
23483}
23484
23485impl<'a> crate::construction::sealed::ChainNode for vk::PipelinePropertiesIdentifierEXT<'a> {
23486 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT;
23487
23488 fn s_type(&self) -> vk::StructureType {
23489 self.s_type
23490 }
23491
23492 fn p_next(&self) -> *const std::ffi::c_void {
23493 self.p_next.cast_const()
23494 }
23495
23496 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23497 self.p_next = p_next;
23498 }
23499
23500 fn address(&mut self) -> *mut std::ffi::c_void {
23501 std::ptr::from_mut(self).cast()
23502 }
23503}
23504
23505impl<'a> crate::construction::sealed::ChainNode
23506 for vk::PhysicalDevicePipelinePropertiesFeaturesEXT<'a>
23507{
23508 const S_TYPE: vk::StructureType =
23509 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT;
23510
23511 fn s_type(&self) -> vk::StructureType {
23512 self.s_type
23513 }
23514
23515 fn p_next(&self) -> *const std::ffi::c_void {
23516 self.p_next.cast_const()
23517 }
23518
23519 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23520 self.p_next = p_next;
23521 }
23522
23523 fn address(&mut self) -> *mut std::ffi::c_void {
23524 std::ptr::from_mut(self).cast()
23525 }
23526}
23527
23528impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23529 for vk::PhysicalDevicePipelinePropertiesFeaturesEXT<'a>
23530{
23531}
23532
23533impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23534 for vk::PhysicalDevicePipelinePropertiesFeaturesEXT<'a>
23535{
23536}
23537
23538impl<'a> crate::construction::sealed::ChainNode
23539 for vk::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a>
23540{
23541 const S_TYPE: vk::StructureType =
23542 vk::StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD;
23543
23544 fn s_type(&self) -> vk::StructureType {
23545 self.s_type
23546 }
23547
23548 fn p_next(&self) -> *const std::ffi::c_void {
23549 self.p_next.cast_const()
23550 }
23551
23552 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23553 self.p_next = p_next;
23554 }
23555
23556 fn address(&mut self) -> *mut std::ffi::c_void {
23557 std::ptr::from_mut(self).cast()
23558 }
23559}
23560
23561impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23562 for vk::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a>
23563{
23564}
23565
23566impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23567 for vk::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<'a>
23568{
23569}
23570
23571impl<'a> crate::construction::sealed::ChainNode for vk::ExternalMemoryAcquireUnmodifiedEXT<'a> {
23572 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT;
23573
23574 fn s_type(&self) -> vk::StructureType {
23575 self.s_type
23576 }
23577
23578 fn p_next(&self) -> *const std::ffi::c_void {
23579 self.p_next
23580 }
23581
23582 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23583 self.p_next = p_next.cast_const();
23584 }
23585
23586 fn address(&mut self) -> *mut std::ffi::c_void {
23587 std::ptr::from_mut(self).cast()
23588 }
23589}
23590
23591impl<'a, 'root> crate::Extends<vk::BufferMemoryBarrier<'root>>
23592 for vk::ExternalMemoryAcquireUnmodifiedEXT<'a>
23593{
23594}
23595
23596impl<'a, 'root> crate::Extends<vk::BufferMemoryBarrier2<'root>>
23597 for vk::ExternalMemoryAcquireUnmodifiedEXT<'a>
23598{
23599}
23600
23601impl<'a, 'root> crate::Extends<vk::ImageMemoryBarrier<'root>>
23602 for vk::ExternalMemoryAcquireUnmodifiedEXT<'a>
23603{
23604}
23605
23606impl<'a, 'root> crate::Extends<vk::ImageMemoryBarrier2<'root>>
23607 for vk::ExternalMemoryAcquireUnmodifiedEXT<'a>
23608{
23609}
23610
23611#[cfg(feature = "platform-metal")]
23612impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalObjectCreateInfoEXT<'a> {
23613 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT;
23614
23615 fn s_type(&self) -> vk::StructureType {
23616 self.s_type
23617 }
23618
23619 fn p_next(&self) -> *const std::ffi::c_void {
23620 self.p_next
23621 }
23622
23623 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23624 self.p_next = p_next.cast_const();
23625 }
23626
23627 fn address(&mut self) -> *mut std::ffi::c_void {
23628 std::ptr::from_mut(self).cast()
23629 }
23630}
23631
23632#[cfg(feature = "platform-metal")]
23633impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>>
23634 for vk::ExportMetalObjectCreateInfoEXT<'a>
23635{
23636}
23637
23638#[cfg(feature = "platform-metal")]
23639impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
23640 for vk::ExportMetalObjectCreateInfoEXT<'a>
23641{
23642}
23643
23644#[cfg(feature = "platform-metal")]
23645impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
23646 for vk::ExportMetalObjectCreateInfoEXT<'a>
23647{
23648}
23649
23650#[cfg(feature = "platform-metal")]
23651impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
23652 for vk::ExportMetalObjectCreateInfoEXT<'a>
23653{
23654}
23655
23656#[cfg(feature = "platform-metal")]
23657impl<'a, 'root> crate::Extends<vk::BufferViewCreateInfo<'root>>
23658 for vk::ExportMetalObjectCreateInfoEXT<'a>
23659{
23660}
23661
23662#[cfg(feature = "platform-metal")]
23663impl<'a, 'root> crate::Extends<vk::SemaphoreCreateInfo<'root>>
23664 for vk::ExportMetalObjectCreateInfoEXT<'a>
23665{
23666}
23667
23668#[cfg(feature = "platform-metal")]
23669impl<'a, 'root> crate::Extends<vk::EventCreateInfo<'root>>
23670 for vk::ExportMetalObjectCreateInfoEXT<'a>
23671{
23672}
23673
23674#[cfg(feature = "platform-metal")]
23675impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalObjectsInfoEXT<'a> {
23676 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_OBJECTS_INFO_EXT;
23677
23678 fn s_type(&self) -> vk::StructureType {
23679 self.s_type
23680 }
23681
23682 fn p_next(&self) -> *const std::ffi::c_void {
23683 self.p_next
23684 }
23685
23686 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23687 self.p_next = p_next.cast_const();
23688 }
23689
23690 fn address(&mut self) -> *mut std::ffi::c_void {
23691 std::ptr::from_mut(self).cast()
23692 }
23693}
23694
23695#[cfg(feature = "platform-metal")]
23696impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalDeviceInfoEXT<'a> {
23697 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_DEVICE_INFO_EXT;
23698
23699 fn s_type(&self) -> vk::StructureType {
23700 self.s_type
23701 }
23702
23703 fn p_next(&self) -> *const std::ffi::c_void {
23704 self.p_next
23705 }
23706
23707 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23708 self.p_next = p_next.cast_const();
23709 }
23710
23711 fn address(&mut self) -> *mut std::ffi::c_void {
23712 std::ptr::from_mut(self).cast()
23713 }
23714}
23715
23716#[cfg(feature = "platform-metal")]
23717impl<'a, 'root> crate::Extends<vk::ExportMetalObjectsInfoEXT<'root>>
23718 for vk::ExportMetalDeviceInfoEXT<'a>
23719{
23720}
23721
23722#[cfg(feature = "platform-metal")]
23723impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalCommandQueueInfoEXT<'a> {
23724 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT;
23725
23726 fn s_type(&self) -> vk::StructureType {
23727 self.s_type
23728 }
23729
23730 fn p_next(&self) -> *const std::ffi::c_void {
23731 self.p_next
23732 }
23733
23734 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23735 self.p_next = p_next.cast_const();
23736 }
23737
23738 fn address(&mut self) -> *mut std::ffi::c_void {
23739 std::ptr::from_mut(self).cast()
23740 }
23741}
23742
23743#[cfg(feature = "platform-metal")]
23744impl<'a, 'root> crate::Extends<vk::ExportMetalObjectsInfoEXT<'root>>
23745 for vk::ExportMetalCommandQueueInfoEXT<'a>
23746{
23747}
23748
23749#[cfg(feature = "platform-metal")]
23750impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalBufferInfoEXT<'a> {
23751 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_BUFFER_INFO_EXT;
23752
23753 fn s_type(&self) -> vk::StructureType {
23754 self.s_type
23755 }
23756
23757 fn p_next(&self) -> *const std::ffi::c_void {
23758 self.p_next
23759 }
23760
23761 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23762 self.p_next = p_next.cast_const();
23763 }
23764
23765 fn address(&mut self) -> *mut std::ffi::c_void {
23766 std::ptr::from_mut(self).cast()
23767 }
23768}
23769
23770#[cfg(feature = "platform-metal")]
23771impl<'a, 'root> crate::Extends<vk::ExportMetalObjectsInfoEXT<'root>>
23772 for vk::ExportMetalBufferInfoEXT<'a>
23773{
23774}
23775
23776#[cfg(feature = "platform-metal")]
23777impl<'a> crate::construction::sealed::ChainNode for vk::ImportMetalBufferInfoEXT<'a> {
23778 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_METAL_BUFFER_INFO_EXT;
23779
23780 fn s_type(&self) -> vk::StructureType {
23781 self.s_type
23782 }
23783
23784 fn p_next(&self) -> *const std::ffi::c_void {
23785 self.p_next
23786 }
23787
23788 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23789 self.p_next = p_next.cast_const();
23790 }
23791
23792 fn address(&mut self) -> *mut std::ffi::c_void {
23793 std::ptr::from_mut(self).cast()
23794 }
23795}
23796
23797#[cfg(feature = "platform-metal")]
23798impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>> for vk::ImportMetalBufferInfoEXT<'a> {}
23799
23800#[cfg(feature = "platform-metal")]
23801impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalTextureInfoEXT<'a> {
23802 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_TEXTURE_INFO_EXT;
23803
23804 fn s_type(&self) -> vk::StructureType {
23805 self.s_type
23806 }
23807
23808 fn p_next(&self) -> *const std::ffi::c_void {
23809 self.p_next
23810 }
23811
23812 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23813 self.p_next = p_next.cast_const();
23814 }
23815
23816 fn address(&mut self) -> *mut std::ffi::c_void {
23817 std::ptr::from_mut(self).cast()
23818 }
23819}
23820
23821#[cfg(feature = "platform-metal")]
23822impl<'a, 'root> crate::Extends<vk::ExportMetalObjectsInfoEXT<'root>>
23823 for vk::ExportMetalTextureInfoEXT<'a>
23824{
23825}
23826
23827#[cfg(feature = "platform-metal")]
23828impl<'a> crate::construction::sealed::ChainNode for vk::ImportMetalTextureInfoEXT<'a> {
23829 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_METAL_TEXTURE_INFO_EXT;
23830
23831 fn s_type(&self) -> vk::StructureType {
23832 self.s_type
23833 }
23834
23835 fn p_next(&self) -> *const std::ffi::c_void {
23836 self.p_next
23837 }
23838
23839 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23840 self.p_next = p_next.cast_const();
23841 }
23842
23843 fn address(&mut self) -> *mut std::ffi::c_void {
23844 std::ptr::from_mut(self).cast()
23845 }
23846}
23847
23848#[cfg(feature = "platform-metal")]
23849impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ImportMetalTextureInfoEXT<'a> {}
23850
23851#[cfg(feature = "platform-metal")]
23852impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalIOSurfaceInfoEXT<'a> {
23853 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT;
23854
23855 fn s_type(&self) -> vk::StructureType {
23856 self.s_type
23857 }
23858
23859 fn p_next(&self) -> *const std::ffi::c_void {
23860 self.p_next
23861 }
23862
23863 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23864 self.p_next = p_next.cast_const();
23865 }
23866
23867 fn address(&mut self) -> *mut std::ffi::c_void {
23868 std::ptr::from_mut(self).cast()
23869 }
23870}
23871
23872#[cfg(feature = "platform-metal")]
23873impl<'a, 'root> crate::Extends<vk::ExportMetalObjectsInfoEXT<'root>>
23874 for vk::ExportMetalIOSurfaceInfoEXT<'a>
23875{
23876}
23877
23878#[cfg(feature = "platform-metal")]
23879impl<'a> crate::construction::sealed::ChainNode for vk::ImportMetalIOSurfaceInfoEXT<'a> {
23880 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT;
23881
23882 fn s_type(&self) -> vk::StructureType {
23883 self.s_type
23884 }
23885
23886 fn p_next(&self) -> *const std::ffi::c_void {
23887 self.p_next
23888 }
23889
23890 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23891 self.p_next = p_next.cast_const();
23892 }
23893
23894 fn address(&mut self) -> *mut std::ffi::c_void {
23895 std::ptr::from_mut(self).cast()
23896 }
23897}
23898
23899#[cfg(feature = "platform-metal")]
23900impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ImportMetalIOSurfaceInfoEXT<'a> {}
23901
23902#[cfg(feature = "platform-metal")]
23903impl<'a> crate::construction::sealed::ChainNode for vk::ExportMetalSharedEventInfoEXT<'a> {
23904 const S_TYPE: vk::StructureType = vk::StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT;
23905
23906 fn s_type(&self) -> vk::StructureType {
23907 self.s_type
23908 }
23909
23910 fn p_next(&self) -> *const std::ffi::c_void {
23911 self.p_next
23912 }
23913
23914 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23915 self.p_next = p_next.cast_const();
23916 }
23917
23918 fn address(&mut self) -> *mut std::ffi::c_void {
23919 std::ptr::from_mut(self).cast()
23920 }
23921}
23922
23923#[cfg(feature = "platform-metal")]
23924impl<'a, 'root> crate::Extends<vk::ExportMetalObjectsInfoEXT<'root>>
23925 for vk::ExportMetalSharedEventInfoEXT<'a>
23926{
23927}
23928
23929#[cfg(feature = "platform-metal")]
23930impl<'a> crate::construction::sealed::ChainNode for vk::ImportMetalSharedEventInfoEXT<'a> {
23931 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT;
23932
23933 fn s_type(&self) -> vk::StructureType {
23934 self.s_type
23935 }
23936
23937 fn p_next(&self) -> *const std::ffi::c_void {
23938 self.p_next
23939 }
23940
23941 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23942 self.p_next = p_next.cast_const();
23943 }
23944
23945 fn address(&mut self) -> *mut std::ffi::c_void {
23946 std::ptr::from_mut(self).cast()
23947 }
23948}
23949
23950#[cfg(feature = "platform-metal")]
23951impl<'a, 'root> crate::Extends<vk::SemaphoreCreateInfo<'root>>
23952 for vk::ImportMetalSharedEventInfoEXT<'a>
23953{
23954}
23955
23956#[cfg(feature = "platform-metal")]
23957impl<'a, 'root> crate::Extends<vk::EventCreateInfo<'root>>
23958 for vk::ImportMetalSharedEventInfoEXT<'a>
23959{
23960}
23961
23962impl<'a> crate::construction::sealed::ChainNode
23963 for vk::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a>
23964{
23965 const S_TYPE: vk::StructureType =
23966 vk::StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT;
23967
23968 fn s_type(&self) -> vk::StructureType {
23969 self.s_type
23970 }
23971
23972 fn p_next(&self) -> *const std::ffi::c_void {
23973 self.p_next.cast_const()
23974 }
23975
23976 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
23977 self.p_next = p_next;
23978 }
23979
23980 fn address(&mut self) -> *mut std::ffi::c_void {
23981 std::ptr::from_mut(self).cast()
23982 }
23983}
23984
23985impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
23986 for vk::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a>
23987{
23988}
23989
23990impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
23991 for vk::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT<'a>
23992{
23993}
23994
23995impl<'a> crate::construction::sealed::ChainNode
23996 for vk::PhysicalDevicePipelineRobustnessFeatures<'a>
23997{
23998 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES;
23999
24000 fn s_type(&self) -> vk::StructureType {
24001 self.s_type
24002 }
24003
24004 fn p_next(&self) -> *const std::ffi::c_void {
24005 self.p_next.cast_const()
24006 }
24007
24008 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24009 self.p_next = p_next;
24010 }
24011
24012 fn address(&mut self) -> *mut std::ffi::c_void {
24013 std::ptr::from_mut(self).cast()
24014 }
24015}
24016
24017impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24018 for vk::PhysicalDevicePipelineRobustnessFeatures<'a>
24019{
24020}
24021
24022impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24023 for vk::PhysicalDevicePipelineRobustnessFeatures<'a>
24024{
24025}
24026
24027impl<'a> crate::construction::sealed::ChainNode for vk::PipelineRobustnessCreateInfo<'a> {
24028 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO;
24029
24030 fn s_type(&self) -> vk::StructureType {
24031 self.s_type
24032 }
24033
24034 fn p_next(&self) -> *const std::ffi::c_void {
24035 self.p_next
24036 }
24037
24038 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24039 self.p_next = p_next.cast_const();
24040 }
24041
24042 fn address(&mut self) -> *mut std::ffi::c_void {
24043 std::ptr::from_mut(self).cast()
24044 }
24045}
24046
24047impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
24048 for vk::PipelineRobustnessCreateInfo<'a>
24049{
24050}
24051
24052impl<'a, 'root> crate::Extends<vk::ComputePipelineCreateInfo<'root>>
24053 for vk::PipelineRobustnessCreateInfo<'a>
24054{
24055}
24056
24057impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
24058 for vk::PipelineRobustnessCreateInfo<'a>
24059{
24060}
24061
24062impl<'a, 'root> crate::Extends<vk::RayTracingPipelineCreateInfoKHR<'root>>
24063 for vk::PipelineRobustnessCreateInfo<'a>
24064{
24065}
24066
24067impl<'a> crate::construction::sealed::ChainNode
24068 for vk::PhysicalDevicePipelineRobustnessProperties<'a>
24069{
24070 const S_TYPE: vk::StructureType =
24071 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES;
24072
24073 fn s_type(&self) -> vk::StructureType {
24074 self.s_type
24075 }
24076
24077 fn p_next(&self) -> *const std::ffi::c_void {
24078 self.p_next.cast_const()
24079 }
24080
24081 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24082 self.p_next = p_next;
24083 }
24084
24085 fn address(&mut self) -> *mut std::ffi::c_void {
24086 std::ptr::from_mut(self).cast()
24087 }
24088}
24089
24090impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
24091 for vk::PhysicalDevicePipelineRobustnessProperties<'a>
24092{
24093}
24094
24095impl<'a> crate::construction::sealed::ChainNode for vk::ImageViewSampleWeightCreateInfoQCOM<'a> {
24096 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM;
24097
24098 fn s_type(&self) -> vk::StructureType {
24099 self.s_type
24100 }
24101
24102 fn p_next(&self) -> *const std::ffi::c_void {
24103 self.p_next
24104 }
24105
24106 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24107 self.p_next = p_next.cast_const();
24108 }
24109
24110 fn address(&mut self) -> *mut std::ffi::c_void {
24111 std::ptr::from_mut(self).cast()
24112 }
24113}
24114
24115impl<'a, 'root> crate::Extends<vk::ImageViewCreateInfo<'root>>
24116 for vk::ImageViewSampleWeightCreateInfoQCOM<'a>
24117{
24118}
24119
24120impl<'a> crate::construction::sealed::ChainNode
24121 for vk::PhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM<'a>
24122{
24123 const S_TYPE: vk::StructureType =
24124 vk::StructureType::PHYSICAL_DEVICE_SHADER_MULTIPLE_WAIT_QUEUES_FEATURES_QCOM;
24125
24126 fn s_type(&self) -> vk::StructureType {
24127 self.s_type
24128 }
24129
24130 fn p_next(&self) -> *const std::ffi::c_void {
24131 self.p_next.cast_const()
24132 }
24133
24134 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24135 self.p_next = p_next;
24136 }
24137
24138 fn address(&mut self) -> *mut std::ffi::c_void {
24139 std::ptr::from_mut(self).cast()
24140 }
24141}
24142
24143impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24144 for vk::PhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM<'a>
24145{
24146}
24147
24148impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24149 for vk::PhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM<'a>
24150{
24151}
24152
24153impl<'a> crate::construction::sealed::ChainNode
24154 for vk::PhysicalDeviceShaderMultipleWaitQueuesPropertiesQCOM<'a>
24155{
24156 const S_TYPE: vk::StructureType =
24157 vk::StructureType::PHYSICAL_DEVICE_SHADER_MULTIPLE_WAIT_QUEUES_PROPERTIES_QCOM;
24158
24159 fn s_type(&self) -> vk::StructureType {
24160 self.s_type
24161 }
24162
24163 fn p_next(&self) -> *const std::ffi::c_void {
24164 self.p_next.cast_const()
24165 }
24166
24167 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24168 self.p_next = p_next;
24169 }
24170
24171 fn address(&mut self) -> *mut std::ffi::c_void {
24172 std::ptr::from_mut(self).cast()
24173 }
24174}
24175
24176impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
24177 for vk::PhysicalDeviceShaderMultipleWaitQueuesPropertiesQCOM<'a>
24178{
24179}
24180
24181impl<'a> crate::construction::sealed::ChainNode
24182 for vk::PhysicalDeviceImageProcessingFeaturesQCOM<'a>
24183{
24184 const S_TYPE: vk::StructureType =
24185 vk::StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM;
24186
24187 fn s_type(&self) -> vk::StructureType {
24188 self.s_type
24189 }
24190
24191 fn p_next(&self) -> *const std::ffi::c_void {
24192 self.p_next.cast_const()
24193 }
24194
24195 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24196 self.p_next = p_next;
24197 }
24198
24199 fn address(&mut self) -> *mut std::ffi::c_void {
24200 std::ptr::from_mut(self).cast()
24201 }
24202}
24203
24204impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24205 for vk::PhysicalDeviceImageProcessingFeaturesQCOM<'a>
24206{
24207}
24208
24209impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24210 for vk::PhysicalDeviceImageProcessingFeaturesQCOM<'a>
24211{
24212}
24213
24214impl<'a> crate::construction::sealed::ChainNode
24215 for vk::PhysicalDeviceImageProcessingPropertiesQCOM<'a>
24216{
24217 const S_TYPE: vk::StructureType =
24218 vk::StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM;
24219
24220 fn s_type(&self) -> vk::StructureType {
24221 self.s_type
24222 }
24223
24224 fn p_next(&self) -> *const std::ffi::c_void {
24225 self.p_next.cast_const()
24226 }
24227
24228 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24229 self.p_next = p_next;
24230 }
24231
24232 fn address(&mut self) -> *mut std::ffi::c_void {
24233 std::ptr::from_mut(self).cast()
24234 }
24235}
24236
24237impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
24238 for vk::PhysicalDeviceImageProcessingPropertiesQCOM<'a>
24239{
24240}
24241
24242impl<'a> crate::construction::sealed::ChainNode
24243 for vk::PhysicalDeviceTilePropertiesFeaturesQCOM<'a>
24244{
24245 const S_TYPE: vk::StructureType =
24246 vk::StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM;
24247
24248 fn s_type(&self) -> vk::StructureType {
24249 self.s_type
24250 }
24251
24252 fn p_next(&self) -> *const std::ffi::c_void {
24253 self.p_next.cast_const()
24254 }
24255
24256 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24257 self.p_next = p_next;
24258 }
24259
24260 fn address(&mut self) -> *mut std::ffi::c_void {
24261 std::ptr::from_mut(self).cast()
24262 }
24263}
24264
24265impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24266 for vk::PhysicalDeviceTilePropertiesFeaturesQCOM<'a>
24267{
24268}
24269
24270impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24271 for vk::PhysicalDeviceTilePropertiesFeaturesQCOM<'a>
24272{
24273}
24274
24275impl<'a> crate::construction::sealed::ChainNode for vk::TilePropertiesQCOM<'a> {
24276 const S_TYPE: vk::StructureType = vk::StructureType::TILE_PROPERTIES_QCOM;
24277
24278 fn s_type(&self) -> vk::StructureType {
24279 self.s_type
24280 }
24281
24282 fn p_next(&self) -> *const std::ffi::c_void {
24283 self.p_next.cast_const()
24284 }
24285
24286 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24287 self.p_next = p_next;
24288 }
24289
24290 fn address(&mut self) -> *mut std::ffi::c_void {
24291 std::ptr::from_mut(self).cast()
24292 }
24293}
24294
24295impl<'a> crate::construction::sealed::ChainNode for vk::TileMemoryBindInfoQCOM<'a> {
24296 const S_TYPE: vk::StructureType = vk::StructureType::TILE_MEMORY_BIND_INFO_QCOM;
24297
24298 fn s_type(&self) -> vk::StructureType {
24299 self.s_type
24300 }
24301
24302 fn p_next(&self) -> *const std::ffi::c_void {
24303 self.p_next
24304 }
24305
24306 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24307 self.p_next = p_next.cast_const();
24308 }
24309
24310 fn address(&mut self) -> *mut std::ffi::c_void {
24311 std::ptr::from_mut(self).cast()
24312 }
24313}
24314
24315impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
24316 for vk::TileMemoryBindInfoQCOM<'a>
24317{
24318}
24319
24320impl<'a> crate::construction::sealed::ChainNode
24321 for vk::PhysicalDeviceAmigoProfilingFeaturesSEC<'a>
24322{
24323 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC;
24324
24325 fn s_type(&self) -> vk::StructureType {
24326 self.s_type
24327 }
24328
24329 fn p_next(&self) -> *const std::ffi::c_void {
24330 self.p_next.cast_const()
24331 }
24332
24333 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24334 self.p_next = p_next;
24335 }
24336
24337 fn address(&mut self) -> *mut std::ffi::c_void {
24338 std::ptr::from_mut(self).cast()
24339 }
24340}
24341
24342impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24343 for vk::PhysicalDeviceAmigoProfilingFeaturesSEC<'a>
24344{
24345}
24346
24347impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24348 for vk::PhysicalDeviceAmigoProfilingFeaturesSEC<'a>
24349{
24350}
24351
24352impl<'a> crate::construction::sealed::ChainNode for vk::AmigoProfilingSubmitInfoSEC<'a> {
24353 const S_TYPE: vk::StructureType = vk::StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC;
24354
24355 fn s_type(&self) -> vk::StructureType {
24356 self.s_type
24357 }
24358
24359 fn p_next(&self) -> *const std::ffi::c_void {
24360 self.p_next
24361 }
24362
24363 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24364 self.p_next = p_next.cast_const();
24365 }
24366
24367 fn address(&mut self) -> *mut std::ffi::c_void {
24368 std::ptr::from_mut(self).cast()
24369 }
24370}
24371
24372impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::AmigoProfilingSubmitInfoSEC<'a> {}
24373
24374impl<'a> crate::construction::sealed::ChainNode
24375 for vk::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a>
24376{
24377 const S_TYPE: vk::StructureType =
24378 vk::StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT;
24379
24380 fn s_type(&self) -> vk::StructureType {
24381 self.s_type
24382 }
24383
24384 fn p_next(&self) -> *const std::ffi::c_void {
24385 self.p_next.cast_const()
24386 }
24387
24388 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24389 self.p_next = p_next;
24390 }
24391
24392 fn address(&mut self) -> *mut std::ffi::c_void {
24393 std::ptr::from_mut(self).cast()
24394 }
24395}
24396
24397impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24398 for vk::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a>
24399{
24400}
24401
24402impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24403 for vk::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT<'a>
24404{
24405}
24406
24407impl<'a> crate::construction::sealed::ChainNode for vk::AttachmentFeedbackLoopInfoEXT<'a> {
24408 const S_TYPE: vk::StructureType = vk::StructureType::ATTACHMENT_FEEDBACK_LOOP_INFO_EXT;
24409
24410 fn s_type(&self) -> vk::StructureType {
24411 self.s_type
24412 }
24413
24414 fn p_next(&self) -> *const std::ffi::c_void {
24415 self.p_next
24416 }
24417
24418 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24419 self.p_next = p_next.cast_const();
24420 }
24421
24422 fn address(&mut self) -> *mut std::ffi::c_void {
24423 std::ptr::from_mut(self).cast()
24424 }
24425}
24426
24427impl<'a, 'root> crate::Extends<vk::RenderingAttachmentInfo<'root>>
24428 for vk::AttachmentFeedbackLoopInfoEXT<'a>
24429{
24430}
24431
24432impl<'a> crate::construction::sealed::ChainNode
24433 for vk::PhysicalDeviceAddressBindingReportFeaturesEXT<'a>
24434{
24435 const S_TYPE: vk::StructureType =
24436 vk::StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT;
24437
24438 fn s_type(&self) -> vk::StructureType {
24439 self.s_type
24440 }
24441
24442 fn p_next(&self) -> *const std::ffi::c_void {
24443 self.p_next.cast_const()
24444 }
24445
24446 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24447 self.p_next = p_next;
24448 }
24449
24450 fn address(&mut self) -> *mut std::ffi::c_void {
24451 std::ptr::from_mut(self).cast()
24452 }
24453}
24454
24455impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24456 for vk::PhysicalDeviceAddressBindingReportFeaturesEXT<'a>
24457{
24458}
24459
24460impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24461 for vk::PhysicalDeviceAddressBindingReportFeaturesEXT<'a>
24462{
24463}
24464
24465impl<'a> crate::construction::sealed::ChainNode for vk::RenderingAttachmentFlagsInfoKHR<'a> {
24466 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_ATTACHMENT_FLAGS_INFO_KHR;
24467
24468 fn s_type(&self) -> vk::StructureType {
24469 self.s_type
24470 }
24471
24472 fn p_next(&self) -> *const std::ffi::c_void {
24473 self.p_next
24474 }
24475
24476 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24477 self.p_next = p_next.cast_const();
24478 }
24479
24480 fn address(&mut self) -> *mut std::ffi::c_void {
24481 std::ptr::from_mut(self).cast()
24482 }
24483}
24484
24485impl<'a, 'root> crate::Extends<vk::RenderingAttachmentInfo<'root>>
24486 for vk::RenderingAttachmentFlagsInfoKHR<'a>
24487{
24488}
24489
24490impl<'a> crate::construction::sealed::ChainNode for vk::ResolveImageModeInfoKHR<'a> {
24491 const S_TYPE: vk::StructureType = vk::StructureType::RESOLVE_IMAGE_MODE_INFO_KHR;
24492
24493 fn s_type(&self) -> vk::StructureType {
24494 self.s_type
24495 }
24496
24497 fn p_next(&self) -> *const std::ffi::c_void {
24498 self.p_next
24499 }
24500
24501 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24502 self.p_next = p_next.cast_const();
24503 }
24504
24505 fn address(&mut self) -> *mut std::ffi::c_void {
24506 std::ptr::from_mut(self).cast()
24507 }
24508}
24509
24510impl<'a, 'root> crate::Extends<vk::ResolveImageInfo2<'root>> for vk::ResolveImageModeInfoKHR<'a> {}
24511
24512impl<'a> crate::construction::sealed::ChainNode for vk::DeviceAddressBindingCallbackDataEXT<'a> {
24513 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT;
24514
24515 fn s_type(&self) -> vk::StructureType {
24516 self.s_type
24517 }
24518
24519 fn p_next(&self) -> *const std::ffi::c_void {
24520 self.p_next.cast_const()
24521 }
24522
24523 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24524 self.p_next = p_next;
24525 }
24526
24527 fn address(&mut self) -> *mut std::ffi::c_void {
24528 std::ptr::from_mut(self).cast()
24529 }
24530}
24531
24532impl<'a, 'root> crate::Extends<vk::DebugUtilsMessengerCallbackDataEXT<'root>>
24533 for vk::DeviceAddressBindingCallbackDataEXT<'a>
24534{
24535}
24536
24537impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceOpticalFlowFeaturesNV<'a> {
24538 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV;
24539
24540 fn s_type(&self) -> vk::StructureType {
24541 self.s_type
24542 }
24543
24544 fn p_next(&self) -> *const std::ffi::c_void {
24545 self.p_next.cast_const()
24546 }
24547
24548 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24549 self.p_next = p_next;
24550 }
24551
24552 fn address(&mut self) -> *mut std::ffi::c_void {
24553 std::ptr::from_mut(self).cast()
24554 }
24555}
24556
24557impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24558 for vk::PhysicalDeviceOpticalFlowFeaturesNV<'a>
24559{
24560}
24561
24562impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24563 for vk::PhysicalDeviceOpticalFlowFeaturesNV<'a>
24564{
24565}
24566
24567impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceOpticalFlowPropertiesNV<'a> {
24568 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV;
24569
24570 fn s_type(&self) -> vk::StructureType {
24571 self.s_type
24572 }
24573
24574 fn p_next(&self) -> *const std::ffi::c_void {
24575 self.p_next.cast_const()
24576 }
24577
24578 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24579 self.p_next = p_next;
24580 }
24581
24582 fn address(&mut self) -> *mut std::ffi::c_void {
24583 std::ptr::from_mut(self).cast()
24584 }
24585}
24586
24587impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
24588 for vk::PhysicalDeviceOpticalFlowPropertiesNV<'a>
24589{
24590}
24591
24592impl<'a> crate::construction::sealed::ChainNode for vk::OpticalFlowImageFormatInfoNV<'a> {
24593 const S_TYPE: vk::StructureType = vk::StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV;
24594
24595 fn s_type(&self) -> vk::StructureType {
24596 self.s_type
24597 }
24598
24599 fn p_next(&self) -> *const std::ffi::c_void {
24600 self.p_next
24601 }
24602
24603 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24604 self.p_next = p_next.cast_const();
24605 }
24606
24607 fn address(&mut self) -> *mut std::ffi::c_void {
24608 std::ptr::from_mut(self).cast()
24609 }
24610}
24611
24612impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
24613 for vk::OpticalFlowImageFormatInfoNV<'a>
24614{
24615}
24616
24617impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
24618 for vk::OpticalFlowImageFormatInfoNV<'a>
24619{
24620}
24621
24622impl<'a> crate::construction::sealed::ChainNode for vk::OpticalFlowImageFormatPropertiesNV<'a> {
24623 const S_TYPE: vk::StructureType = vk::StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV;
24624
24625 fn s_type(&self) -> vk::StructureType {
24626 self.s_type
24627 }
24628
24629 fn p_next(&self) -> *const std::ffi::c_void {
24630 self.p_next.cast_const()
24631 }
24632
24633 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24634 self.p_next = p_next;
24635 }
24636
24637 fn address(&mut self) -> *mut std::ffi::c_void {
24638 std::ptr::from_mut(self).cast()
24639 }
24640}
24641
24642impl<'a> crate::construction::sealed::ChainNode for vk::OpticalFlowSessionCreateInfoNV<'a> {
24643 const S_TYPE: vk::StructureType = vk::StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV;
24644
24645 fn s_type(&self) -> vk::StructureType {
24646 self.s_type
24647 }
24648
24649 fn p_next(&self) -> *const std::ffi::c_void {
24650 self.p_next.cast_const()
24651 }
24652
24653 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24654 self.p_next = p_next;
24655 }
24656
24657 fn address(&mut self) -> *mut std::ffi::c_void {
24658 std::ptr::from_mut(self).cast()
24659 }
24660}
24661
24662impl<'a> crate::construction::sealed::ChainNode
24663 for vk::OpticalFlowSessionCreatePrivateDataInfoNV<'a>
24664{
24665 const S_TYPE: vk::StructureType =
24666 vk::StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV;
24667
24668 fn s_type(&self) -> vk::StructureType {
24669 self.s_type
24670 }
24671
24672 fn p_next(&self) -> *const std::ffi::c_void {
24673 self.p_next.cast_const()
24674 }
24675
24676 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24677 self.p_next = p_next;
24678 }
24679
24680 fn address(&mut self) -> *mut std::ffi::c_void {
24681 std::ptr::from_mut(self).cast()
24682 }
24683}
24684
24685impl<'a, 'root> crate::Extends<vk::OpticalFlowSessionCreateInfoNV<'root>>
24686 for vk::OpticalFlowSessionCreatePrivateDataInfoNV<'a>
24687{
24688}
24689
24690impl<'a> crate::construction::sealed::ChainNode for vk::OpticalFlowExecuteInfoNV<'a> {
24691 const S_TYPE: vk::StructureType = vk::StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV;
24692
24693 fn s_type(&self) -> vk::StructureType {
24694 self.s_type
24695 }
24696
24697 fn p_next(&self) -> *const std::ffi::c_void {
24698 self.p_next.cast_const()
24699 }
24700
24701 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24702 self.p_next = p_next;
24703 }
24704
24705 fn address(&mut self) -> *mut std::ffi::c_void {
24706 std::ptr::from_mut(self).cast()
24707 }
24708}
24709
24710impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFaultFeaturesEXT<'a> {
24711 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT;
24712
24713 fn s_type(&self) -> vk::StructureType {
24714 self.s_type
24715 }
24716
24717 fn p_next(&self) -> *const std::ffi::c_void {
24718 self.p_next.cast_const()
24719 }
24720
24721 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24722 self.p_next = p_next;
24723 }
24724
24725 fn address(&mut self) -> *mut std::ffi::c_void {
24726 std::ptr::from_mut(self).cast()
24727 }
24728}
24729
24730impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24731 for vk::PhysicalDeviceFaultFeaturesEXT<'a>
24732{
24733}
24734
24735impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24736 for vk::PhysicalDeviceFaultFeaturesEXT<'a>
24737{
24738}
24739
24740impl<'a> crate::construction::sealed::ChainNode for vk::DeviceFaultInfoKHR<'a> {
24741 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_FAULT_INFO_KHR;
24742
24743 fn s_type(&self) -> vk::StructureType {
24744 self.s_type
24745 }
24746
24747 fn p_next(&self) -> *const std::ffi::c_void {
24748 self.p_next.cast_const()
24749 }
24750
24751 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24752 self.p_next = p_next;
24753 }
24754
24755 fn address(&mut self) -> *mut std::ffi::c_void {
24756 std::ptr::from_mut(self).cast()
24757 }
24758}
24759
24760impl<'a> crate::construction::sealed::ChainNode for vk::DeviceFaultDebugInfoKHR<'a> {
24761 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_FAULT_DEBUG_INFO_KHR;
24762
24763 fn s_type(&self) -> vk::StructureType {
24764 self.s_type
24765 }
24766
24767 fn p_next(&self) -> *const std::ffi::c_void {
24768 self.p_next.cast_const()
24769 }
24770
24771 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24772 self.p_next = p_next;
24773 }
24774
24775 fn address(&mut self) -> *mut std::ffi::c_void {
24776 std::ptr::from_mut(self).cast()
24777 }
24778}
24779
24780impl<'a> crate::construction::sealed::ChainNode for vk::DeviceFaultCountsEXT<'a> {
24781 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_FAULT_COUNTS_EXT;
24782
24783 fn s_type(&self) -> vk::StructureType {
24784 self.s_type
24785 }
24786
24787 fn p_next(&self) -> *const std::ffi::c_void {
24788 self.p_next.cast_const()
24789 }
24790
24791 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24792 self.p_next = p_next;
24793 }
24794
24795 fn address(&mut self) -> *mut std::ffi::c_void {
24796 std::ptr::from_mut(self).cast()
24797 }
24798}
24799
24800impl<'a> crate::construction::sealed::ChainNode for vk::DeviceFaultInfoEXT<'a> {
24801 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_FAULT_INFO_EXT;
24802
24803 fn s_type(&self) -> vk::StructureType {
24804 self.s_type
24805 }
24806
24807 fn p_next(&self) -> *const std::ffi::c_void {
24808 self.p_next.cast_const()
24809 }
24810
24811 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24812 self.p_next = p_next;
24813 }
24814
24815 fn address(&mut self) -> *mut std::ffi::c_void {
24816 std::ptr::from_mut(self).cast()
24817 }
24818}
24819
24820impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFaultFeaturesKHR<'a> {
24821 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_KHR;
24822
24823 fn s_type(&self) -> vk::StructureType {
24824 self.s_type
24825 }
24826
24827 fn p_next(&self) -> *const std::ffi::c_void {
24828 self.p_next.cast_const()
24829 }
24830
24831 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24832 self.p_next = p_next;
24833 }
24834
24835 fn address(&mut self) -> *mut std::ffi::c_void {
24836 std::ptr::from_mut(self).cast()
24837 }
24838}
24839
24840impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24841 for vk::PhysicalDeviceFaultFeaturesKHR<'a>
24842{
24843}
24844
24845impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24846 for vk::PhysicalDeviceFaultFeaturesKHR<'a>
24847{
24848}
24849
24850impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFaultPropertiesKHR<'a> {
24851 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR;
24852
24853 fn s_type(&self) -> vk::StructureType {
24854 self.s_type
24855 }
24856
24857 fn p_next(&self) -> *const std::ffi::c_void {
24858 self.p_next.cast_const()
24859 }
24860
24861 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24862 self.p_next = p_next;
24863 }
24864
24865 fn address(&mut self) -> *mut std::ffi::c_void {
24866 std::ptr::from_mut(self).cast()
24867 }
24868}
24869
24870impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
24871 for vk::PhysicalDeviceFaultPropertiesKHR<'a>
24872{
24873}
24874
24875impl<'a> crate::construction::sealed::ChainNode
24876 for vk::PhysicalDevicePipelineLibraryGroupHandlesFeaturesKHR<'a>
24877{
24878 const S_TYPE: vk::StructureType =
24879 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_KHR;
24880
24881 fn s_type(&self) -> vk::StructureType {
24882 self.s_type
24883 }
24884
24885 fn p_next(&self) -> *const std::ffi::c_void {
24886 self.p_next.cast_const()
24887 }
24888
24889 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24890 self.p_next = p_next;
24891 }
24892
24893 fn address(&mut self) -> *mut std::ffi::c_void {
24894 std::ptr::from_mut(self).cast()
24895 }
24896}
24897
24898impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
24899 for vk::PhysicalDevicePipelineLibraryGroupHandlesFeaturesKHR<'a>
24900{
24901}
24902
24903impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
24904 for vk::PhysicalDevicePipelineLibraryGroupHandlesFeaturesKHR<'a>
24905{
24906}
24907
24908impl<'a> crate::construction::sealed::ChainNode for vk::DepthBiasInfoEXT<'a> {
24909 const S_TYPE: vk::StructureType = vk::StructureType::DEPTH_BIAS_INFO_EXT;
24910
24911 fn s_type(&self) -> vk::StructureType {
24912 self.s_type
24913 }
24914
24915 fn p_next(&self) -> *const std::ffi::c_void {
24916 self.p_next
24917 }
24918
24919 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24920 self.p_next = p_next.cast_const();
24921 }
24922
24923 fn address(&mut self) -> *mut std::ffi::c_void {
24924 std::ptr::from_mut(self).cast()
24925 }
24926}
24927
24928impl<'a> crate::construction::sealed::ChainNode for vk::DepthBiasRepresentationInfoEXT<'a> {
24929 const S_TYPE: vk::StructureType = vk::StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT;
24930
24931 fn s_type(&self) -> vk::StructureType {
24932 self.s_type
24933 }
24934
24935 fn p_next(&self) -> *const std::ffi::c_void {
24936 self.p_next
24937 }
24938
24939 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24940 self.p_next = p_next.cast_const();
24941 }
24942
24943 fn address(&mut self) -> *mut std::ffi::c_void {
24944 std::ptr::from_mut(self).cast()
24945 }
24946}
24947
24948impl<'a, 'root> crate::Extends<vk::DepthBiasInfoEXT<'root>>
24949 for vk::DepthBiasRepresentationInfoEXT<'a>
24950{
24951}
24952
24953impl<'a, 'root> crate::Extends<vk::PipelineRasterizationStateCreateInfo<'root>>
24954 for vk::DepthBiasRepresentationInfoEXT<'a>
24955{
24956}
24957
24958impl<'a> crate::construction::sealed::ChainNode for vk::DecompressMemoryInfoEXT<'a> {
24959 const S_TYPE: vk::StructureType = vk::StructureType::DECOMPRESS_MEMORY_INFO_EXT;
24960
24961 fn s_type(&self) -> vk::StructureType {
24962 self.s_type
24963 }
24964
24965 fn p_next(&self) -> *const std::ffi::c_void {
24966 self.p_next
24967 }
24968
24969 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24970 self.p_next = p_next.cast_const();
24971 }
24972
24973 fn address(&mut self) -> *mut std::ffi::c_void {
24974 std::ptr::from_mut(self).cast()
24975 }
24976}
24977
24978impl<'a> crate::construction::sealed::ChainNode
24979 for vk::PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a>
24980{
24981 const S_TYPE: vk::StructureType =
24982 vk::StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM;
24983
24984 fn s_type(&self) -> vk::StructureType {
24985 self.s_type
24986 }
24987
24988 fn p_next(&self) -> *const std::ffi::c_void {
24989 self.p_next.cast_const()
24990 }
24991
24992 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
24993 self.p_next = p_next;
24994 }
24995
24996 fn address(&mut self) -> *mut std::ffi::c_void {
24997 std::ptr::from_mut(self).cast()
24998 }
24999}
25000
25001impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
25002 for vk::PhysicalDeviceShaderCoreBuiltinsPropertiesARM<'a>
25003{
25004}
25005
25006impl<'a> crate::construction::sealed::ChainNode
25007 for vk::PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a>
25008{
25009 const S_TYPE: vk::StructureType =
25010 vk::StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM;
25011
25012 fn s_type(&self) -> vk::StructureType {
25013 self.s_type
25014 }
25015
25016 fn p_next(&self) -> *const std::ffi::c_void {
25017 self.p_next.cast_const()
25018 }
25019
25020 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25021 self.p_next = p_next;
25022 }
25023
25024 fn address(&mut self) -> *mut std::ffi::c_void {
25025 std::ptr::from_mut(self).cast()
25026 }
25027}
25028
25029impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25030 for vk::PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a>
25031{
25032}
25033
25034impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25035 for vk::PhysicalDeviceShaderCoreBuiltinsFeaturesARM<'a>
25036{
25037}
25038
25039impl<'a> crate::construction::sealed::ChainNode for vk::FrameBoundaryEXT<'a> {
25040 const S_TYPE: vk::StructureType = vk::StructureType::FRAME_BOUNDARY_EXT;
25041
25042 fn s_type(&self) -> vk::StructureType {
25043 self.s_type
25044 }
25045
25046 fn p_next(&self) -> *const std::ffi::c_void {
25047 self.p_next
25048 }
25049
25050 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25051 self.p_next = p_next.cast_const();
25052 }
25053
25054 fn address(&mut self) -> *mut std::ffi::c_void {
25055 std::ptr::from_mut(self).cast()
25056 }
25057}
25058
25059impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::FrameBoundaryEXT<'a> {}
25060
25061impl<'a, 'root> crate::Extends<vk::SubmitInfo2<'root>> for vk::FrameBoundaryEXT<'a> {}
25062
25063impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::FrameBoundaryEXT<'a> {}
25064
25065impl<'a, 'root> crate::Extends<vk::BindSparseInfo<'root>> for vk::FrameBoundaryEXT<'a> {}
25066
25067impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFrameBoundaryFeaturesEXT<'a> {
25068 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT;
25069
25070 fn s_type(&self) -> vk::StructureType {
25071 self.s_type
25072 }
25073
25074 fn p_next(&self) -> *const std::ffi::c_void {
25075 self.p_next.cast_const()
25076 }
25077
25078 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25079 self.p_next = p_next;
25080 }
25081
25082 fn address(&mut self) -> *mut std::ffi::c_void {
25083 std::ptr::from_mut(self).cast()
25084 }
25085}
25086
25087impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25088 for vk::PhysicalDeviceFrameBoundaryFeaturesEXT<'a>
25089{
25090}
25091
25092impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25093 for vk::PhysicalDeviceFrameBoundaryFeaturesEXT<'a>
25094{
25095}
25096
25097impl<'a> crate::construction::sealed::ChainNode
25098 for vk::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a>
25099{
25100 const S_TYPE: vk::StructureType =
25101 vk::StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT;
25102
25103 fn s_type(&self) -> vk::StructureType {
25104 self.s_type
25105 }
25106
25107 fn p_next(&self) -> *const std::ffi::c_void {
25108 self.p_next.cast_const()
25109 }
25110
25111 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25112 self.p_next = p_next;
25113 }
25114
25115 fn address(&mut self) -> *mut std::ffi::c_void {
25116 std::ptr::from_mut(self).cast()
25117 }
25118}
25119
25120impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25121 for vk::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a>
25122{
25123}
25124
25125impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25126 for vk::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT<'a>
25127{
25128}
25129
25130impl<'a> crate::construction::sealed::ChainNode
25131 for vk::PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR<'a>
25132{
25133 const S_TYPE: vk::StructureType =
25134 vk::StructureType::PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR;
25135
25136 fn s_type(&self) -> vk::StructureType {
25137 self.s_type
25138 }
25139
25140 fn p_next(&self) -> *const std::ffi::c_void {
25141 self.p_next.cast_const()
25142 }
25143
25144 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25145 self.p_next = p_next;
25146 }
25147
25148 fn address(&mut self) -> *mut std::ffi::c_void {
25149 std::ptr::from_mut(self).cast()
25150 }
25151}
25152
25153impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25154 for vk::PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR<'a>
25155{
25156}
25157
25158impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25159 for vk::PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR<'a>
25160{
25161}
25162
25163impl<'a> crate::construction::sealed::ChainNode for vk::SurfacePresentModeKHR<'a> {
25164 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_PRESENT_MODE_KHR;
25165
25166 fn s_type(&self) -> vk::StructureType {
25167 self.s_type
25168 }
25169
25170 fn p_next(&self) -> *const std::ffi::c_void {
25171 self.p_next.cast_const()
25172 }
25173
25174 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25175 self.p_next = p_next;
25176 }
25177
25178 fn address(&mut self) -> *mut std::ffi::c_void {
25179 std::ptr::from_mut(self).cast()
25180 }
25181}
25182
25183impl<'a, 'root> crate::Extends<vk::PhysicalDeviceSurfaceInfo2KHR<'root>>
25184 for vk::SurfacePresentModeKHR<'a>
25185{
25186}
25187
25188impl<'a> crate::construction::sealed::ChainNode for vk::SurfacePresentScalingCapabilitiesKHR<'a> {
25189 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR;
25190
25191 fn s_type(&self) -> vk::StructureType {
25192 self.s_type
25193 }
25194
25195 fn p_next(&self) -> *const std::ffi::c_void {
25196 self.p_next.cast_const()
25197 }
25198
25199 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25200 self.p_next = p_next;
25201 }
25202
25203 fn address(&mut self) -> *mut std::ffi::c_void {
25204 std::ptr::from_mut(self).cast()
25205 }
25206}
25207
25208impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
25209 for vk::SurfacePresentScalingCapabilitiesKHR<'a>
25210{
25211}
25212
25213impl<'a> crate::construction::sealed::ChainNode for vk::SurfacePresentModeCompatibilityKHR<'a> {
25214 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR;
25215
25216 fn s_type(&self) -> vk::StructureType {
25217 self.s_type
25218 }
25219
25220 fn p_next(&self) -> *const std::ffi::c_void {
25221 self.p_next.cast_const()
25222 }
25223
25224 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25225 self.p_next = p_next;
25226 }
25227
25228 fn address(&mut self) -> *mut std::ffi::c_void {
25229 std::ptr::from_mut(self).cast()
25230 }
25231}
25232
25233impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
25234 for vk::SurfacePresentModeCompatibilityKHR<'a>
25235{
25236}
25237
25238impl<'a> crate::construction::sealed::ChainNode
25239 for vk::PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a>
25240{
25241 const S_TYPE: vk::StructureType =
25242 vk::StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR;
25243
25244 fn s_type(&self) -> vk::StructureType {
25245 self.s_type
25246 }
25247
25248 fn p_next(&self) -> *const std::ffi::c_void {
25249 self.p_next.cast_const()
25250 }
25251
25252 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25253 self.p_next = p_next;
25254 }
25255
25256 fn address(&mut self) -> *mut std::ffi::c_void {
25257 std::ptr::from_mut(self).cast()
25258 }
25259}
25260
25261impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25262 for vk::PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a>
25263{
25264}
25265
25266impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25267 for vk::PhysicalDeviceSwapchainMaintenance1FeaturesKHR<'a>
25268{
25269}
25270
25271impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainPresentFenceInfoKHR<'a> {
25272 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_KHR;
25273
25274 fn s_type(&self) -> vk::StructureType {
25275 self.s_type
25276 }
25277
25278 fn p_next(&self) -> *const std::ffi::c_void {
25279 self.p_next
25280 }
25281
25282 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25283 self.p_next = p_next.cast_const();
25284 }
25285
25286 fn address(&mut self) -> *mut std::ffi::c_void {
25287 std::ptr::from_mut(self).cast()
25288 }
25289}
25290
25291impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::SwapchainPresentFenceInfoKHR<'a> {}
25292
25293impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainPresentModesCreateInfoKHR<'a> {
25294 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR;
25295
25296 fn s_type(&self) -> vk::StructureType {
25297 self.s_type
25298 }
25299
25300 fn p_next(&self) -> *const std::ffi::c_void {
25301 self.p_next
25302 }
25303
25304 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25305 self.p_next = p_next.cast_const();
25306 }
25307
25308 fn address(&mut self) -> *mut std::ffi::c_void {
25309 std::ptr::from_mut(self).cast()
25310 }
25311}
25312
25313impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
25314 for vk::SwapchainPresentModesCreateInfoKHR<'a>
25315{
25316}
25317
25318impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainPresentModeInfoKHR<'a> {
25319 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_PRESENT_MODE_INFO_KHR;
25320
25321 fn s_type(&self) -> vk::StructureType {
25322 self.s_type
25323 }
25324
25325 fn p_next(&self) -> *const std::ffi::c_void {
25326 self.p_next
25327 }
25328
25329 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25330 self.p_next = p_next.cast_const();
25331 }
25332
25333 fn address(&mut self) -> *mut std::ffi::c_void {
25334 std::ptr::from_mut(self).cast()
25335 }
25336}
25337
25338impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::SwapchainPresentModeInfoKHR<'a> {}
25339
25340impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainPresentScalingCreateInfoKHR<'a> {
25341 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR;
25342
25343 fn s_type(&self) -> vk::StructureType {
25344 self.s_type
25345 }
25346
25347 fn p_next(&self) -> *const std::ffi::c_void {
25348 self.p_next
25349 }
25350
25351 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25352 self.p_next = p_next.cast_const();
25353 }
25354
25355 fn address(&mut self) -> *mut std::ffi::c_void {
25356 std::ptr::from_mut(self).cast()
25357 }
25358}
25359
25360impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
25361 for vk::SwapchainPresentScalingCreateInfoKHR<'a>
25362{
25363}
25364
25365impl<'a> crate::construction::sealed::ChainNode for vk::ReleaseSwapchainImagesInfoKHR<'a> {
25366 const S_TYPE: vk::StructureType = vk::StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR;
25367
25368 fn s_type(&self) -> vk::StructureType {
25369 self.s_type
25370 }
25371
25372 fn p_next(&self) -> *const std::ffi::c_void {
25373 self.p_next
25374 }
25375
25376 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25377 self.p_next = p_next.cast_const();
25378 }
25379
25380 fn address(&mut self) -> *mut std::ffi::c_void {
25381 std::ptr::from_mut(self).cast()
25382 }
25383}
25384
25385impl<'a> crate::construction::sealed::ChainNode
25386 for vk::PhysicalDeviceDepthBiasControlFeaturesEXT<'a>
25387{
25388 const S_TYPE: vk::StructureType =
25389 vk::StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT;
25390
25391 fn s_type(&self) -> vk::StructureType {
25392 self.s_type
25393 }
25394
25395 fn p_next(&self) -> *const std::ffi::c_void {
25396 self.p_next.cast_const()
25397 }
25398
25399 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25400 self.p_next = p_next;
25401 }
25402
25403 fn address(&mut self) -> *mut std::ffi::c_void {
25404 std::ptr::from_mut(self).cast()
25405 }
25406}
25407
25408impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25409 for vk::PhysicalDeviceDepthBiasControlFeaturesEXT<'a>
25410{
25411}
25412
25413impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25414 for vk::PhysicalDeviceDepthBiasControlFeaturesEXT<'a>
25415{
25416}
25417
25418impl<'a> crate::construction::sealed::ChainNode
25419 for vk::PhysicalDeviceRayTracingInvocationReorderFeaturesEXT<'a>
25420{
25421 const S_TYPE: vk::StructureType =
25422 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT;
25423
25424 fn s_type(&self) -> vk::StructureType {
25425 self.s_type
25426 }
25427
25428 fn p_next(&self) -> *const std::ffi::c_void {
25429 self.p_next.cast_const()
25430 }
25431
25432 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25433 self.p_next = p_next;
25434 }
25435
25436 fn address(&mut self) -> *mut std::ffi::c_void {
25437 std::ptr::from_mut(self).cast()
25438 }
25439}
25440
25441impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25442 for vk::PhysicalDeviceRayTracingInvocationReorderFeaturesEXT<'a>
25443{
25444}
25445
25446impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25447 for vk::PhysicalDeviceRayTracingInvocationReorderFeaturesEXT<'a>
25448{
25449}
25450
25451impl<'a> crate::construction::sealed::ChainNode
25452 for vk::PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a>
25453{
25454 const S_TYPE: vk::StructureType =
25455 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV;
25456
25457 fn s_type(&self) -> vk::StructureType {
25458 self.s_type
25459 }
25460
25461 fn p_next(&self) -> *const std::ffi::c_void {
25462 self.p_next.cast_const()
25463 }
25464
25465 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25466 self.p_next = p_next;
25467 }
25468
25469 fn address(&mut self) -> *mut std::ffi::c_void {
25470 std::ptr::from_mut(self).cast()
25471 }
25472}
25473
25474impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25475 for vk::PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a>
25476{
25477}
25478
25479impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25480 for vk::PhysicalDeviceRayTracingInvocationReorderFeaturesNV<'a>
25481{
25482}
25483
25484impl<'a> crate::construction::sealed::ChainNode
25485 for vk::PhysicalDeviceRayTracingInvocationReorderPropertiesEXT<'a>
25486{
25487 const S_TYPE: vk::StructureType =
25488 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT;
25489
25490 fn s_type(&self) -> vk::StructureType {
25491 self.s_type
25492 }
25493
25494 fn p_next(&self) -> *const std::ffi::c_void {
25495 self.p_next.cast_const()
25496 }
25497
25498 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25499 self.p_next = p_next;
25500 }
25501
25502 fn address(&mut self) -> *mut std::ffi::c_void {
25503 std::ptr::from_mut(self).cast()
25504 }
25505}
25506
25507impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
25508 for vk::PhysicalDeviceRayTracingInvocationReorderPropertiesEXT<'a>
25509{
25510}
25511
25512impl<'a> crate::construction::sealed::ChainNode
25513 for vk::PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a>
25514{
25515 const S_TYPE: vk::StructureType =
25516 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV;
25517
25518 fn s_type(&self) -> vk::StructureType {
25519 self.s_type
25520 }
25521
25522 fn p_next(&self) -> *const std::ffi::c_void {
25523 self.p_next.cast_const()
25524 }
25525
25526 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25527 self.p_next = p_next;
25528 }
25529
25530 fn address(&mut self) -> *mut std::ffi::c_void {
25531 std::ptr::from_mut(self).cast()
25532 }
25533}
25534
25535impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
25536 for vk::PhysicalDeviceRayTracingInvocationReorderPropertiesNV<'a>
25537{
25538}
25539
25540impl<'a> crate::construction::sealed::ChainNode
25541 for vk::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a>
25542{
25543 const S_TYPE: vk::StructureType =
25544 vk::StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV;
25545
25546 fn s_type(&self) -> vk::StructureType {
25547 self.s_type
25548 }
25549
25550 fn p_next(&self) -> *const std::ffi::c_void {
25551 self.p_next.cast_const()
25552 }
25553
25554 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25555 self.p_next = p_next;
25556 }
25557
25558 fn address(&mut self) -> *mut std::ffi::c_void {
25559 std::ptr::from_mut(self).cast()
25560 }
25561}
25562
25563impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25564 for vk::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a>
25565{
25566}
25567
25568impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25569 for vk::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<'a>
25570{
25571}
25572
25573impl<'a> crate::construction::sealed::ChainNode
25574 for vk::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a>
25575{
25576 const S_TYPE: vk::StructureType =
25577 vk::StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV;
25578
25579 fn s_type(&self) -> vk::StructureType {
25580 self.s_type
25581 }
25582
25583 fn p_next(&self) -> *const std::ffi::c_void {
25584 self.p_next.cast_const()
25585 }
25586
25587 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25588 self.p_next = p_next;
25589 }
25590
25591 fn address(&mut self) -> *mut std::ffi::c_void {
25592 std::ptr::from_mut(self).cast()
25593 }
25594}
25595
25596impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
25597 for vk::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV<'a>
25598{
25599}
25600
25601impl<'a> crate::construction::sealed::ChainNode for vk::DirectDriverLoadingInfoLUNARG<'a> {
25602 const S_TYPE: vk::StructureType = vk::StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG;
25603
25604 fn s_type(&self) -> vk::StructureType {
25605 self.s_type
25606 }
25607
25608 fn p_next(&self) -> *const std::ffi::c_void {
25609 self.p_next.cast_const()
25610 }
25611
25612 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25613 self.p_next = p_next;
25614 }
25615
25616 fn address(&mut self) -> *mut std::ffi::c_void {
25617 std::ptr::from_mut(self).cast()
25618 }
25619}
25620
25621impl<'a> crate::construction::sealed::ChainNode for vk::DirectDriverLoadingListLUNARG<'a> {
25622 const S_TYPE: vk::StructureType = vk::StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG;
25623
25624 fn s_type(&self) -> vk::StructureType {
25625 self.s_type
25626 }
25627
25628 fn p_next(&self) -> *const std::ffi::c_void {
25629 self.p_next
25630 }
25631
25632 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25633 self.p_next = p_next.cast_const();
25634 }
25635
25636 fn address(&mut self) -> *mut std::ffi::c_void {
25637 std::ptr::from_mut(self).cast()
25638 }
25639}
25640
25641impl<'a, 'root> crate::Extends<vk::InstanceCreateInfo<'root>>
25642 for vk::DirectDriverLoadingListLUNARG<'a>
25643{
25644}
25645
25646impl<'a> crate::construction::sealed::ChainNode
25647 for vk::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a>
25648{
25649 const S_TYPE: vk::StructureType =
25650 vk::StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM;
25651
25652 fn s_type(&self) -> vk::StructureType {
25653 self.s_type
25654 }
25655
25656 fn p_next(&self) -> *const std::ffi::c_void {
25657 self.p_next.cast_const()
25658 }
25659
25660 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25661 self.p_next = p_next;
25662 }
25663
25664 fn address(&mut self) -> *mut std::ffi::c_void {
25665 std::ptr::from_mut(self).cast()
25666 }
25667}
25668
25669impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25670 for vk::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a>
25671{
25672}
25673
25674impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25675 for vk::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM<'a>
25676{
25677}
25678
25679impl<'a> crate::construction::sealed::ChainNode
25680 for vk::PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a>
25681{
25682 const S_TYPE: vk::StructureType =
25683 vk::StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR;
25684
25685 fn s_type(&self) -> vk::StructureType {
25686 self.s_type
25687 }
25688
25689 fn p_next(&self) -> *const std::ffi::c_void {
25690 self.p_next.cast_const()
25691 }
25692
25693 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25694 self.p_next = p_next;
25695 }
25696
25697 fn address(&mut self) -> *mut std::ffi::c_void {
25698 std::ptr::from_mut(self).cast()
25699 }
25700}
25701
25702impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25703 for vk::PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a>
25704{
25705}
25706
25707impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25708 for vk::PhysicalDeviceRayTracingPositionFetchFeaturesKHR<'a>
25709{
25710}
25711
25712impl<'a> crate::construction::sealed::ChainNode for vk::DeviceImageSubresourceInfo<'a> {
25713 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_IMAGE_SUBRESOURCE_INFO;
25714
25715 fn s_type(&self) -> vk::StructureType {
25716 self.s_type
25717 }
25718
25719 fn p_next(&self) -> *const std::ffi::c_void {
25720 self.p_next
25721 }
25722
25723 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25724 self.p_next = p_next.cast_const();
25725 }
25726
25727 fn address(&mut self) -> *mut std::ffi::c_void {
25728 std::ptr::from_mut(self).cast()
25729 }
25730}
25731
25732impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderCorePropertiesARM<'a> {
25733 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM;
25734
25735 fn s_type(&self) -> vk::StructureType {
25736 self.s_type
25737 }
25738
25739 fn p_next(&self) -> *const std::ffi::c_void {
25740 self.p_next.cast_const()
25741 }
25742
25743 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25744 self.p_next = p_next;
25745 }
25746
25747 fn address(&mut self) -> *mut std::ffi::c_void {
25748 std::ptr::from_mut(self).cast()
25749 }
25750}
25751
25752impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
25753 for vk::PhysicalDeviceShaderCorePropertiesARM<'a>
25754{
25755}
25756
25757impl<'a> crate::construction::sealed::ChainNode
25758 for vk::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a>
25759{
25760 const S_TYPE: vk::StructureType =
25761 vk::StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM;
25762
25763 fn s_type(&self) -> vk::StructureType {
25764 self.s_type
25765 }
25766
25767 fn p_next(&self) -> *const std::ffi::c_void {
25768 self.p_next.cast_const()
25769 }
25770
25771 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25772 self.p_next = p_next;
25773 }
25774
25775 fn address(&mut self) -> *mut std::ffi::c_void {
25776 std::ptr::from_mut(self).cast()
25777 }
25778}
25779
25780impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25781 for vk::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a>
25782{
25783}
25784
25785impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25786 for vk::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM<'a>
25787{
25788}
25789
25790impl<'a> crate::construction::sealed::ChainNode
25791 for vk::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a>
25792{
25793 const S_TYPE: vk::StructureType =
25794 vk::StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM;
25795
25796 fn s_type(&self) -> vk::StructureType {
25797 self.s_type
25798 }
25799
25800 fn p_next(&self) -> *const std::ffi::c_void {
25801 self.p_next
25802 }
25803
25804 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25805 self.p_next = p_next.cast_const();
25806 }
25807
25808 fn address(&mut self) -> *mut std::ffi::c_void {
25809 std::ptr::from_mut(self).cast()
25810 }
25811}
25812
25813impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
25814 for vk::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a>
25815{
25816}
25817
25818impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
25819 for vk::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM<'a>
25820{
25821}
25822
25823impl<'a> crate::construction::sealed::ChainNode for vk::QueryLowLatencySupportNV<'a> {
25824 const S_TYPE: vk::StructureType = vk::StructureType::QUERY_LOW_LATENCY_SUPPORT_NV;
25825
25826 fn s_type(&self) -> vk::StructureType {
25827 self.s_type
25828 }
25829
25830 fn p_next(&self) -> *const std::ffi::c_void {
25831 self.p_next
25832 }
25833
25834 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25835 self.p_next = p_next.cast_const();
25836 }
25837
25838 fn address(&mut self) -> *mut std::ffi::c_void {
25839 std::ptr::from_mut(self).cast()
25840 }
25841}
25842
25843impl<'a, 'root> crate::Extends<vk::SemaphoreCreateInfo<'root>>
25844 for vk::QueryLowLatencySupportNV<'a>
25845{
25846}
25847
25848impl<'a> crate::construction::sealed::ChainNode for vk::MemoryMapInfo<'a> {
25849 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_MAP_INFO;
25850
25851 fn s_type(&self) -> vk::StructureType {
25852 self.s_type
25853 }
25854
25855 fn p_next(&self) -> *const std::ffi::c_void {
25856 self.p_next
25857 }
25858
25859 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25860 self.p_next = p_next.cast_const();
25861 }
25862
25863 fn address(&mut self) -> *mut std::ffi::c_void {
25864 std::ptr::from_mut(self).cast()
25865 }
25866}
25867
25868impl<'a> crate::construction::sealed::ChainNode for vk::MemoryUnmapInfo<'a> {
25869 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_UNMAP_INFO;
25870
25871 fn s_type(&self) -> vk::StructureType {
25872 self.s_type
25873 }
25874
25875 fn p_next(&self) -> *const std::ffi::c_void {
25876 self.p_next
25877 }
25878
25879 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25880 self.p_next = p_next.cast_const();
25881 }
25882
25883 fn address(&mut self) -> *mut std::ffi::c_void {
25884 std::ptr::from_mut(self).cast()
25885 }
25886}
25887
25888impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderObjectFeaturesEXT<'a> {
25889 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
25890
25891 fn s_type(&self) -> vk::StructureType {
25892 self.s_type
25893 }
25894
25895 fn p_next(&self) -> *const std::ffi::c_void {
25896 self.p_next.cast_const()
25897 }
25898
25899 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25900 self.p_next = p_next;
25901 }
25902
25903 fn address(&mut self) -> *mut std::ffi::c_void {
25904 std::ptr::from_mut(self).cast()
25905 }
25906}
25907
25908impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25909 for vk::PhysicalDeviceShaderObjectFeaturesEXT<'a>
25910{
25911}
25912
25913impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25914 for vk::PhysicalDeviceShaderObjectFeaturesEXT<'a>
25915{
25916}
25917
25918impl<'a> crate::construction::sealed::ChainNode
25919 for vk::PhysicalDeviceShaderObjectPropertiesEXT<'a>
25920{
25921 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT;
25922
25923 fn s_type(&self) -> vk::StructureType {
25924 self.s_type
25925 }
25926
25927 fn p_next(&self) -> *const std::ffi::c_void {
25928 self.p_next.cast_const()
25929 }
25930
25931 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25932 self.p_next = p_next;
25933 }
25934
25935 fn address(&mut self) -> *mut std::ffi::c_void {
25936 std::ptr::from_mut(self).cast()
25937 }
25938}
25939
25940impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
25941 for vk::PhysicalDeviceShaderObjectPropertiesEXT<'a>
25942{
25943}
25944
25945impl<'a> crate::construction::sealed::ChainNode for vk::ShaderCreateInfoEXT<'a> {
25946 const S_TYPE: vk::StructureType = vk::StructureType::SHADER_CREATE_INFO_EXT;
25947
25948 fn s_type(&self) -> vk::StructureType {
25949 self.s_type
25950 }
25951
25952 fn p_next(&self) -> *const std::ffi::c_void {
25953 self.p_next
25954 }
25955
25956 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25957 self.p_next = p_next.cast_const();
25958 }
25959
25960 fn address(&mut self) -> *mut std::ffi::c_void {
25961 std::ptr::from_mut(self).cast()
25962 }
25963}
25964
25965impl<'a> crate::construction::sealed::ChainNode
25966 for vk::PhysicalDeviceShaderTileImageFeaturesEXT<'a>
25967{
25968 const S_TYPE: vk::StructureType =
25969 vk::StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT;
25970
25971 fn s_type(&self) -> vk::StructureType {
25972 self.s_type
25973 }
25974
25975 fn p_next(&self) -> *const std::ffi::c_void {
25976 self.p_next.cast_const()
25977 }
25978
25979 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
25980 self.p_next = p_next;
25981 }
25982
25983 fn address(&mut self) -> *mut std::ffi::c_void {
25984 std::ptr::from_mut(self).cast()
25985 }
25986}
25987
25988impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
25989 for vk::PhysicalDeviceShaderTileImageFeaturesEXT<'a>
25990{
25991}
25992
25993impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
25994 for vk::PhysicalDeviceShaderTileImageFeaturesEXT<'a>
25995{
25996}
25997
25998impl<'a> crate::construction::sealed::ChainNode
25999 for vk::PhysicalDeviceShaderTileImagePropertiesEXT<'a>
26000{
26001 const S_TYPE: vk::StructureType =
26002 vk::StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT;
26003
26004 fn s_type(&self) -> vk::StructureType {
26005 self.s_type
26006 }
26007
26008 fn p_next(&self) -> *const std::ffi::c_void {
26009 self.p_next.cast_const()
26010 }
26011
26012 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26013 self.p_next = p_next;
26014 }
26015
26016 fn address(&mut self) -> *mut std::ffi::c_void {
26017 std::ptr::from_mut(self).cast()
26018 }
26019}
26020
26021impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
26022 for vk::PhysicalDeviceShaderTileImagePropertiesEXT<'a>
26023{
26024}
26025
26026#[cfg(feature = "platform-screen")]
26027impl<'a> crate::construction::sealed::ChainNode for vk::ImportScreenBufferInfoQNX<'a> {
26028 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX;
26029
26030 fn s_type(&self) -> vk::StructureType {
26031 self.s_type
26032 }
26033
26034 fn p_next(&self) -> *const std::ffi::c_void {
26035 self.p_next
26036 }
26037
26038 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26039 self.p_next = p_next.cast_const();
26040 }
26041
26042 fn address(&mut self) -> *mut std::ffi::c_void {
26043 std::ptr::from_mut(self).cast()
26044 }
26045}
26046
26047#[cfg(feature = "platform-screen")]
26048impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
26049 for vk::ImportScreenBufferInfoQNX<'a>
26050{
26051}
26052
26053#[cfg(feature = "platform-screen")]
26054impl<'a> crate::construction::sealed::ChainNode for vk::ScreenBufferPropertiesQNX<'a> {
26055 const S_TYPE: vk::StructureType = vk::StructureType::SCREEN_BUFFER_PROPERTIES_QNX;
26056
26057 fn s_type(&self) -> vk::StructureType {
26058 self.s_type
26059 }
26060
26061 fn p_next(&self) -> *const std::ffi::c_void {
26062 self.p_next.cast_const()
26063 }
26064
26065 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26066 self.p_next = p_next;
26067 }
26068
26069 fn address(&mut self) -> *mut std::ffi::c_void {
26070 std::ptr::from_mut(self).cast()
26071 }
26072}
26073
26074#[cfg(feature = "platform-screen")]
26075impl<'a> crate::construction::sealed::ChainNode for vk::ScreenBufferFormatPropertiesQNX<'a> {
26076 const S_TYPE: vk::StructureType = vk::StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX;
26077
26078 fn s_type(&self) -> vk::StructureType {
26079 self.s_type
26080 }
26081
26082 fn p_next(&self) -> *const std::ffi::c_void {
26083 self.p_next.cast_const()
26084 }
26085
26086 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26087 self.p_next = p_next;
26088 }
26089
26090 fn address(&mut self) -> *mut std::ffi::c_void {
26091 std::ptr::from_mut(self).cast()
26092 }
26093}
26094
26095#[cfg(feature = "platform-screen")]
26096impl<'a, 'root> crate::Extends<vk::ScreenBufferPropertiesQNX<'root>>
26097 for vk::ScreenBufferFormatPropertiesQNX<'a>
26098{
26099}
26100
26101#[cfg(feature = "platform-screen")]
26102impl<'a> crate::construction::sealed::ChainNode for vk::ExternalFormatQNX<'a> {
26103 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_FORMAT_QNX;
26104
26105 fn s_type(&self) -> vk::StructureType {
26106 self.s_type
26107 }
26108
26109 fn p_next(&self) -> *const std::ffi::c_void {
26110 self.p_next.cast_const()
26111 }
26112
26113 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26114 self.p_next = p_next;
26115 }
26116
26117 fn address(&mut self) -> *mut std::ffi::c_void {
26118 std::ptr::from_mut(self).cast()
26119 }
26120}
26121
26122#[cfg(feature = "platform-screen")]
26123impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ExternalFormatQNX<'a> {}
26124
26125#[cfg(feature = "platform-screen")]
26126impl<'a, 'root> crate::Extends<vk::SamplerYcbcrConversionCreateInfo<'root>>
26127 for vk::ExternalFormatQNX<'a>
26128{
26129}
26130
26131#[cfg(feature = "platform-screen")]
26132impl<'a> crate::construction::sealed::ChainNode
26133 for vk::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a>
26134{
26135 const S_TYPE: vk::StructureType =
26136 vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX;
26137
26138 fn s_type(&self) -> vk::StructureType {
26139 self.s_type
26140 }
26141
26142 fn p_next(&self) -> *const std::ffi::c_void {
26143 self.p_next.cast_const()
26144 }
26145
26146 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26147 self.p_next = p_next;
26148 }
26149
26150 fn address(&mut self) -> *mut std::ffi::c_void {
26151 std::ptr::from_mut(self).cast()
26152 }
26153}
26154
26155#[cfg(feature = "platform-screen")]
26156impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26157 for vk::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a>
26158{
26159}
26160
26161#[cfg(feature = "platform-screen")]
26162impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26163 for vk::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX<'a>
26164{
26165}
26166
26167impl<'a> crate::construction::sealed::ChainNode
26168 for vk::PhysicalDeviceCooperativeMatrixFeaturesKHR<'a>
26169{
26170 const S_TYPE: vk::StructureType =
26171 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR;
26172
26173 fn s_type(&self) -> vk::StructureType {
26174 self.s_type
26175 }
26176
26177 fn p_next(&self) -> *const std::ffi::c_void {
26178 self.p_next.cast_const()
26179 }
26180
26181 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26182 self.p_next = p_next;
26183 }
26184
26185 fn address(&mut self) -> *mut std::ffi::c_void {
26186 std::ptr::from_mut(self).cast()
26187 }
26188}
26189
26190impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26191 for vk::PhysicalDeviceCooperativeMatrixFeaturesKHR<'a>
26192{
26193}
26194
26195impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26196 for vk::PhysicalDeviceCooperativeMatrixFeaturesKHR<'a>
26197{
26198}
26199
26200impl<'a> crate::construction::sealed::ChainNode for vk::CooperativeMatrixPropertiesKHR<'a> {
26201 const S_TYPE: vk::StructureType = vk::StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR;
26202
26203 fn s_type(&self) -> vk::StructureType {
26204 self.s_type
26205 }
26206
26207 fn p_next(&self) -> *const std::ffi::c_void {
26208 self.p_next.cast_const()
26209 }
26210
26211 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26212 self.p_next = p_next;
26213 }
26214
26215 fn address(&mut self) -> *mut std::ffi::c_void {
26216 std::ptr::from_mut(self).cast()
26217 }
26218}
26219
26220impl<'a> crate::construction::sealed::ChainNode
26221 for vk::PhysicalDeviceCooperativeMatrixInfo2EXT<'a>
26222{
26223 const S_TYPE: vk::StructureType =
26224 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_INFO_2_EXT;
26225
26226 fn s_type(&self) -> vk::StructureType {
26227 self.s_type
26228 }
26229
26230 fn p_next(&self) -> *const std::ffi::c_void {
26231 self.p_next
26232 }
26233
26234 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26235 self.p_next = p_next.cast_const();
26236 }
26237
26238 fn address(&mut self) -> *mut std::ffi::c_void {
26239 std::ptr::from_mut(self).cast()
26240 }
26241}
26242
26243impl<'a> crate::construction::sealed::ChainNode for vk::CooperativeMatrixProperties2EXT<'a> {
26244 const S_TYPE: vk::StructureType = vk::StructureType::COOPERATIVE_MATRIX_PROPERTIES_2_EXT;
26245
26246 fn s_type(&self) -> vk::StructureType {
26247 self.s_type
26248 }
26249
26250 fn p_next(&self) -> *const std::ffi::c_void {
26251 self.p_next.cast_const()
26252 }
26253
26254 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26255 self.p_next = p_next;
26256 }
26257
26258 fn address(&mut self) -> *mut std::ffi::c_void {
26259 std::ptr::from_mut(self).cast()
26260 }
26261}
26262
26263impl<'a> crate::construction::sealed::ChainNode
26264 for vk::PhysicalDeviceCooperativeMatrixPropertiesKHR<'a>
26265{
26266 const S_TYPE: vk::StructureType =
26267 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR;
26268
26269 fn s_type(&self) -> vk::StructureType {
26270 self.s_type
26271 }
26272
26273 fn p_next(&self) -> *const std::ffi::c_void {
26274 self.p_next.cast_const()
26275 }
26276
26277 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26278 self.p_next = p_next;
26279 }
26280
26281 fn address(&mut self) -> *mut std::ffi::c_void {
26282 std::ptr::from_mut(self).cast()
26283 }
26284}
26285
26286impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
26287 for vk::PhysicalDeviceCooperativeMatrixPropertiesKHR<'a>
26288{
26289}
26290
26291impl<'a> crate::construction::sealed::ChainNode
26292 for vk::PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM<'a>
26293{
26294 const S_TYPE: vk::StructureType =
26295 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM;
26296
26297 fn s_type(&self) -> vk::StructureType {
26298 self.s_type
26299 }
26300
26301 fn p_next(&self) -> *const std::ffi::c_void {
26302 self.p_next.cast_const()
26303 }
26304
26305 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26306 self.p_next = p_next;
26307 }
26308
26309 fn address(&mut self) -> *mut std::ffi::c_void {
26310 std::ptr::from_mut(self).cast()
26311 }
26312}
26313
26314impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26315 for vk::PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM<'a>
26316{
26317}
26318
26319impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26320 for vk::PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM<'a>
26321{
26322}
26323
26324#[cfg(feature = "provisional")]
26325impl<'a> crate::construction::sealed::ChainNode
26326 for vk::PhysicalDeviceShaderEnqueuePropertiesAMDX<'a>
26327{
26328 const S_TYPE: vk::StructureType =
26329 vk::StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX;
26330
26331 fn s_type(&self) -> vk::StructureType {
26332 self.s_type
26333 }
26334
26335 fn p_next(&self) -> *const std::ffi::c_void {
26336 self.p_next.cast_const()
26337 }
26338
26339 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26340 self.p_next = p_next;
26341 }
26342
26343 fn address(&mut self) -> *mut std::ffi::c_void {
26344 std::ptr::from_mut(self).cast()
26345 }
26346}
26347
26348#[cfg(feature = "provisional")]
26349impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
26350 for vk::PhysicalDeviceShaderEnqueuePropertiesAMDX<'a>
26351{
26352}
26353
26354#[cfg(feature = "provisional")]
26355impl<'a> crate::construction::sealed::ChainNode
26356 for vk::PhysicalDeviceShaderEnqueueFeaturesAMDX<'a>
26357{
26358 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX;
26359
26360 fn s_type(&self) -> vk::StructureType {
26361 self.s_type
26362 }
26363
26364 fn p_next(&self) -> *const std::ffi::c_void {
26365 self.p_next.cast_const()
26366 }
26367
26368 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26369 self.p_next = p_next;
26370 }
26371
26372 fn address(&mut self) -> *mut std::ffi::c_void {
26373 std::ptr::from_mut(self).cast()
26374 }
26375}
26376
26377#[cfg(feature = "provisional")]
26378impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26379 for vk::PhysicalDeviceShaderEnqueueFeaturesAMDX<'a>
26380{
26381}
26382
26383#[cfg(feature = "provisional")]
26384impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26385 for vk::PhysicalDeviceShaderEnqueueFeaturesAMDX<'a>
26386{
26387}
26388
26389#[cfg(feature = "provisional")]
26390impl<'a> crate::construction::sealed::ChainNode for vk::ExecutionGraphPipelineCreateInfoAMDX<'a> {
26391 const S_TYPE: vk::StructureType = vk::StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX;
26392
26393 fn s_type(&self) -> vk::StructureType {
26394 self.s_type
26395 }
26396
26397 fn p_next(&self) -> *const std::ffi::c_void {
26398 self.p_next
26399 }
26400
26401 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26402 self.p_next = p_next.cast_const();
26403 }
26404
26405 fn address(&mut self) -> *mut std::ffi::c_void {
26406 std::ptr::from_mut(self).cast()
26407 }
26408}
26409
26410#[cfg(feature = "provisional")]
26411impl<'a, 'root> crate::Extends<vk::PipelineCreateInfoKHR<'root>>
26412 for vk::ExecutionGraphPipelineCreateInfoAMDX<'a>
26413{
26414}
26415
26416#[cfg(feature = "provisional")]
26417impl<'a> crate::construction::sealed::ChainNode for vk::PipelineShaderStageNodeCreateInfoAMDX<'a> {
26418 const S_TYPE: vk::StructureType = vk::StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX;
26419
26420 fn s_type(&self) -> vk::StructureType {
26421 self.s_type
26422 }
26423
26424 fn p_next(&self) -> *const std::ffi::c_void {
26425 self.p_next
26426 }
26427
26428 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26429 self.p_next = p_next.cast_const();
26430 }
26431
26432 fn address(&mut self) -> *mut std::ffi::c_void {
26433 std::ptr::from_mut(self).cast()
26434 }
26435}
26436
26437#[cfg(feature = "provisional")]
26438impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
26439 for vk::PipelineShaderStageNodeCreateInfoAMDX<'a>
26440{
26441}
26442
26443#[cfg(feature = "provisional")]
26444impl<'a> crate::construction::sealed::ChainNode for vk::ExecutionGraphPipelineScratchSizeAMDX<'a> {
26445 const S_TYPE: vk::StructureType = vk::StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX;
26446
26447 fn s_type(&self) -> vk::StructureType {
26448 self.s_type
26449 }
26450
26451 fn p_next(&self) -> *const std::ffi::c_void {
26452 self.p_next.cast_const()
26453 }
26454
26455 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26456 self.p_next = p_next;
26457 }
26458
26459 fn address(&mut self) -> *mut std::ffi::c_void {
26460 std::ptr::from_mut(self).cast()
26461 }
26462}
26463
26464impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceAntiLagFeaturesAMD<'a> {
26465 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD;
26466
26467 fn s_type(&self) -> vk::StructureType {
26468 self.s_type
26469 }
26470
26471 fn p_next(&self) -> *const std::ffi::c_void {
26472 self.p_next.cast_const()
26473 }
26474
26475 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26476 self.p_next = p_next;
26477 }
26478
26479 fn address(&mut self) -> *mut std::ffi::c_void {
26480 std::ptr::from_mut(self).cast()
26481 }
26482}
26483
26484impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26485 for vk::PhysicalDeviceAntiLagFeaturesAMD<'a>
26486{
26487}
26488
26489impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26490 for vk::PhysicalDeviceAntiLagFeaturesAMD<'a>
26491{
26492}
26493
26494impl<'a> crate::construction::sealed::ChainNode for vk::AntiLagDataAMD<'a> {
26495 const S_TYPE: vk::StructureType = vk::StructureType::ANTI_LAG_DATA_AMD;
26496
26497 fn s_type(&self) -> vk::StructureType {
26498 self.s_type
26499 }
26500
26501 fn p_next(&self) -> *const std::ffi::c_void {
26502 self.p_next
26503 }
26504
26505 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26506 self.p_next = p_next.cast_const();
26507 }
26508
26509 fn address(&mut self) -> *mut std::ffi::c_void {
26510 std::ptr::from_mut(self).cast()
26511 }
26512}
26513
26514impl<'a> crate::construction::sealed::ChainNode for vk::AntiLagPresentationInfoAMD<'a> {
26515 const S_TYPE: vk::StructureType = vk::StructureType::ANTI_LAG_PRESENTATION_INFO_AMD;
26516
26517 fn s_type(&self) -> vk::StructureType {
26518 self.s_type
26519 }
26520
26521 fn p_next(&self) -> *const std::ffi::c_void {
26522 self.p_next.cast_const()
26523 }
26524
26525 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26526 self.p_next = p_next;
26527 }
26528
26529 fn address(&mut self) -> *mut std::ffi::c_void {
26530 std::ptr::from_mut(self).cast()
26531 }
26532}
26533
26534impl<'a> crate::construction::sealed::ChainNode for vk::BindMemoryStatus<'a> {
26535 const S_TYPE: vk::StructureType = vk::StructureType::BIND_MEMORY_STATUS;
26536
26537 fn s_type(&self) -> vk::StructureType {
26538 self.s_type
26539 }
26540
26541 fn p_next(&self) -> *const std::ffi::c_void {
26542 self.p_next
26543 }
26544
26545 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26546 self.p_next = p_next.cast_const();
26547 }
26548
26549 fn address(&mut self) -> *mut std::ffi::c_void {
26550 std::ptr::from_mut(self).cast()
26551 }
26552}
26553
26554impl<'a, 'root> crate::Extends<vk::BindBufferMemoryInfo<'root>> for vk::BindMemoryStatus<'a> {}
26555
26556impl<'a, 'root> crate::Extends<vk::BindImageMemoryInfo<'root>> for vk::BindMemoryStatus<'a> {}
26557
26558impl<'a> crate::construction::sealed::ChainNode
26559 for vk::PhysicalDeviceTileMemoryHeapFeaturesQCOM<'a>
26560{
26561 const S_TYPE: vk::StructureType =
26562 vk::StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM;
26563
26564 fn s_type(&self) -> vk::StructureType {
26565 self.s_type
26566 }
26567
26568 fn p_next(&self) -> *const std::ffi::c_void {
26569 self.p_next.cast_const()
26570 }
26571
26572 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26573 self.p_next = p_next;
26574 }
26575
26576 fn address(&mut self) -> *mut std::ffi::c_void {
26577 std::ptr::from_mut(self).cast()
26578 }
26579}
26580
26581impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26582 for vk::PhysicalDeviceTileMemoryHeapFeaturesQCOM<'a>
26583{
26584}
26585
26586impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26587 for vk::PhysicalDeviceTileMemoryHeapFeaturesQCOM<'a>
26588{
26589}
26590
26591impl<'a> crate::construction::sealed::ChainNode
26592 for vk::PhysicalDeviceTileMemoryHeapPropertiesQCOM<'a>
26593{
26594 const S_TYPE: vk::StructureType =
26595 vk::StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM;
26596
26597 fn s_type(&self) -> vk::StructureType {
26598 self.s_type
26599 }
26600
26601 fn p_next(&self) -> *const std::ffi::c_void {
26602 self.p_next.cast_const()
26603 }
26604
26605 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26606 self.p_next = p_next;
26607 }
26608
26609 fn address(&mut self) -> *mut std::ffi::c_void {
26610 std::ptr::from_mut(self).cast()
26611 }
26612}
26613
26614impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
26615 for vk::PhysicalDeviceTileMemoryHeapPropertiesQCOM<'a>
26616{
26617}
26618
26619impl<'a> crate::construction::sealed::ChainNode for vk::TileMemorySizeInfoQCOM<'a> {
26620 const S_TYPE: vk::StructureType = vk::StructureType::TILE_MEMORY_SIZE_INFO_QCOM;
26621
26622 fn s_type(&self) -> vk::StructureType {
26623 self.s_type
26624 }
26625
26626 fn p_next(&self) -> *const std::ffi::c_void {
26627 self.p_next
26628 }
26629
26630 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26631 self.p_next = p_next.cast_const();
26632 }
26633
26634 fn address(&mut self) -> *mut std::ffi::c_void {
26635 std::ptr::from_mut(self).cast()
26636 }
26637}
26638
26639impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo<'root>> for vk::TileMemorySizeInfoQCOM<'a> {}
26640
26641impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo2<'root>>
26642 for vk::TileMemorySizeInfoQCOM<'a>
26643{
26644}
26645
26646impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>> for vk::TileMemorySizeInfoQCOM<'a> {}
26647
26648impl<'a> crate::construction::sealed::ChainNode for vk::TileMemoryRequirementsQCOM<'a> {
26649 const S_TYPE: vk::StructureType = vk::StructureType::TILE_MEMORY_REQUIREMENTS_QCOM;
26650
26651 fn s_type(&self) -> vk::StructureType {
26652 self.s_type
26653 }
26654
26655 fn p_next(&self) -> *const std::ffi::c_void {
26656 self.p_next.cast_const()
26657 }
26658
26659 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26660 self.p_next = p_next;
26661 }
26662
26663 fn address(&mut self) -> *mut std::ffi::c_void {
26664 std::ptr::from_mut(self).cast()
26665 }
26666}
26667
26668impl<'a, 'root> crate::Extends<vk::MemoryRequirements2<'root>>
26669 for vk::TileMemoryRequirementsQCOM<'a>
26670{
26671}
26672
26673impl<'a> crate::construction::sealed::ChainNode for vk::BindDescriptorSetsInfo<'a> {
26674 const S_TYPE: vk::StructureType = vk::StructureType::BIND_DESCRIPTOR_SETS_INFO;
26675
26676 fn s_type(&self) -> vk::StructureType {
26677 self.s_type
26678 }
26679
26680 fn p_next(&self) -> *const std::ffi::c_void {
26681 self.p_next
26682 }
26683
26684 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26685 self.p_next = p_next.cast_const();
26686 }
26687
26688 fn address(&mut self) -> *mut std::ffi::c_void {
26689 std::ptr::from_mut(self).cast()
26690 }
26691}
26692
26693impl<'a> crate::construction::sealed::ChainNode for vk::PushConstantsInfo<'a> {
26694 const S_TYPE: vk::StructureType = vk::StructureType::PUSH_CONSTANTS_INFO;
26695
26696 fn s_type(&self) -> vk::StructureType {
26697 self.s_type
26698 }
26699
26700 fn p_next(&self) -> *const std::ffi::c_void {
26701 self.p_next
26702 }
26703
26704 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26705 self.p_next = p_next.cast_const();
26706 }
26707
26708 fn address(&mut self) -> *mut std::ffi::c_void {
26709 std::ptr::from_mut(self).cast()
26710 }
26711}
26712
26713impl<'a> crate::construction::sealed::ChainNode for vk::PushDescriptorSetInfo<'a> {
26714 const S_TYPE: vk::StructureType = vk::StructureType::PUSH_DESCRIPTOR_SET_INFO;
26715
26716 fn s_type(&self) -> vk::StructureType {
26717 self.s_type
26718 }
26719
26720 fn p_next(&self) -> *const std::ffi::c_void {
26721 self.p_next
26722 }
26723
26724 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26725 self.p_next = p_next.cast_const();
26726 }
26727
26728 fn address(&mut self) -> *mut std::ffi::c_void {
26729 std::ptr::from_mut(self).cast()
26730 }
26731}
26732
26733impl<'a> crate::construction::sealed::ChainNode for vk::PushDescriptorSetWithTemplateInfo<'a> {
26734 const S_TYPE: vk::StructureType = vk::StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO;
26735
26736 fn s_type(&self) -> vk::StructureType {
26737 self.s_type
26738 }
26739
26740 fn p_next(&self) -> *const std::ffi::c_void {
26741 self.p_next
26742 }
26743
26744 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26745 self.p_next = p_next.cast_const();
26746 }
26747
26748 fn address(&mut self) -> *mut std::ffi::c_void {
26749 std::ptr::from_mut(self).cast()
26750 }
26751}
26752
26753impl<'a> crate::construction::sealed::ChainNode for vk::SetDescriptorBufferOffsetsInfoEXT<'a> {
26754 const S_TYPE: vk::StructureType = vk::StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT;
26755
26756 fn s_type(&self) -> vk::StructureType {
26757 self.s_type
26758 }
26759
26760 fn p_next(&self) -> *const std::ffi::c_void {
26761 self.p_next
26762 }
26763
26764 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26765 self.p_next = p_next.cast_const();
26766 }
26767
26768 fn address(&mut self) -> *mut std::ffi::c_void {
26769 std::ptr::from_mut(self).cast()
26770 }
26771}
26772
26773impl<'a> crate::construction::sealed::ChainNode
26774 for vk::BindDescriptorBufferEmbeddedSamplersInfoEXT<'a>
26775{
26776 const S_TYPE: vk::StructureType =
26777 vk::StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT;
26778
26779 fn s_type(&self) -> vk::StructureType {
26780 self.s_type
26781 }
26782
26783 fn p_next(&self) -> *const std::ffi::c_void {
26784 self.p_next
26785 }
26786
26787 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26788 self.p_next = p_next.cast_const();
26789 }
26790
26791 fn address(&mut self) -> *mut std::ffi::c_void {
26792 std::ptr::from_mut(self).cast()
26793 }
26794}
26795
26796impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceCubicClampFeaturesQCOM<'a> {
26797 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM;
26798
26799 fn s_type(&self) -> vk::StructureType {
26800 self.s_type
26801 }
26802
26803 fn p_next(&self) -> *const std::ffi::c_void {
26804 self.p_next.cast_const()
26805 }
26806
26807 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26808 self.p_next = p_next;
26809 }
26810
26811 fn address(&mut self) -> *mut std::ffi::c_void {
26812 std::ptr::from_mut(self).cast()
26813 }
26814}
26815
26816impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26817 for vk::PhysicalDeviceCubicClampFeaturesQCOM<'a>
26818{
26819}
26820
26821impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26822 for vk::PhysicalDeviceCubicClampFeaturesQCOM<'a>
26823{
26824}
26825
26826impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a> {
26827 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM;
26828
26829 fn s_type(&self) -> vk::StructureType {
26830 self.s_type
26831 }
26832
26833 fn p_next(&self) -> *const std::ffi::c_void {
26834 self.p_next.cast_const()
26835 }
26836
26837 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26838 self.p_next = p_next;
26839 }
26840
26841 fn address(&mut self) -> *mut std::ffi::c_void {
26842 std::ptr::from_mut(self).cast()
26843 }
26844}
26845
26846impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26847 for vk::PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a>
26848{
26849}
26850
26851impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26852 for vk::PhysicalDeviceYcbcrDegammaFeaturesQCOM<'a>
26853{
26854}
26855
26856impl<'a> crate::construction::sealed::ChainNode
26857 for vk::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a>
26858{
26859 const S_TYPE: vk::StructureType =
26860 vk::StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM;
26861
26862 fn s_type(&self) -> vk::StructureType {
26863 self.s_type
26864 }
26865
26866 fn p_next(&self) -> *const std::ffi::c_void {
26867 self.p_next.cast_const()
26868 }
26869
26870 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26871 self.p_next = p_next;
26872 }
26873
26874 fn address(&mut self) -> *mut std::ffi::c_void {
26875 std::ptr::from_mut(self).cast()
26876 }
26877}
26878
26879impl<'a, 'root> crate::Extends<vk::SamplerYcbcrConversionCreateInfo<'root>>
26880 for vk::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM<'a>
26881{
26882}
26883
26884impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceCubicWeightsFeaturesQCOM<'a> {
26885 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM;
26886
26887 fn s_type(&self) -> vk::StructureType {
26888 self.s_type
26889 }
26890
26891 fn p_next(&self) -> *const std::ffi::c_void {
26892 self.p_next.cast_const()
26893 }
26894
26895 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26896 self.p_next = p_next;
26897 }
26898
26899 fn address(&mut self) -> *mut std::ffi::c_void {
26900 std::ptr::from_mut(self).cast()
26901 }
26902}
26903
26904impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26905 for vk::PhysicalDeviceCubicWeightsFeaturesQCOM<'a>
26906{
26907}
26908
26909impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26910 for vk::PhysicalDeviceCubicWeightsFeaturesQCOM<'a>
26911{
26912}
26913
26914impl<'a> crate::construction::sealed::ChainNode for vk::SamplerCubicWeightsCreateInfoQCOM<'a> {
26915 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM;
26916
26917 fn s_type(&self) -> vk::StructureType {
26918 self.s_type
26919 }
26920
26921 fn p_next(&self) -> *const std::ffi::c_void {
26922 self.p_next
26923 }
26924
26925 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26926 self.p_next = p_next.cast_const();
26927 }
26928
26929 fn address(&mut self) -> *mut std::ffi::c_void {
26930 std::ptr::from_mut(self).cast()
26931 }
26932}
26933
26934impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
26935 for vk::SamplerCubicWeightsCreateInfoQCOM<'a>
26936{
26937}
26938
26939impl<'a> crate::construction::sealed::ChainNode for vk::BlitImageCubicWeightsInfoQCOM<'a> {
26940 const S_TYPE: vk::StructureType = vk::StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM;
26941
26942 fn s_type(&self) -> vk::StructureType {
26943 self.s_type
26944 }
26945
26946 fn p_next(&self) -> *const std::ffi::c_void {
26947 self.p_next
26948 }
26949
26950 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26951 self.p_next = p_next.cast_const();
26952 }
26953
26954 fn address(&mut self) -> *mut std::ffi::c_void {
26955 std::ptr::from_mut(self).cast()
26956 }
26957}
26958
26959impl<'a, 'root> crate::Extends<vk::BlitImageInfo2<'root>>
26960 for vk::BlitImageCubicWeightsInfoQCOM<'a>
26961{
26962}
26963
26964impl<'a> crate::construction::sealed::ChainNode
26965 for vk::PhysicalDeviceImageProcessing2FeaturesQCOM<'a>
26966{
26967 const S_TYPE: vk::StructureType =
26968 vk::StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM;
26969
26970 fn s_type(&self) -> vk::StructureType {
26971 self.s_type
26972 }
26973
26974 fn p_next(&self) -> *const std::ffi::c_void {
26975 self.p_next.cast_const()
26976 }
26977
26978 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
26979 self.p_next = p_next;
26980 }
26981
26982 fn address(&mut self) -> *mut std::ffi::c_void {
26983 std::ptr::from_mut(self).cast()
26984 }
26985}
26986
26987impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
26988 for vk::PhysicalDeviceImageProcessing2FeaturesQCOM<'a>
26989{
26990}
26991
26992impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
26993 for vk::PhysicalDeviceImageProcessing2FeaturesQCOM<'a>
26994{
26995}
26996
26997impl<'a> crate::construction::sealed::ChainNode
26998 for vk::PhysicalDeviceImageProcessing2PropertiesQCOM<'a>
26999{
27000 const S_TYPE: vk::StructureType =
27001 vk::StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM;
27002
27003 fn s_type(&self) -> vk::StructureType {
27004 self.s_type
27005 }
27006
27007 fn p_next(&self) -> *const std::ffi::c_void {
27008 self.p_next.cast_const()
27009 }
27010
27011 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27012 self.p_next = p_next;
27013 }
27014
27015 fn address(&mut self) -> *mut std::ffi::c_void {
27016 std::ptr::from_mut(self).cast()
27017 }
27018}
27019
27020impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27021 for vk::PhysicalDeviceImageProcessing2PropertiesQCOM<'a>
27022{
27023}
27024
27025impl<'a> crate::construction::sealed::ChainNode for vk::SamplerBlockMatchWindowCreateInfoQCOM<'a> {
27026 const S_TYPE: vk::StructureType = vk::StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM;
27027
27028 fn s_type(&self) -> vk::StructureType {
27029 self.s_type
27030 }
27031
27032 fn p_next(&self) -> *const std::ffi::c_void {
27033 self.p_next
27034 }
27035
27036 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27037 self.p_next = p_next.cast_const();
27038 }
27039
27040 fn address(&mut self) -> *mut std::ffi::c_void {
27041 std::ptr::from_mut(self).cast()
27042 }
27043}
27044
27045impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
27046 for vk::SamplerBlockMatchWindowCreateInfoQCOM<'a>
27047{
27048}
27049
27050impl<'a> crate::construction::sealed::ChainNode
27051 for vk::PhysicalDeviceImageProcessing3FeaturesQCOM<'a>
27052{
27053 const S_TYPE: vk::StructureType =
27054 vk::StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_3_FEATURES_QCOM;
27055
27056 fn s_type(&self) -> vk::StructureType {
27057 self.s_type
27058 }
27059
27060 fn p_next(&self) -> *const std::ffi::c_void {
27061 self.p_next.cast_const()
27062 }
27063
27064 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27065 self.p_next = p_next;
27066 }
27067
27068 fn address(&mut self) -> *mut std::ffi::c_void {
27069 std::ptr::from_mut(self).cast()
27070 }
27071}
27072
27073impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27074 for vk::PhysicalDeviceImageProcessing3FeaturesQCOM<'a>
27075{
27076}
27077
27078impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27079 for vk::PhysicalDeviceImageProcessing3FeaturesQCOM<'a>
27080{
27081}
27082
27083impl<'a> crate::construction::sealed::ChainNode
27084 for vk::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a>
27085{
27086 const S_TYPE: vk::StructureType =
27087 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV;
27088
27089 fn s_type(&self) -> vk::StructureType {
27090 self.s_type
27091 }
27092
27093 fn p_next(&self) -> *const std::ffi::c_void {
27094 self.p_next.cast_const()
27095 }
27096
27097 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27098 self.p_next = p_next;
27099 }
27100
27101 fn address(&mut self) -> *mut std::ffi::c_void {
27102 std::ptr::from_mut(self).cast()
27103 }
27104}
27105
27106impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27107 for vk::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a>
27108{
27109}
27110
27111impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27112 for vk::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV<'a>
27113{
27114}
27115
27116impl<'a> crate::construction::sealed::ChainNode
27117 for vk::PhysicalDeviceLayeredDriverPropertiesMSFT<'a>
27118{
27119 const S_TYPE: vk::StructureType =
27120 vk::StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT;
27121
27122 fn s_type(&self) -> vk::StructureType {
27123 self.s_type
27124 }
27125
27126 fn p_next(&self) -> *const std::ffi::c_void {
27127 self.p_next.cast_const()
27128 }
27129
27130 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27131 self.p_next = p_next;
27132 }
27133
27134 fn address(&mut self) -> *mut std::ffi::c_void {
27135 std::ptr::from_mut(self).cast()
27136 }
27137}
27138
27139impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27140 for vk::PhysicalDeviceLayeredDriverPropertiesMSFT<'a>
27141{
27142}
27143
27144impl<'a> crate::construction::sealed::ChainNode
27145 for vk::PhysicalDevicePerStageDescriptorSetFeaturesNV<'a>
27146{
27147 const S_TYPE: vk::StructureType =
27148 vk::StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV;
27149
27150 fn s_type(&self) -> vk::StructureType {
27151 self.s_type
27152 }
27153
27154 fn p_next(&self) -> *const std::ffi::c_void {
27155 self.p_next.cast_const()
27156 }
27157
27158 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27159 self.p_next = p_next;
27160 }
27161
27162 fn address(&mut self) -> *mut std::ffi::c_void {
27163 std::ptr::from_mut(self).cast()
27164 }
27165}
27166
27167impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27168 for vk::PhysicalDevicePerStageDescriptorSetFeaturesNV<'a>
27169{
27170}
27171
27172impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27173 for vk::PhysicalDevicePerStageDescriptorSetFeaturesNV<'a>
27174{
27175}
27176
27177#[cfg(feature = "platform-android")]
27178impl<'a> crate::construction::sealed::ChainNode
27179 for vk::PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a>
27180{
27181 const S_TYPE: vk::StructureType =
27182 vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID;
27183
27184 fn s_type(&self) -> vk::StructureType {
27185 self.s_type
27186 }
27187
27188 fn p_next(&self) -> *const std::ffi::c_void {
27189 self.p_next.cast_const()
27190 }
27191
27192 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27193 self.p_next = p_next;
27194 }
27195
27196 fn address(&mut self) -> *mut std::ffi::c_void {
27197 std::ptr::from_mut(self).cast()
27198 }
27199}
27200
27201#[cfg(feature = "platform-android")]
27202impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27203 for vk::PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a>
27204{
27205}
27206
27207#[cfg(feature = "platform-android")]
27208impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27209 for vk::PhysicalDeviceExternalFormatResolveFeaturesANDROID<'a>
27210{
27211}
27212
27213#[cfg(feature = "platform-android")]
27214impl<'a> crate::construction::sealed::ChainNode
27215 for vk::PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a>
27216{
27217 const S_TYPE: vk::StructureType =
27218 vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID;
27219
27220 fn s_type(&self) -> vk::StructureType {
27221 self.s_type
27222 }
27223
27224 fn p_next(&self) -> *const std::ffi::c_void {
27225 self.p_next.cast_const()
27226 }
27227
27228 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27229 self.p_next = p_next;
27230 }
27231
27232 fn address(&mut self) -> *mut std::ffi::c_void {
27233 std::ptr::from_mut(self).cast()
27234 }
27235}
27236
27237#[cfg(feature = "platform-android")]
27238impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27239 for vk::PhysicalDeviceExternalFormatResolvePropertiesANDROID<'a>
27240{
27241}
27242
27243#[cfg(feature = "platform-android")]
27244impl<'a> crate::construction::sealed::ChainNode
27245 for vk::AndroidHardwareBufferFormatResolvePropertiesANDROID<'a>
27246{
27247 const S_TYPE: vk::StructureType =
27248 vk::StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID;
27249
27250 fn s_type(&self) -> vk::StructureType {
27251 self.s_type
27252 }
27253
27254 fn p_next(&self) -> *const std::ffi::c_void {
27255 self.p_next.cast_const()
27256 }
27257
27258 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27259 self.p_next = p_next;
27260 }
27261
27262 fn address(&mut self) -> *mut std::ffi::c_void {
27263 std::ptr::from_mut(self).cast()
27264 }
27265}
27266
27267#[cfg(feature = "platform-android")]
27268impl<'a, 'root> crate::Extends<vk::AndroidHardwareBufferPropertiesANDROID<'root>>
27269 for vk::AndroidHardwareBufferFormatResolvePropertiesANDROID<'a>
27270{
27271}
27272
27273impl<'a> crate::construction::sealed::ChainNode for vk::LatencySleepModeInfoNV<'a> {
27274 const S_TYPE: vk::StructureType = vk::StructureType::LATENCY_SLEEP_MODE_INFO_NV;
27275
27276 fn s_type(&self) -> vk::StructureType {
27277 self.s_type
27278 }
27279
27280 fn p_next(&self) -> *const std::ffi::c_void {
27281 self.p_next
27282 }
27283
27284 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27285 self.p_next = p_next.cast_const();
27286 }
27287
27288 fn address(&mut self) -> *mut std::ffi::c_void {
27289 std::ptr::from_mut(self).cast()
27290 }
27291}
27292
27293impl<'a> crate::construction::sealed::ChainNode for vk::LatencySleepInfoNV<'a> {
27294 const S_TYPE: vk::StructureType = vk::StructureType::LATENCY_SLEEP_INFO_NV;
27295
27296 fn s_type(&self) -> vk::StructureType {
27297 self.s_type
27298 }
27299
27300 fn p_next(&self) -> *const std::ffi::c_void {
27301 self.p_next
27302 }
27303
27304 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27305 self.p_next = p_next.cast_const();
27306 }
27307
27308 fn address(&mut self) -> *mut std::ffi::c_void {
27309 std::ptr::from_mut(self).cast()
27310 }
27311}
27312
27313impl<'a> crate::construction::sealed::ChainNode for vk::SetLatencyMarkerInfoNV<'a> {
27314 const S_TYPE: vk::StructureType = vk::StructureType::SET_LATENCY_MARKER_INFO_NV;
27315
27316 fn s_type(&self) -> vk::StructureType {
27317 self.s_type
27318 }
27319
27320 fn p_next(&self) -> *const std::ffi::c_void {
27321 self.p_next
27322 }
27323
27324 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27325 self.p_next = p_next.cast_const();
27326 }
27327
27328 fn address(&mut self) -> *mut std::ffi::c_void {
27329 std::ptr::from_mut(self).cast()
27330 }
27331}
27332
27333impl<'a> crate::construction::sealed::ChainNode for vk::GetLatencyMarkerInfoNV<'a> {
27334 const S_TYPE: vk::StructureType = vk::StructureType::GET_LATENCY_MARKER_INFO_NV;
27335
27336 fn s_type(&self) -> vk::StructureType {
27337 self.s_type
27338 }
27339
27340 fn p_next(&self) -> *const std::ffi::c_void {
27341 self.p_next
27342 }
27343
27344 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27345 self.p_next = p_next.cast_const();
27346 }
27347
27348 fn address(&mut self) -> *mut std::ffi::c_void {
27349 std::ptr::from_mut(self).cast()
27350 }
27351}
27352
27353impl<'a> crate::construction::sealed::ChainNode for vk::LatencyTimingsFrameReportNV<'a> {
27354 const S_TYPE: vk::StructureType = vk::StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV;
27355
27356 fn s_type(&self) -> vk::StructureType {
27357 self.s_type
27358 }
27359
27360 fn p_next(&self) -> *const std::ffi::c_void {
27361 self.p_next.cast_const()
27362 }
27363
27364 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27365 self.p_next = p_next;
27366 }
27367
27368 fn address(&mut self) -> *mut std::ffi::c_void {
27369 std::ptr::from_mut(self).cast()
27370 }
27371}
27372
27373impl<'a> crate::construction::sealed::ChainNode for vk::OutOfBandQueueTypeInfoNV<'a> {
27374 const S_TYPE: vk::StructureType = vk::StructureType::OUT_OF_BAND_QUEUE_TYPE_INFO_NV;
27375
27376 fn s_type(&self) -> vk::StructureType {
27377 self.s_type
27378 }
27379
27380 fn p_next(&self) -> *const std::ffi::c_void {
27381 self.p_next
27382 }
27383
27384 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27385 self.p_next = p_next.cast_const();
27386 }
27387
27388 fn address(&mut self) -> *mut std::ffi::c_void {
27389 std::ptr::from_mut(self).cast()
27390 }
27391}
27392
27393impl<'a> crate::construction::sealed::ChainNode for vk::LatencySubmissionPresentIdNV<'a> {
27394 const S_TYPE: vk::StructureType = vk::StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV;
27395
27396 fn s_type(&self) -> vk::StructureType {
27397 self.s_type
27398 }
27399
27400 fn p_next(&self) -> *const std::ffi::c_void {
27401 self.p_next
27402 }
27403
27404 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27405 self.p_next = p_next.cast_const();
27406 }
27407
27408 fn address(&mut self) -> *mut std::ffi::c_void {
27409 std::ptr::from_mut(self).cast()
27410 }
27411}
27412
27413impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::LatencySubmissionPresentIdNV<'a> {}
27414
27415impl<'a, 'root> crate::Extends<vk::SubmitInfo2<'root>> for vk::LatencySubmissionPresentIdNV<'a> {}
27416
27417impl<'a> crate::construction::sealed::ChainNode for vk::SwapchainLatencyCreateInfoNV<'a> {
27418 const S_TYPE: vk::StructureType = vk::StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV;
27419
27420 fn s_type(&self) -> vk::StructureType {
27421 self.s_type
27422 }
27423
27424 fn p_next(&self) -> *const std::ffi::c_void {
27425 self.p_next
27426 }
27427
27428 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27429 self.p_next = p_next.cast_const();
27430 }
27431
27432 fn address(&mut self) -> *mut std::ffi::c_void {
27433 std::ptr::from_mut(self).cast()
27434 }
27435}
27436
27437impl<'a, 'root> crate::Extends<vk::SwapchainCreateInfoKHR<'root>>
27438 for vk::SwapchainLatencyCreateInfoNV<'a>
27439{
27440}
27441
27442impl<'a> crate::construction::sealed::ChainNode for vk::LatencySurfaceCapabilitiesNV<'a> {
27443 const S_TYPE: vk::StructureType = vk::StructureType::LATENCY_SURFACE_CAPABILITIES_NV;
27444
27445 fn s_type(&self) -> vk::StructureType {
27446 self.s_type
27447 }
27448
27449 fn p_next(&self) -> *const std::ffi::c_void {
27450 self.p_next
27451 }
27452
27453 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27454 self.p_next = p_next.cast_const();
27455 }
27456
27457 fn address(&mut self) -> *mut std::ffi::c_void {
27458 std::ptr::from_mut(self).cast()
27459 }
27460}
27461
27462impl<'a, 'root> crate::Extends<vk::SurfaceCapabilities2KHR<'root>>
27463 for vk::LatencySurfaceCapabilitiesNV<'a>
27464{
27465}
27466
27467#[cfg(feature = "provisional")]
27468impl<'a> crate::construction::sealed::ChainNode
27469 for vk::PhysicalDeviceCudaKernelLaunchFeaturesNV<'a>
27470{
27471 const S_TYPE: vk::StructureType =
27472 vk::StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV;
27473
27474 fn s_type(&self) -> vk::StructureType {
27475 self.s_type
27476 }
27477
27478 fn p_next(&self) -> *const std::ffi::c_void {
27479 self.p_next.cast_const()
27480 }
27481
27482 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27483 self.p_next = p_next;
27484 }
27485
27486 fn address(&mut self) -> *mut std::ffi::c_void {
27487 std::ptr::from_mut(self).cast()
27488 }
27489}
27490
27491#[cfg(feature = "provisional")]
27492impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27493 for vk::PhysicalDeviceCudaKernelLaunchFeaturesNV<'a>
27494{
27495}
27496
27497#[cfg(feature = "provisional")]
27498impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27499 for vk::PhysicalDeviceCudaKernelLaunchFeaturesNV<'a>
27500{
27501}
27502
27503#[cfg(feature = "provisional")]
27504impl<'a> crate::construction::sealed::ChainNode
27505 for vk::PhysicalDeviceCudaKernelLaunchPropertiesNV<'a>
27506{
27507 const S_TYPE: vk::StructureType =
27508 vk::StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV;
27509
27510 fn s_type(&self) -> vk::StructureType {
27511 self.s_type
27512 }
27513
27514 fn p_next(&self) -> *const std::ffi::c_void {
27515 self.p_next.cast_const()
27516 }
27517
27518 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27519 self.p_next = p_next;
27520 }
27521
27522 fn address(&mut self) -> *mut std::ffi::c_void {
27523 std::ptr::from_mut(self).cast()
27524 }
27525}
27526
27527#[cfg(feature = "provisional")]
27528impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27529 for vk::PhysicalDeviceCudaKernelLaunchPropertiesNV<'a>
27530{
27531}
27532
27533impl<'a> crate::construction::sealed::ChainNode
27534 for vk::DeviceQueueShaderCoreControlCreateInfoARM<'a>
27535{
27536 const S_TYPE: vk::StructureType =
27537 vk::StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM;
27538
27539 fn s_type(&self) -> vk::StructureType {
27540 self.s_type
27541 }
27542
27543 fn p_next(&self) -> *const std::ffi::c_void {
27544 self.p_next.cast_const()
27545 }
27546
27547 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27548 self.p_next = p_next;
27549 }
27550
27551 fn address(&mut self) -> *mut std::ffi::c_void {
27552 std::ptr::from_mut(self).cast()
27553 }
27554}
27555
27556impl<'a, 'root> crate::Extends<vk::DeviceQueueCreateInfo<'root>>
27557 for vk::DeviceQueueShaderCoreControlCreateInfoARM<'a>
27558{
27559}
27560
27561impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27562 for vk::DeviceQueueShaderCoreControlCreateInfoARM<'a>
27563{
27564}
27565
27566impl<'a> crate::construction::sealed::ChainNode
27567 for vk::PhysicalDeviceSchedulingControlsFeaturesARM<'a>
27568{
27569 const S_TYPE: vk::StructureType =
27570 vk::StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM;
27571
27572 fn s_type(&self) -> vk::StructureType {
27573 self.s_type
27574 }
27575
27576 fn p_next(&self) -> *const std::ffi::c_void {
27577 self.p_next.cast_const()
27578 }
27579
27580 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27581 self.p_next = p_next;
27582 }
27583
27584 fn address(&mut self) -> *mut std::ffi::c_void {
27585 std::ptr::from_mut(self).cast()
27586 }
27587}
27588
27589impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27590 for vk::PhysicalDeviceSchedulingControlsFeaturesARM<'a>
27591{
27592}
27593
27594impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27595 for vk::PhysicalDeviceSchedulingControlsFeaturesARM<'a>
27596{
27597}
27598
27599impl<'a> crate::construction::sealed::ChainNode
27600 for vk::PhysicalDeviceSchedulingControlsPropertiesARM<'a>
27601{
27602 const S_TYPE: vk::StructureType =
27603 vk::StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM;
27604
27605 fn s_type(&self) -> vk::StructureType {
27606 self.s_type
27607 }
27608
27609 fn p_next(&self) -> *const std::ffi::c_void {
27610 self.p_next.cast_const()
27611 }
27612
27613 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27614 self.p_next = p_next;
27615 }
27616
27617 fn address(&mut self) -> *mut std::ffi::c_void {
27618 std::ptr::from_mut(self).cast()
27619 }
27620}
27621
27622impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27623 for vk::PhysicalDeviceSchedulingControlsPropertiesARM<'a>
27624{
27625}
27626
27627impl<'a> crate::construction::sealed::ChainNode
27628 for vk::PhysicalDeviceSchedulingControlsDispatchParametersPropertiesARM<'a>
27629{
27630 const S_TYPE: vk::StructureType =
27631 vk::StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_DISPATCH_PARAMETERS_PROPERTIES_ARM;
27632
27633 fn s_type(&self) -> vk::StructureType {
27634 self.s_type
27635 }
27636
27637 fn p_next(&self) -> *const std::ffi::c_void {
27638 self.p_next.cast_const()
27639 }
27640
27641 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27642 self.p_next = p_next;
27643 }
27644
27645 fn address(&mut self) -> *mut std::ffi::c_void {
27646 std::ptr::from_mut(self).cast()
27647 }
27648}
27649
27650impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27651 for vk::PhysicalDeviceSchedulingControlsDispatchParametersPropertiesARM<'a>
27652{
27653}
27654
27655impl<'a> crate::construction::sealed::ChainNode for vk::DispatchParametersARM<'a> {
27656 const S_TYPE: vk::StructureType = vk::StructureType::DISPATCH_PARAMETERS_ARM;
27657
27658 fn s_type(&self) -> vk::StructureType {
27659 self.s_type
27660 }
27661
27662 fn p_next(&self) -> *const std::ffi::c_void {
27663 self.p_next.cast_const()
27664 }
27665
27666 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27667 self.p_next = p_next;
27668 }
27669
27670 fn address(&mut self) -> *mut std::ffi::c_void {
27671 std::ptr::from_mut(self).cast()
27672 }
27673}
27674
27675impl<'a> crate::construction::sealed::ChainNode
27676 for vk::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a>
27677{
27678 const S_TYPE: vk::StructureType =
27679 vk::StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG;
27680
27681 fn s_type(&self) -> vk::StructureType {
27682 self.s_type
27683 }
27684
27685 fn p_next(&self) -> *const std::ffi::c_void {
27686 self.p_next.cast_const()
27687 }
27688
27689 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27690 self.p_next = p_next;
27691 }
27692
27693 fn address(&mut self) -> *mut std::ffi::c_void {
27694 std::ptr::from_mut(self).cast()
27695 }
27696}
27697
27698impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27699 for vk::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a>
27700{
27701}
27702
27703impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27704 for vk::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG<'a>
27705{
27706}
27707
27708impl<'a> crate::construction::sealed::ChainNode
27709 for vk::PhysicalDeviceRenderPassStripedFeaturesARM<'a>
27710{
27711 const S_TYPE: vk::StructureType =
27712 vk::StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM;
27713
27714 fn s_type(&self) -> vk::StructureType {
27715 self.s_type
27716 }
27717
27718 fn p_next(&self) -> *const std::ffi::c_void {
27719 self.p_next.cast_const()
27720 }
27721
27722 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27723 self.p_next = p_next;
27724 }
27725
27726 fn address(&mut self) -> *mut std::ffi::c_void {
27727 std::ptr::from_mut(self).cast()
27728 }
27729}
27730
27731impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27732 for vk::PhysicalDeviceRenderPassStripedFeaturesARM<'a>
27733{
27734}
27735
27736impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27737 for vk::PhysicalDeviceRenderPassStripedFeaturesARM<'a>
27738{
27739}
27740
27741impl<'a> crate::construction::sealed::ChainNode
27742 for vk::PhysicalDeviceRenderPassStripedPropertiesARM<'a>
27743{
27744 const S_TYPE: vk::StructureType =
27745 vk::StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM;
27746
27747 fn s_type(&self) -> vk::StructureType {
27748 self.s_type
27749 }
27750
27751 fn p_next(&self) -> *const std::ffi::c_void {
27752 self.p_next.cast_const()
27753 }
27754
27755 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27756 self.p_next = p_next;
27757 }
27758
27759 fn address(&mut self) -> *mut std::ffi::c_void {
27760 std::ptr::from_mut(self).cast()
27761 }
27762}
27763
27764impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
27765 for vk::PhysicalDeviceRenderPassStripedPropertiesARM<'a>
27766{
27767}
27768
27769impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassStripeInfoARM<'a> {
27770 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_STRIPE_INFO_ARM;
27771
27772 fn s_type(&self) -> vk::StructureType {
27773 self.s_type
27774 }
27775
27776 fn p_next(&self) -> *const std::ffi::c_void {
27777 self.p_next
27778 }
27779
27780 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27781 self.p_next = p_next.cast_const();
27782 }
27783
27784 fn address(&mut self) -> *mut std::ffi::c_void {
27785 std::ptr::from_mut(self).cast()
27786 }
27787}
27788
27789impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassStripeBeginInfoARM<'a> {
27790 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM;
27791
27792 fn s_type(&self) -> vk::StructureType {
27793 self.s_type
27794 }
27795
27796 fn p_next(&self) -> *const std::ffi::c_void {
27797 self.p_next
27798 }
27799
27800 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27801 self.p_next = p_next.cast_const();
27802 }
27803
27804 fn address(&mut self) -> *mut std::ffi::c_void {
27805 std::ptr::from_mut(self).cast()
27806 }
27807}
27808
27809impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>> for vk::RenderPassStripeBeginInfoARM<'a> {}
27810
27811impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
27812 for vk::RenderPassStripeBeginInfoARM<'a>
27813{
27814}
27815
27816impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassStripeSubmitInfoARM<'a> {
27817 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM;
27818
27819 fn s_type(&self) -> vk::StructureType {
27820 self.s_type
27821 }
27822
27823 fn p_next(&self) -> *const std::ffi::c_void {
27824 self.p_next
27825 }
27826
27827 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27828 self.p_next = p_next.cast_const();
27829 }
27830
27831 fn address(&mut self) -> *mut std::ffi::c_void {
27832 std::ptr::from_mut(self).cast()
27833 }
27834}
27835
27836impl<'a, 'root> crate::Extends<vk::CommandBufferSubmitInfo<'root>>
27837 for vk::RenderPassStripeSubmitInfoARM<'a>
27838{
27839}
27840
27841impl<'a> crate::construction::sealed::ChainNode
27842 for vk::PhysicalDevicePipelineOpacityMicromapFeaturesARM<'a>
27843{
27844 const S_TYPE: vk::StructureType =
27845 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM;
27846
27847 fn s_type(&self) -> vk::StructureType {
27848 self.s_type
27849 }
27850
27851 fn p_next(&self) -> *const std::ffi::c_void {
27852 self.p_next.cast_const()
27853 }
27854
27855 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27856 self.p_next = p_next;
27857 }
27858
27859 fn address(&mut self) -> *mut std::ffi::c_void {
27860 std::ptr::from_mut(self).cast()
27861 }
27862}
27863
27864impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27865 for vk::PhysicalDevicePipelineOpacityMicromapFeaturesARM<'a>
27866{
27867}
27868
27869impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27870 for vk::PhysicalDevicePipelineOpacityMicromapFeaturesARM<'a>
27871{
27872}
27873
27874impl<'a> crate::construction::sealed::ChainNode
27875 for vk::PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a>
27876{
27877 const S_TYPE: vk::StructureType =
27878 vk::StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR;
27879
27880 fn s_type(&self) -> vk::StructureType {
27881 self.s_type
27882 }
27883
27884 fn p_next(&self) -> *const std::ffi::c_void {
27885 self.p_next.cast_const()
27886 }
27887
27888 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27889 self.p_next = p_next;
27890 }
27891
27892 fn address(&mut self) -> *mut std::ffi::c_void {
27893 std::ptr::from_mut(self).cast()
27894 }
27895}
27896
27897impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27898 for vk::PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a>
27899{
27900}
27901
27902impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27903 for vk::PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR<'a>
27904{
27905}
27906
27907impl<'a> crate::construction::sealed::ChainNode
27908 for vk::PhysicalDeviceShaderSubgroupRotateFeatures<'a>
27909{
27910 const S_TYPE: vk::StructureType =
27911 vk::StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES;
27912
27913 fn s_type(&self) -> vk::StructureType {
27914 self.s_type
27915 }
27916
27917 fn p_next(&self) -> *const std::ffi::c_void {
27918 self.p_next.cast_const()
27919 }
27920
27921 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27922 self.p_next = p_next;
27923 }
27924
27925 fn address(&mut self) -> *mut std::ffi::c_void {
27926 std::ptr::from_mut(self).cast()
27927 }
27928}
27929
27930impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27931 for vk::PhysicalDeviceShaderSubgroupRotateFeatures<'a>
27932{
27933}
27934
27935impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27936 for vk::PhysicalDeviceShaderSubgroupRotateFeatures<'a>
27937{
27938}
27939
27940impl<'a> crate::construction::sealed::ChainNode
27941 for vk::PhysicalDeviceShaderExpectAssumeFeatures<'a>
27942{
27943 const S_TYPE: vk::StructureType =
27944 vk::StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES;
27945
27946 fn s_type(&self) -> vk::StructureType {
27947 self.s_type
27948 }
27949
27950 fn p_next(&self) -> *const std::ffi::c_void {
27951 self.p_next.cast_const()
27952 }
27953
27954 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27955 self.p_next = p_next;
27956 }
27957
27958 fn address(&mut self) -> *mut std::ffi::c_void {
27959 std::ptr::from_mut(self).cast()
27960 }
27961}
27962
27963impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27964 for vk::PhysicalDeviceShaderExpectAssumeFeatures<'a>
27965{
27966}
27967
27968impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
27969 for vk::PhysicalDeviceShaderExpectAssumeFeatures<'a>
27970{
27971}
27972
27973impl<'a> crate::construction::sealed::ChainNode
27974 for vk::PhysicalDeviceShaderFloatControls2Features<'a>
27975{
27976 const S_TYPE: vk::StructureType =
27977 vk::StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES;
27978
27979 fn s_type(&self) -> vk::StructureType {
27980 self.s_type
27981 }
27982
27983 fn p_next(&self) -> *const std::ffi::c_void {
27984 self.p_next.cast_const()
27985 }
27986
27987 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
27988 self.p_next = p_next;
27989 }
27990
27991 fn address(&mut self) -> *mut std::ffi::c_void {
27992 std::ptr::from_mut(self).cast()
27993 }
27994}
27995
27996impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
27997 for vk::PhysicalDeviceShaderFloatControls2Features<'a>
27998{
27999}
28000
28001impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28002 for vk::PhysicalDeviceShaderFloatControls2Features<'a>
28003{
28004}
28005
28006impl<'a> crate::construction::sealed::ChainNode
28007 for vk::PhysicalDeviceDynamicRenderingLocalReadFeatures<'a>
28008{
28009 const S_TYPE: vk::StructureType =
28010 vk::StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES;
28011
28012 fn s_type(&self) -> vk::StructureType {
28013 self.s_type
28014 }
28015
28016 fn p_next(&self) -> *const std::ffi::c_void {
28017 self.p_next.cast_const()
28018 }
28019
28020 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28021 self.p_next = p_next;
28022 }
28023
28024 fn address(&mut self) -> *mut std::ffi::c_void {
28025 std::ptr::from_mut(self).cast()
28026 }
28027}
28028
28029impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28030 for vk::PhysicalDeviceDynamicRenderingLocalReadFeatures<'a>
28031{
28032}
28033
28034impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28035 for vk::PhysicalDeviceDynamicRenderingLocalReadFeatures<'a>
28036{
28037}
28038
28039impl<'a> crate::construction::sealed::ChainNode for vk::RenderingAttachmentLocationInfo<'a> {
28040 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_ATTACHMENT_LOCATION_INFO;
28041
28042 fn s_type(&self) -> vk::StructureType {
28043 self.s_type
28044 }
28045
28046 fn p_next(&self) -> *const std::ffi::c_void {
28047 self.p_next
28048 }
28049
28050 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28051 self.p_next = p_next.cast_const();
28052 }
28053
28054 fn address(&mut self) -> *mut std::ffi::c_void {
28055 std::ptr::from_mut(self).cast()
28056 }
28057}
28058
28059impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
28060 for vk::RenderingAttachmentLocationInfo<'a>
28061{
28062}
28063
28064impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
28065 for vk::RenderingAttachmentLocationInfo<'a>
28066{
28067}
28068
28069impl<'a> crate::construction::sealed::ChainNode for vk::RenderingInputAttachmentIndexInfo<'a> {
28070 const S_TYPE: vk::StructureType = vk::StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO;
28071
28072 fn s_type(&self) -> vk::StructureType {
28073 self.s_type
28074 }
28075
28076 fn p_next(&self) -> *const std::ffi::c_void {
28077 self.p_next
28078 }
28079
28080 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28081 self.p_next = p_next.cast_const();
28082 }
28083
28084 fn address(&mut self) -> *mut std::ffi::c_void {
28085 std::ptr::from_mut(self).cast()
28086 }
28087}
28088
28089impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
28090 for vk::RenderingInputAttachmentIndexInfo<'a>
28091{
28092}
28093
28094impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
28095 for vk::RenderingInputAttachmentIndexInfo<'a>
28096{
28097}
28098
28099impl<'a> crate::construction::sealed::ChainNode
28100 for vk::PhysicalDeviceShaderQuadControlFeaturesKHR<'a>
28101{
28102 const S_TYPE: vk::StructureType =
28103 vk::StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR;
28104
28105 fn s_type(&self) -> vk::StructureType {
28106 self.s_type
28107 }
28108
28109 fn p_next(&self) -> *const std::ffi::c_void {
28110 self.p_next.cast_const()
28111 }
28112
28113 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28114 self.p_next = p_next;
28115 }
28116
28117 fn address(&mut self) -> *mut std::ffi::c_void {
28118 std::ptr::from_mut(self).cast()
28119 }
28120}
28121
28122impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28123 for vk::PhysicalDeviceShaderQuadControlFeaturesKHR<'a>
28124{
28125}
28126
28127impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28128 for vk::PhysicalDeviceShaderQuadControlFeaturesKHR<'a>
28129{
28130}
28131
28132impl<'a> crate::construction::sealed::ChainNode
28133 for vk::PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a>
28134{
28135 const S_TYPE: vk::StructureType =
28136 vk::StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV;
28137
28138 fn s_type(&self) -> vk::StructureType {
28139 self.s_type
28140 }
28141
28142 fn p_next(&self) -> *const std::ffi::c_void {
28143 self.p_next.cast_const()
28144 }
28145
28146 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28147 self.p_next = p_next;
28148 }
28149
28150 fn address(&mut self) -> *mut std::ffi::c_void {
28151 std::ptr::from_mut(self).cast()
28152 }
28153}
28154
28155impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28156 for vk::PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a>
28157{
28158}
28159
28160impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28161 for vk::PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV<'a>
28162{
28163}
28164
28165impl<'a> crate::construction::sealed::ChainNode
28166 for vk::PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a>
28167{
28168 const S_TYPE: vk::StructureType =
28169 vk::StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT;
28170
28171 fn s_type(&self) -> vk::StructureType {
28172 self.s_type
28173 }
28174
28175 fn p_next(&self) -> *const std::ffi::c_void {
28176 self.p_next.cast_const()
28177 }
28178
28179 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28180 self.p_next = p_next;
28181 }
28182
28183 fn address(&mut self) -> *mut std::ffi::c_void {
28184 std::ptr::from_mut(self).cast()
28185 }
28186}
28187
28188impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28189 for vk::PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a>
28190{
28191}
28192
28193impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28194 for vk::PhysicalDeviceMapMemoryPlacedFeaturesEXT<'a>
28195{
28196}
28197
28198impl<'a> crate::construction::sealed::ChainNode
28199 for vk::PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a>
28200{
28201 const S_TYPE: vk::StructureType =
28202 vk::StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT;
28203
28204 fn s_type(&self) -> vk::StructureType {
28205 self.s_type
28206 }
28207
28208 fn p_next(&self) -> *const std::ffi::c_void {
28209 self.p_next.cast_const()
28210 }
28211
28212 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28213 self.p_next = p_next;
28214 }
28215
28216 fn address(&mut self) -> *mut std::ffi::c_void {
28217 std::ptr::from_mut(self).cast()
28218 }
28219}
28220
28221impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
28222 for vk::PhysicalDeviceMapMemoryPlacedPropertiesEXT<'a>
28223{
28224}
28225
28226impl<'a> crate::construction::sealed::ChainNode for vk::MemoryMapPlacedInfoEXT<'a> {
28227 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_MAP_PLACED_INFO_EXT;
28228
28229 fn s_type(&self) -> vk::StructureType {
28230 self.s_type
28231 }
28232
28233 fn p_next(&self) -> *const std::ffi::c_void {
28234 self.p_next
28235 }
28236
28237 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28238 self.p_next = p_next.cast_const();
28239 }
28240
28241 fn address(&mut self) -> *mut std::ffi::c_void {
28242 std::ptr::from_mut(self).cast()
28243 }
28244}
28245
28246impl<'a, 'root> crate::Extends<vk::MemoryMapInfo<'root>> for vk::MemoryMapPlacedInfoEXT<'a> {}
28247
28248impl<'a> crate::construction::sealed::ChainNode
28249 for vk::PhysicalDeviceShaderBfloat16FeaturesKHR<'a>
28250{
28251 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR;
28252
28253 fn s_type(&self) -> vk::StructureType {
28254 self.s_type
28255 }
28256
28257 fn p_next(&self) -> *const std::ffi::c_void {
28258 self.p_next.cast_const()
28259 }
28260
28261 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28262 self.p_next = p_next;
28263 }
28264
28265 fn address(&mut self) -> *mut std::ffi::c_void {
28266 std::ptr::from_mut(self).cast()
28267 }
28268}
28269
28270impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28271 for vk::PhysicalDeviceShaderBfloat16FeaturesKHR<'a>
28272{
28273}
28274
28275impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28276 for vk::PhysicalDeviceShaderBfloat16FeaturesKHR<'a>
28277{
28278}
28279
28280impl<'a> crate::construction::sealed::ChainNode
28281 for vk::PhysicalDeviceRawAccessChainsFeaturesNV<'a>
28282{
28283 const S_TYPE: vk::StructureType =
28284 vk::StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
28285
28286 fn s_type(&self) -> vk::StructureType {
28287 self.s_type
28288 }
28289
28290 fn p_next(&self) -> *const std::ffi::c_void {
28291 self.p_next.cast_const()
28292 }
28293
28294 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28295 self.p_next = p_next;
28296 }
28297
28298 fn address(&mut self) -> *mut std::ffi::c_void {
28299 std::ptr::from_mut(self).cast()
28300 }
28301}
28302
28303impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28304 for vk::PhysicalDeviceRawAccessChainsFeaturesNV<'a>
28305{
28306}
28307
28308impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28309 for vk::PhysicalDeviceRawAccessChainsFeaturesNV<'a>
28310{
28311}
28312
28313impl<'a> crate::construction::sealed::ChainNode
28314 for vk::PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a>
28315{
28316 const S_TYPE: vk::StructureType =
28317 vk::StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV;
28318
28319 fn s_type(&self) -> vk::StructureType {
28320 self.s_type
28321 }
28322
28323 fn p_next(&self) -> *const std::ffi::c_void {
28324 self.p_next.cast_const()
28325 }
28326
28327 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28328 self.p_next = p_next;
28329 }
28330
28331 fn address(&mut self) -> *mut std::ffi::c_void {
28332 std::ptr::from_mut(self).cast()
28333 }
28334}
28335
28336impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28337 for vk::PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a>
28338{
28339}
28340
28341impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28342 for vk::PhysicalDeviceCommandBufferInheritanceFeaturesNV<'a>
28343{
28344}
28345
28346impl<'a> crate::construction::sealed::ChainNode
28347 for vk::PhysicalDeviceImageAlignmentControlFeaturesMESA<'a>
28348{
28349 const S_TYPE: vk::StructureType =
28350 vk::StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA;
28351
28352 fn s_type(&self) -> vk::StructureType {
28353 self.s_type
28354 }
28355
28356 fn p_next(&self) -> *const std::ffi::c_void {
28357 self.p_next.cast_const()
28358 }
28359
28360 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28361 self.p_next = p_next;
28362 }
28363
28364 fn address(&mut self) -> *mut std::ffi::c_void {
28365 std::ptr::from_mut(self).cast()
28366 }
28367}
28368
28369impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28370 for vk::PhysicalDeviceImageAlignmentControlFeaturesMESA<'a>
28371{
28372}
28373
28374impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28375 for vk::PhysicalDeviceImageAlignmentControlFeaturesMESA<'a>
28376{
28377}
28378
28379impl<'a> crate::construction::sealed::ChainNode
28380 for vk::PhysicalDeviceImageAlignmentControlPropertiesMESA<'a>
28381{
28382 const S_TYPE: vk::StructureType =
28383 vk::StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA;
28384
28385 fn s_type(&self) -> vk::StructureType {
28386 self.s_type
28387 }
28388
28389 fn p_next(&self) -> *const std::ffi::c_void {
28390 self.p_next.cast_const()
28391 }
28392
28393 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28394 self.p_next = p_next;
28395 }
28396
28397 fn address(&mut self) -> *mut std::ffi::c_void {
28398 std::ptr::from_mut(self).cast()
28399 }
28400}
28401
28402impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
28403 for vk::PhysicalDeviceImageAlignmentControlPropertiesMESA<'a>
28404{
28405}
28406
28407impl<'a> crate::construction::sealed::ChainNode for vk::ImageAlignmentControlCreateInfoMESA<'a> {
28408 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA;
28409
28410 fn s_type(&self) -> vk::StructureType {
28411 self.s_type
28412 }
28413
28414 fn p_next(&self) -> *const std::ffi::c_void {
28415 self.p_next
28416 }
28417
28418 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28419 self.p_next = p_next.cast_const();
28420 }
28421
28422 fn address(&mut self) -> *mut std::ffi::c_void {
28423 std::ptr::from_mut(self).cast()
28424 }
28425}
28426
28427impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
28428 for vk::ImageAlignmentControlCreateInfoMESA<'a>
28429{
28430}
28431
28432impl<'a> crate::construction::sealed::ChainNode
28433 for vk::PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a>
28434{
28435 const S_TYPE: vk::StructureType =
28436 vk::StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT;
28437
28438 fn s_type(&self) -> vk::StructureType {
28439 self.s_type
28440 }
28441
28442 fn p_next(&self) -> *const std::ffi::c_void {
28443 self.p_next.cast_const()
28444 }
28445
28446 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28447 self.p_next = p_next;
28448 }
28449
28450 fn address(&mut self) -> *mut std::ffi::c_void {
28451 std::ptr::from_mut(self).cast()
28452 }
28453}
28454
28455impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28456 for vk::PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a>
28457{
28458}
28459
28460impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28461 for vk::PhysicalDeviceShaderReplicatedCompositesFeaturesEXT<'a>
28462{
28463}
28464
28465impl<'a> crate::construction::sealed::ChainNode
28466 for vk::PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a>
28467{
28468 const S_TYPE: vk::StructureType =
28469 vk::StructureType::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR;
28470
28471 fn s_type(&self) -> vk::StructureType {
28472 self.s_type
28473 }
28474
28475 fn p_next(&self) -> *const std::ffi::c_void {
28476 self.p_next.cast_const()
28477 }
28478
28479 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28480 self.p_next = p_next;
28481 }
28482
28483 fn address(&mut self) -> *mut std::ffi::c_void {
28484 std::ptr::from_mut(self).cast()
28485 }
28486}
28487
28488impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28489 for vk::PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a>
28490{
28491}
28492
28493impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28494 for vk::PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR<'a>
28495{
28496}
28497
28498impl<'a> crate::construction::sealed::ChainNode
28499 for vk::PhysicalDeviceCooperativeMatrix2FeaturesNV<'a>
28500{
28501 const S_TYPE: vk::StructureType =
28502 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;
28503
28504 fn s_type(&self) -> vk::StructureType {
28505 self.s_type
28506 }
28507
28508 fn p_next(&self) -> *const std::ffi::c_void {
28509 self.p_next.cast_const()
28510 }
28511
28512 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28513 self.p_next = p_next;
28514 }
28515
28516 fn address(&mut self) -> *mut std::ffi::c_void {
28517 std::ptr::from_mut(self).cast()
28518 }
28519}
28520
28521impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28522 for vk::PhysicalDeviceCooperativeMatrix2FeaturesNV<'a>
28523{
28524}
28525
28526impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28527 for vk::PhysicalDeviceCooperativeMatrix2FeaturesNV<'a>
28528{
28529}
28530
28531impl<'a> crate::construction::sealed::ChainNode
28532 for vk::PhysicalDeviceCooperativeMatrix2PropertiesNV<'a>
28533{
28534 const S_TYPE: vk::StructureType =
28535 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV;
28536
28537 fn s_type(&self) -> vk::StructureType {
28538 self.s_type
28539 }
28540
28541 fn p_next(&self) -> *const std::ffi::c_void {
28542 self.p_next.cast_const()
28543 }
28544
28545 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28546 self.p_next = p_next;
28547 }
28548
28549 fn address(&mut self) -> *mut std::ffi::c_void {
28550 std::ptr::from_mut(self).cast()
28551 }
28552}
28553
28554impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
28555 for vk::PhysicalDeviceCooperativeMatrix2PropertiesNV<'a>
28556{
28557}
28558
28559impl<'a> crate::construction::sealed::ChainNode
28560 for vk::CooperativeMatrixFlexibleDimensionsPropertiesNV<'a>
28561{
28562 const S_TYPE: vk::StructureType =
28563 vk::StructureType::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV;
28564
28565 fn s_type(&self) -> vk::StructureType {
28566 self.s_type
28567 }
28568
28569 fn p_next(&self) -> *const std::ffi::c_void {
28570 self.p_next.cast_const()
28571 }
28572
28573 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28574 self.p_next = p_next;
28575 }
28576
28577 fn address(&mut self) -> *mut std::ffi::c_void {
28578 std::ptr::from_mut(self).cast()
28579 }
28580}
28581
28582impl<'a> crate::construction::sealed::ChainNode
28583 for vk::PhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV<'a>
28584{
28585 const S_TYPE: vk::StructureType =
28586 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_DECODE_VECTOR_FEATURES_NV;
28587
28588 fn s_type(&self) -> vk::StructureType {
28589 self.s_type
28590 }
28591
28592 fn p_next(&self) -> *const std::ffi::c_void {
28593 self.p_next.cast_const()
28594 }
28595
28596 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28597 self.p_next = p_next;
28598 }
28599
28600 fn address(&mut self) -> *mut std::ffi::c_void {
28601 std::ptr::from_mut(self).cast()
28602 }
28603}
28604
28605impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28606 for vk::PhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV<'a>
28607{
28608}
28609
28610impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28611 for vk::PhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV<'a>
28612{
28613}
28614
28615impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceHdrVividFeaturesHUAWEI<'a> {
28616 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI;
28617
28618 fn s_type(&self) -> vk::StructureType {
28619 self.s_type
28620 }
28621
28622 fn p_next(&self) -> *const std::ffi::c_void {
28623 self.p_next.cast_const()
28624 }
28625
28626 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28627 self.p_next = p_next;
28628 }
28629
28630 fn address(&mut self) -> *mut std::ffi::c_void {
28631 std::ptr::from_mut(self).cast()
28632 }
28633}
28634
28635impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28636 for vk::PhysicalDeviceHdrVividFeaturesHUAWEI<'a>
28637{
28638}
28639
28640impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28641 for vk::PhysicalDeviceHdrVividFeaturesHUAWEI<'a>
28642{
28643}
28644
28645impl<'a> crate::construction::sealed::ChainNode
28646 for vk::PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'a>
28647{
28648 const S_TYPE: vk::StructureType =
28649 vk::StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT;
28650
28651 fn s_type(&self) -> vk::StructureType {
28652 self.s_type
28653 }
28654
28655 fn p_next(&self) -> *const std::ffi::c_void {
28656 self.p_next.cast_const()
28657 }
28658
28659 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28660 self.p_next = p_next;
28661 }
28662
28663 fn address(&mut self) -> *mut std::ffi::c_void {
28664 std::ptr::from_mut(self).cast()
28665 }
28666}
28667
28668impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28669 for vk::PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'a>
28670{
28671}
28672
28673impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28674 for vk::PhysicalDeviceVertexAttributeRobustnessFeaturesEXT<'a>
28675{
28676}
28677
28678#[cfg(feature = "provisional")]
28679impl<'a> crate::construction::sealed::ChainNode
28680 for vk::PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'a>
28681{
28682 const S_TYPE: vk::StructureType =
28683 vk::StructureType::PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX;
28684
28685 fn s_type(&self) -> vk::StructureType {
28686 self.s_type
28687 }
28688
28689 fn p_next(&self) -> *const std::ffi::c_void {
28690 self.p_next.cast_const()
28691 }
28692
28693 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28694 self.p_next = p_next;
28695 }
28696
28697 fn address(&mut self) -> *mut std::ffi::c_void {
28698 std::ptr::from_mut(self).cast()
28699 }
28700}
28701
28702#[cfg(feature = "provisional")]
28703impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28704 for vk::PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'a>
28705{
28706}
28707
28708#[cfg(feature = "provisional")]
28709impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28710 for vk::PhysicalDeviceDenseGeometryFormatFeaturesAMDX<'a>
28711{
28712}
28713
28714#[cfg(feature = "provisional")]
28715impl<'a> crate::construction::sealed::ChainNode
28716 for vk::AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'a>
28717{
28718 const S_TYPE: vk::StructureType =
28719 vk::StructureType::ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX;
28720
28721 fn s_type(&self) -> vk::StructureType {
28722 self.s_type
28723 }
28724
28725 fn p_next(&self) -> *const std::ffi::c_void {
28726 self.p_next
28727 }
28728
28729 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28730 self.p_next = p_next.cast_const();
28731 }
28732
28733 fn address(&mut self) -> *mut std::ffi::c_void {
28734 std::ptr::from_mut(self).cast()
28735 }
28736}
28737
28738#[cfg(feature = "provisional")]
28739impl<'a, 'root> crate::Extends<vk::AccelerationStructureGeometryKHR<'root>>
28740 for vk::AccelerationStructureDenseGeometryFormatTrianglesDataAMDX<'a>
28741{
28742}
28743
28744impl<'a> crate::construction::sealed::ChainNode
28745 for vk::PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a>
28746{
28747 const S_TYPE: vk::StructureType =
28748 vk::StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR;
28749
28750 fn s_type(&self) -> vk::StructureType {
28751 self.s_type
28752 }
28753
28754 fn p_next(&self) -> *const std::ffi::c_void {
28755 self.p_next.cast_const()
28756 }
28757
28758 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28759 self.p_next = p_next;
28760 }
28761
28762 fn address(&mut self) -> *mut std::ffi::c_void {
28763 std::ptr::from_mut(self).cast()
28764 }
28765}
28766
28767impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28768 for vk::PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a>
28769{
28770}
28771
28772impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28773 for vk::PhysicalDeviceDepthClampZeroOneFeaturesKHR<'a>
28774{
28775}
28776
28777impl<'a> crate::construction::sealed::ChainNode
28778 for vk::PhysicalDeviceCooperativeVectorFeaturesNV<'a>
28779{
28780 const S_TYPE: vk::StructureType =
28781 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV;
28782
28783 fn s_type(&self) -> vk::StructureType {
28784 self.s_type
28785 }
28786
28787 fn p_next(&self) -> *const std::ffi::c_void {
28788 self.p_next.cast_const()
28789 }
28790
28791 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28792 self.p_next = p_next;
28793 }
28794
28795 fn address(&mut self) -> *mut std::ffi::c_void {
28796 std::ptr::from_mut(self).cast()
28797 }
28798}
28799
28800impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28801 for vk::PhysicalDeviceCooperativeVectorFeaturesNV<'a>
28802{
28803}
28804
28805impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28806 for vk::PhysicalDeviceCooperativeVectorFeaturesNV<'a>
28807{
28808}
28809
28810impl<'a> crate::construction::sealed::ChainNode for vk::CooperativeVectorPropertiesNV<'a> {
28811 const S_TYPE: vk::StructureType = vk::StructureType::COOPERATIVE_VECTOR_PROPERTIES_NV;
28812
28813 fn s_type(&self) -> vk::StructureType {
28814 self.s_type
28815 }
28816
28817 fn p_next(&self) -> *const std::ffi::c_void {
28818 self.p_next.cast_const()
28819 }
28820
28821 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28822 self.p_next = p_next;
28823 }
28824
28825 fn address(&mut self) -> *mut std::ffi::c_void {
28826 std::ptr::from_mut(self).cast()
28827 }
28828}
28829
28830impl<'a> crate::construction::sealed::ChainNode
28831 for vk::PhysicalDeviceCooperativeVectorPropertiesNV<'a>
28832{
28833 const S_TYPE: vk::StructureType =
28834 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV;
28835
28836 fn s_type(&self) -> vk::StructureType {
28837 self.s_type
28838 }
28839
28840 fn p_next(&self) -> *const std::ffi::c_void {
28841 self.p_next.cast_const()
28842 }
28843
28844 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28845 self.p_next = p_next;
28846 }
28847
28848 fn address(&mut self) -> *mut std::ffi::c_void {
28849 std::ptr::from_mut(self).cast()
28850 }
28851}
28852
28853impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
28854 for vk::PhysicalDeviceCooperativeVectorPropertiesNV<'a>
28855{
28856}
28857
28858impl<'a> crate::construction::sealed::ChainNode for vk::ConvertCooperativeVectorMatrixInfoNV<'a> {
28859 const S_TYPE: vk::StructureType = vk::StructureType::CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV;
28860
28861 fn s_type(&self) -> vk::StructureType {
28862 self.s_type
28863 }
28864
28865 fn p_next(&self) -> *const std::ffi::c_void {
28866 self.p_next
28867 }
28868
28869 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28870 self.p_next = p_next.cast_const();
28871 }
28872
28873 fn address(&mut self) -> *mut std::ffi::c_void {
28874 std::ptr::from_mut(self).cast()
28875 }
28876}
28877
28878impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceTileShadingFeaturesQCOM<'a> {
28879 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM;
28880
28881 fn s_type(&self) -> vk::StructureType {
28882 self.s_type
28883 }
28884
28885 fn p_next(&self) -> *const std::ffi::c_void {
28886 self.p_next.cast_const()
28887 }
28888
28889 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28890 self.p_next = p_next;
28891 }
28892
28893 fn address(&mut self) -> *mut std::ffi::c_void {
28894 std::ptr::from_mut(self).cast()
28895 }
28896}
28897
28898impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
28899 for vk::PhysicalDeviceTileShadingFeaturesQCOM<'a>
28900{
28901}
28902
28903impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
28904 for vk::PhysicalDeviceTileShadingFeaturesQCOM<'a>
28905{
28906}
28907
28908impl<'a> crate::construction::sealed::ChainNode
28909 for vk::PhysicalDeviceTileShadingPropertiesQCOM<'a>
28910{
28911 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM;
28912
28913 fn s_type(&self) -> vk::StructureType {
28914 self.s_type
28915 }
28916
28917 fn p_next(&self) -> *const std::ffi::c_void {
28918 self.p_next.cast_const()
28919 }
28920
28921 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28922 self.p_next = p_next;
28923 }
28924
28925 fn address(&mut self) -> *mut std::ffi::c_void {
28926 std::ptr::from_mut(self).cast()
28927 }
28928}
28929
28930impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
28931 for vk::PhysicalDeviceTileShadingPropertiesQCOM<'a>
28932{
28933}
28934
28935impl<'a> crate::construction::sealed::ChainNode for vk::RenderPassTileShadingCreateInfoQCOM<'a> {
28936 const S_TYPE: vk::StructureType = vk::StructureType::RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM;
28937
28938 fn s_type(&self) -> vk::StructureType {
28939 self.s_type
28940 }
28941
28942 fn p_next(&self) -> *const std::ffi::c_void {
28943 self.p_next
28944 }
28945
28946 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28947 self.p_next = p_next.cast_const();
28948 }
28949
28950 fn address(&mut self) -> *mut std::ffi::c_void {
28951 std::ptr::from_mut(self).cast()
28952 }
28953}
28954
28955impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo<'root>>
28956 for vk::RenderPassTileShadingCreateInfoQCOM<'a>
28957{
28958}
28959
28960impl<'a, 'root> crate::Extends<vk::RenderPassCreateInfo2<'root>>
28961 for vk::RenderPassTileShadingCreateInfoQCOM<'a>
28962{
28963}
28964
28965impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
28966 for vk::RenderPassTileShadingCreateInfoQCOM<'a>
28967{
28968}
28969
28970impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
28971 for vk::RenderPassTileShadingCreateInfoQCOM<'a>
28972{
28973}
28974
28975impl<'a> crate::construction::sealed::ChainNode for vk::PerTileBeginInfoQCOM<'a> {
28976 const S_TYPE: vk::StructureType = vk::StructureType::PER_TILE_BEGIN_INFO_QCOM;
28977
28978 fn s_type(&self) -> vk::StructureType {
28979 self.s_type
28980 }
28981
28982 fn p_next(&self) -> *const std::ffi::c_void {
28983 self.p_next
28984 }
28985
28986 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
28987 self.p_next = p_next.cast_const();
28988 }
28989
28990 fn address(&mut self) -> *mut std::ffi::c_void {
28991 std::ptr::from_mut(self).cast()
28992 }
28993}
28994
28995impl<'a> crate::construction::sealed::ChainNode for vk::PerTileEndInfoQCOM<'a> {
28996 const S_TYPE: vk::StructureType = vk::StructureType::PER_TILE_END_INFO_QCOM;
28997
28998 fn s_type(&self) -> vk::StructureType {
28999 self.s_type
29000 }
29001
29002 fn p_next(&self) -> *const std::ffi::c_void {
29003 self.p_next
29004 }
29005
29006 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29007 self.p_next = p_next.cast_const();
29008 }
29009
29010 fn address(&mut self) -> *mut std::ffi::c_void {
29011 std::ptr::from_mut(self).cast()
29012 }
29013}
29014
29015impl<'a> crate::construction::sealed::ChainNode for vk::DispatchTileInfoQCOM<'a> {
29016 const S_TYPE: vk::StructureType = vk::StructureType::DISPATCH_TILE_INFO_QCOM;
29017
29018 fn s_type(&self) -> vk::StructureType {
29019 self.s_type
29020 }
29021
29022 fn p_next(&self) -> *const std::ffi::c_void {
29023 self.p_next
29024 }
29025
29026 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29027 self.p_next = p_next.cast_const();
29028 }
29029
29030 fn address(&mut self) -> *mut std::ffi::c_void {
29031 std::ptr::from_mut(self).cast()
29032 }
29033}
29034
29035impl<'a> crate::construction::sealed::ChainNode
29036 for vk::PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'a>
29037{
29038 const S_TYPE: vk::StructureType =
29039 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE;
29040
29041 fn s_type(&self) -> vk::StructureType {
29042 self.s_type
29043 }
29044
29045 fn p_next(&self) -> *const std::ffi::c_void {
29046 self.p_next.cast_const()
29047 }
29048
29049 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29050 self.p_next = p_next;
29051 }
29052
29053 fn address(&mut self) -> *mut std::ffi::c_void {
29054 std::ptr::from_mut(self).cast()
29055 }
29056}
29057
29058impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
29059 for vk::PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE<'a>
29060{
29061}
29062
29063impl<'a> crate::construction::sealed::ChainNode
29064 for vk::PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'a>
29065{
29066 const S_TYPE: vk::StructureType =
29067 vk::StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE;
29068
29069 fn s_type(&self) -> vk::StructureType {
29070 self.s_type
29071 }
29072
29073 fn p_next(&self) -> *const std::ffi::c_void {
29074 self.p_next.cast_const()
29075 }
29076
29077 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29078 self.p_next = p_next;
29079 }
29080
29081 fn address(&mut self) -> *mut std::ffi::c_void {
29082 std::ptr::from_mut(self).cast()
29083 }
29084}
29085
29086impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29087 for vk::PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'a>
29088{
29089}
29090
29091impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29092 for vk::PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE<'a>
29093{
29094}
29095
29096impl<'a> crate::construction::sealed::ChainNode
29097 for vk::PipelineFragmentDensityMapLayeredCreateInfoVALVE<'a>
29098{
29099 const S_TYPE: vk::StructureType =
29100 vk::StructureType::PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE;
29101
29102 fn s_type(&self) -> vk::StructureType {
29103 self.s_type
29104 }
29105
29106 fn p_next(&self) -> *const std::ffi::c_void {
29107 self.p_next
29108 }
29109
29110 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29111 self.p_next = p_next.cast_const();
29112 }
29113
29114 fn address(&mut self) -> *mut std::ffi::c_void {
29115 std::ptr::from_mut(self).cast()
29116 }
29117}
29118
29119impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
29120 for vk::PipelineFragmentDensityMapLayeredCreateInfoVALVE<'a>
29121{
29122}
29123
29124impl<'a> crate::construction::sealed::ChainNode for vk::SetPresentConfigNV<'a> {
29125 const S_TYPE: vk::StructureType = vk::StructureType::SET_PRESENT_CONFIG_NV;
29126
29127 fn s_type(&self) -> vk::StructureType {
29128 self.s_type
29129 }
29130
29131 fn p_next(&self) -> *const std::ffi::c_void {
29132 self.p_next
29133 }
29134
29135 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29136 self.p_next = p_next.cast_const();
29137 }
29138
29139 fn address(&mut self) -> *mut std::ffi::c_void {
29140 std::ptr::from_mut(self).cast()
29141 }
29142}
29143
29144impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::SetPresentConfigNV<'a> {}
29145
29146impl<'a> crate::construction::sealed::ChainNode
29147 for vk::PhysicalDevicePresentMeteringFeaturesNV<'a>
29148{
29149 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV;
29150
29151 fn s_type(&self) -> vk::StructureType {
29152 self.s_type
29153 }
29154
29155 fn p_next(&self) -> *const std::ffi::c_void {
29156 self.p_next.cast_const()
29157 }
29158
29159 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29160 self.p_next = p_next;
29161 }
29162
29163 fn address(&mut self) -> *mut std::ffi::c_void {
29164 std::ptr::from_mut(self).cast()
29165 }
29166}
29167
29168impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29169 for vk::PhysicalDevicePresentMeteringFeaturesNV<'a>
29170{
29171}
29172
29173impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29174 for vk::PhysicalDevicePresentMeteringFeaturesNV<'a>
29175{
29176}
29177
29178impl<'a> crate::construction::sealed::ChainNode for vk::ExternalComputeQueueDeviceCreateInfoNV<'a> {
29179 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV;
29180
29181 fn s_type(&self) -> vk::StructureType {
29182 self.s_type
29183 }
29184
29185 fn p_next(&self) -> *const std::ffi::c_void {
29186 self.p_next
29187 }
29188
29189 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29190 self.p_next = p_next.cast_const();
29191 }
29192
29193 fn address(&mut self) -> *mut std::ffi::c_void {
29194 std::ptr::from_mut(self).cast()
29195 }
29196}
29197
29198impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29199 for vk::ExternalComputeQueueDeviceCreateInfoNV<'a>
29200{
29201}
29202
29203impl<'a> crate::construction::sealed::ChainNode for vk::ExternalComputeQueueCreateInfoNV<'a> {
29204 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV;
29205
29206 fn s_type(&self) -> vk::StructureType {
29207 self.s_type
29208 }
29209
29210 fn p_next(&self) -> *const std::ffi::c_void {
29211 self.p_next
29212 }
29213
29214 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29215 self.p_next = p_next.cast_const();
29216 }
29217
29218 fn address(&mut self) -> *mut std::ffi::c_void {
29219 std::ptr::from_mut(self).cast()
29220 }
29221}
29222
29223impl<'a> crate::construction::sealed::ChainNode for vk::ExternalComputeQueueDataParamsNV<'a> {
29224 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV;
29225
29226 fn s_type(&self) -> vk::StructureType {
29227 self.s_type
29228 }
29229
29230 fn p_next(&self) -> *const std::ffi::c_void {
29231 self.p_next
29232 }
29233
29234 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29235 self.p_next = p_next.cast_const();
29236 }
29237
29238 fn address(&mut self) -> *mut std::ffi::c_void {
29239 std::ptr::from_mut(self).cast()
29240 }
29241}
29242
29243impl<'a> crate::construction::sealed::ChainNode
29244 for vk::PhysicalDeviceExternalComputeQueuePropertiesNV<'a>
29245{
29246 const S_TYPE: vk::StructureType =
29247 vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV;
29248
29249 fn s_type(&self) -> vk::StructureType {
29250 self.s_type
29251 }
29252
29253 fn p_next(&self) -> *const std::ffi::c_void {
29254 self.p_next.cast_const()
29255 }
29256
29257 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29258 self.p_next = p_next;
29259 }
29260
29261 fn address(&mut self) -> *mut std::ffi::c_void {
29262 std::ptr::from_mut(self).cast()
29263 }
29264}
29265
29266impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
29267 for vk::PhysicalDeviceExternalComputeQueuePropertiesNV<'a>
29268{
29269}
29270
29271impl<'a> crate::construction::sealed::ChainNode
29272 for vk::PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT<'a>
29273{
29274 const S_TYPE: vk::StructureType =
29275 vk::StructureType::PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT;
29276
29277 fn s_type(&self) -> vk::StructureType {
29278 self.s_type
29279 }
29280
29281 fn p_next(&self) -> *const std::ffi::c_void {
29282 self.p_next.cast_const()
29283 }
29284
29285 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29286 self.p_next = p_next;
29287 }
29288
29289 fn address(&mut self) -> *mut std::ffi::c_void {
29290 std::ptr::from_mut(self).cast()
29291 }
29292}
29293
29294impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29295 for vk::PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT<'a>
29296{
29297}
29298
29299impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29300 for vk::PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT<'a>
29301{
29302}
29303
29304impl<'a> crate::construction::sealed::ChainNode
29305 for vk::PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE<'a>
29306{
29307 const S_TYPE: vk::StructureType =
29308 vk::StructureType::PHYSICAL_DEVICE_SHADER_MIXED_FLOAT_DOT_PRODUCT_FEATURES_VALVE;
29309
29310 fn s_type(&self) -> vk::StructureType {
29311 self.s_type
29312 }
29313
29314 fn p_next(&self) -> *const std::ffi::c_void {
29315 self.p_next.cast_const()
29316 }
29317
29318 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29319 self.p_next = p_next;
29320 }
29321
29322 fn address(&mut self) -> *mut std::ffi::c_void {
29323 std::ptr::from_mut(self).cast()
29324 }
29325}
29326
29327impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29328 for vk::PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE<'a>
29329{
29330}
29331
29332impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29333 for vk::PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE<'a>
29334{
29335}
29336
29337impl<'a> crate::construction::sealed::ChainNode
29338 for vk::PhysicalDevicePrimitiveRestartIndexFeaturesEXT<'a>
29339{
29340 const S_TYPE: vk::StructureType =
29341 vk::StructureType::PHYSICAL_DEVICE_PRIMITIVE_RESTART_INDEX_FEATURES_EXT;
29342
29343 fn s_type(&self) -> vk::StructureType {
29344 self.s_type
29345 }
29346
29347 fn p_next(&self) -> *const std::ffi::c_void {
29348 self.p_next.cast_const()
29349 }
29350
29351 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29352 self.p_next = p_next;
29353 }
29354
29355 fn address(&mut self) -> *mut std::ffi::c_void {
29356 std::ptr::from_mut(self).cast()
29357 }
29358}
29359
29360impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29361 for vk::PhysicalDevicePrimitiveRestartIndexFeaturesEXT<'a>
29362{
29363}
29364
29365impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29366 for vk::PhysicalDevicePrimitiveRestartIndexFeaturesEXT<'a>
29367{
29368}
29369
29370impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceFormatPackFeaturesARM<'a> {
29371 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM;
29372
29373 fn s_type(&self) -> vk::StructureType {
29374 self.s_type
29375 }
29376
29377 fn p_next(&self) -> *const std::ffi::c_void {
29378 self.p_next.cast_const()
29379 }
29380
29381 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29382 self.p_next = p_next;
29383 }
29384
29385 fn address(&mut self) -> *mut std::ffi::c_void {
29386 std::ptr::from_mut(self).cast()
29387 }
29388}
29389
29390impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29391 for vk::PhysicalDeviceFormatPackFeaturesARM<'a>
29392{
29393}
29394
29395impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29396 for vk::PhysicalDeviceFormatPackFeaturesARM<'a>
29397{
29398}
29399
29400impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceThrottleHintFeaturesSEC<'a> {
29401 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_THROTTLE_HINT_FEATURES_SEC;
29402
29403 fn s_type(&self) -> vk::StructureType {
29404 self.s_type
29405 }
29406
29407 fn p_next(&self) -> *const std::ffi::c_void {
29408 self.p_next.cast_const()
29409 }
29410
29411 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29412 self.p_next = p_next;
29413 }
29414
29415 fn address(&mut self) -> *mut std::ffi::c_void {
29416 std::ptr::from_mut(self).cast()
29417 }
29418}
29419
29420impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29421 for vk::PhysicalDeviceThrottleHintFeaturesSEC<'a>
29422{
29423}
29424
29425impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29426 for vk::PhysicalDeviceThrottleHintFeaturesSEC<'a>
29427{
29428}
29429
29430impl<'a> crate::construction::sealed::ChainNode for vk::ThrottleHintSubmitInfoSEC<'a> {
29431 const S_TYPE: vk::StructureType = vk::StructureType::THROTTLE_HINT_SUBMIT_INFO_SEC;
29432
29433 fn s_type(&self) -> vk::StructureType {
29434 self.s_type
29435 }
29436
29437 fn p_next(&self) -> *const std::ffi::c_void {
29438 self.p_next
29439 }
29440
29441 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29442 self.p_next = p_next.cast_const();
29443 }
29444
29445 fn address(&mut self) -> *mut std::ffi::c_void {
29446 std::ptr::from_mut(self).cast()
29447 }
29448}
29449
29450impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::ThrottleHintSubmitInfoSEC<'a> {}
29451
29452impl<'a> crate::construction::sealed::ChainNode for vk::TensorDescriptionARM<'a> {
29453 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_DESCRIPTION_ARM;
29454
29455 fn s_type(&self) -> vk::StructureType {
29456 self.s_type
29457 }
29458
29459 fn p_next(&self) -> *const std::ffi::c_void {
29460 self.p_next
29461 }
29462
29463 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29464 self.p_next = p_next.cast_const();
29465 }
29466
29467 fn address(&mut self) -> *mut std::ffi::c_void {
29468 std::ptr::from_mut(self).cast()
29469 }
29470}
29471
29472impl<'a, 'root> crate::Extends<vk::DataGraphPipelineResourceInfoARM<'root>>
29473 for vk::TensorDescriptionARM<'a>
29474{
29475}
29476
29477impl<'a, 'root> crate::Extends<vk::DataGraphPipelineConstantARM<'root>>
29478 for vk::TensorDescriptionARM<'a>
29479{
29480}
29481
29482impl<'a> crate::construction::sealed::ChainNode for vk::TensorCreateInfoARM<'a> {
29483 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_CREATE_INFO_ARM;
29484
29485 fn s_type(&self) -> vk::StructureType {
29486 self.s_type
29487 }
29488
29489 fn p_next(&self) -> *const std::ffi::c_void {
29490 self.p_next
29491 }
29492
29493 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29494 self.p_next = p_next.cast_const();
29495 }
29496
29497 fn address(&mut self) -> *mut std::ffi::c_void {
29498 std::ptr::from_mut(self).cast()
29499 }
29500}
29501
29502impl<'a> crate::construction::sealed::ChainNode for vk::TensorViewCreateInfoARM<'a> {
29503 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_VIEW_CREATE_INFO_ARM;
29504
29505 fn s_type(&self) -> vk::StructureType {
29506 self.s_type
29507 }
29508
29509 fn p_next(&self) -> *const std::ffi::c_void {
29510 self.p_next
29511 }
29512
29513 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29514 self.p_next = p_next.cast_const();
29515 }
29516
29517 fn address(&mut self) -> *mut std::ffi::c_void {
29518 std::ptr::from_mut(self).cast()
29519 }
29520}
29521
29522impl<'a> crate::construction::sealed::ChainNode for vk::TensorMemoryRequirementsInfoARM<'a> {
29523 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_MEMORY_REQUIREMENTS_INFO_ARM;
29524
29525 fn s_type(&self) -> vk::StructureType {
29526 self.s_type
29527 }
29528
29529 fn p_next(&self) -> *const std::ffi::c_void {
29530 self.p_next
29531 }
29532
29533 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29534 self.p_next = p_next.cast_const();
29535 }
29536
29537 fn address(&mut self) -> *mut std::ffi::c_void {
29538 std::ptr::from_mut(self).cast()
29539 }
29540}
29541
29542impl<'a> crate::construction::sealed::ChainNode for vk::BindTensorMemoryInfoARM<'a> {
29543 const S_TYPE: vk::StructureType = vk::StructureType::BIND_TENSOR_MEMORY_INFO_ARM;
29544
29545 fn s_type(&self) -> vk::StructureType {
29546 self.s_type
29547 }
29548
29549 fn p_next(&self) -> *const std::ffi::c_void {
29550 self.p_next
29551 }
29552
29553 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29554 self.p_next = p_next.cast_const();
29555 }
29556
29557 fn address(&mut self) -> *mut std::ffi::c_void {
29558 std::ptr::from_mut(self).cast()
29559 }
29560}
29561
29562impl<'a> crate::construction::sealed::ChainNode for vk::WriteDescriptorSetTensorARM<'a> {
29563 const S_TYPE: vk::StructureType = vk::StructureType::WRITE_DESCRIPTOR_SET_TENSOR_ARM;
29564
29565 fn s_type(&self) -> vk::StructureType {
29566 self.s_type
29567 }
29568
29569 fn p_next(&self) -> *const std::ffi::c_void {
29570 self.p_next
29571 }
29572
29573 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29574 self.p_next = p_next.cast_const();
29575 }
29576
29577 fn address(&mut self) -> *mut std::ffi::c_void {
29578 std::ptr::from_mut(self).cast()
29579 }
29580}
29581
29582impl<'a, 'root> crate::Extends<vk::WriteDescriptorSet<'root>>
29583 for vk::WriteDescriptorSetTensorARM<'a>
29584{
29585}
29586
29587impl<'a> crate::construction::sealed::ChainNode for vk::TensorFormatPropertiesARM<'a> {
29588 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_FORMAT_PROPERTIES_ARM;
29589
29590 fn s_type(&self) -> vk::StructureType {
29591 self.s_type
29592 }
29593
29594 fn p_next(&self) -> *const std::ffi::c_void {
29595 self.p_next.cast_const()
29596 }
29597
29598 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29599 self.p_next = p_next;
29600 }
29601
29602 fn address(&mut self) -> *mut std::ffi::c_void {
29603 std::ptr::from_mut(self).cast()
29604 }
29605}
29606
29607impl<'a, 'root> crate::Extends<vk::FormatProperties2<'root>> for vk::TensorFormatPropertiesARM<'a> {}
29608
29609impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceTensorPropertiesARM<'a> {
29610 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM;
29611
29612 fn s_type(&self) -> vk::StructureType {
29613 self.s_type
29614 }
29615
29616 fn p_next(&self) -> *const std::ffi::c_void {
29617 self.p_next.cast_const()
29618 }
29619
29620 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29621 self.p_next = p_next;
29622 }
29623
29624 fn address(&mut self) -> *mut std::ffi::c_void {
29625 std::ptr::from_mut(self).cast()
29626 }
29627}
29628
29629impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
29630 for vk::PhysicalDeviceTensorPropertiesARM<'a>
29631{
29632}
29633
29634impl<'a> crate::construction::sealed::ChainNode for vk::TensorMemoryBarrierARM<'a> {
29635 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_MEMORY_BARRIER_ARM;
29636
29637 fn s_type(&self) -> vk::StructureType {
29638 self.s_type
29639 }
29640
29641 fn p_next(&self) -> *const std::ffi::c_void {
29642 self.p_next
29643 }
29644
29645 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29646 self.p_next = p_next.cast_const();
29647 }
29648
29649 fn address(&mut self) -> *mut std::ffi::c_void {
29650 std::ptr::from_mut(self).cast()
29651 }
29652}
29653
29654impl<'a, 'root> crate::Extends<vk::DependencyInfo<'root>> for vk::TensorMemoryBarrierARM<'a> {}
29655
29656impl<'a> crate::construction::sealed::ChainNode for vk::TensorDependencyInfoARM<'a> {
29657 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_DEPENDENCY_INFO_ARM;
29658
29659 fn s_type(&self) -> vk::StructureType {
29660 self.s_type
29661 }
29662
29663 fn p_next(&self) -> *const std::ffi::c_void {
29664 self.p_next
29665 }
29666
29667 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29668 self.p_next = p_next.cast_const();
29669 }
29670
29671 fn address(&mut self) -> *mut std::ffi::c_void {
29672 std::ptr::from_mut(self).cast()
29673 }
29674}
29675
29676impl<'a, 'root> crate::Extends<vk::DependencyInfo<'root>> for vk::TensorDependencyInfoARM<'a> {}
29677
29678impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceTensorFeaturesARM<'a> {
29679 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_TENSOR_FEATURES_ARM;
29680
29681 fn s_type(&self) -> vk::StructureType {
29682 self.s_type
29683 }
29684
29685 fn p_next(&self) -> *const std::ffi::c_void {
29686 self.p_next.cast_const()
29687 }
29688
29689 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29690 self.p_next = p_next;
29691 }
29692
29693 fn address(&mut self) -> *mut std::ffi::c_void {
29694 std::ptr::from_mut(self).cast()
29695 }
29696}
29697
29698impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29699 for vk::PhysicalDeviceTensorFeaturesARM<'a>
29700{
29701}
29702
29703impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29704 for vk::PhysicalDeviceTensorFeaturesARM<'a>
29705{
29706}
29707
29708impl<'a> crate::construction::sealed::ChainNode for vk::DeviceTensorMemoryRequirementsARM<'a> {
29709 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM;
29710
29711 fn s_type(&self) -> vk::StructureType {
29712 self.s_type
29713 }
29714
29715 fn p_next(&self) -> *const std::ffi::c_void {
29716 self.p_next
29717 }
29718
29719 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29720 self.p_next = p_next.cast_const();
29721 }
29722
29723 fn address(&mut self) -> *mut std::ffi::c_void {
29724 std::ptr::from_mut(self).cast()
29725 }
29726}
29727
29728impl<'a> crate::construction::sealed::ChainNode for vk::CopyTensorInfoARM<'a> {
29729 const S_TYPE: vk::StructureType = vk::StructureType::COPY_TENSOR_INFO_ARM;
29730
29731 fn s_type(&self) -> vk::StructureType {
29732 self.s_type
29733 }
29734
29735 fn p_next(&self) -> *const std::ffi::c_void {
29736 self.p_next
29737 }
29738
29739 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29740 self.p_next = p_next.cast_const();
29741 }
29742
29743 fn address(&mut self) -> *mut std::ffi::c_void {
29744 std::ptr::from_mut(self).cast()
29745 }
29746}
29747
29748impl<'a> crate::construction::sealed::ChainNode for vk::TensorCopyARM<'a> {
29749 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_COPY_ARM;
29750
29751 fn s_type(&self) -> vk::StructureType {
29752 self.s_type
29753 }
29754
29755 fn p_next(&self) -> *const std::ffi::c_void {
29756 self.p_next
29757 }
29758
29759 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29760 self.p_next = p_next.cast_const();
29761 }
29762
29763 fn address(&mut self) -> *mut std::ffi::c_void {
29764 std::ptr::from_mut(self).cast()
29765 }
29766}
29767
29768impl<'a> crate::construction::sealed::ChainNode for vk::MemoryDedicatedAllocateInfoTensorARM<'a> {
29769 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM;
29770
29771 fn s_type(&self) -> vk::StructureType {
29772 self.s_type
29773 }
29774
29775 fn p_next(&self) -> *const std::ffi::c_void {
29776 self.p_next
29777 }
29778
29779 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29780 self.p_next = p_next.cast_const();
29781 }
29782
29783 fn address(&mut self) -> *mut std::ffi::c_void {
29784 std::ptr::from_mut(self).cast()
29785 }
29786}
29787
29788impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
29789 for vk::MemoryDedicatedAllocateInfoTensorARM<'a>
29790{
29791}
29792
29793impl<'a> crate::construction::sealed::ChainNode
29794 for vk::PhysicalDeviceDescriptorBufferTensorPropertiesARM<'a>
29795{
29796 const S_TYPE: vk::StructureType =
29797 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM;
29798
29799 fn s_type(&self) -> vk::StructureType {
29800 self.s_type
29801 }
29802
29803 fn p_next(&self) -> *const std::ffi::c_void {
29804 self.p_next.cast_const()
29805 }
29806
29807 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29808 self.p_next = p_next;
29809 }
29810
29811 fn address(&mut self) -> *mut std::ffi::c_void {
29812 std::ptr::from_mut(self).cast()
29813 }
29814}
29815
29816impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
29817 for vk::PhysicalDeviceDescriptorBufferTensorPropertiesARM<'a>
29818{
29819}
29820
29821impl<'a> crate::construction::sealed::ChainNode
29822 for vk::PhysicalDeviceDescriptorBufferTensorFeaturesARM<'a>
29823{
29824 const S_TYPE: vk::StructureType =
29825 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM;
29826
29827 fn s_type(&self) -> vk::StructureType {
29828 self.s_type
29829 }
29830
29831 fn p_next(&self) -> *const std::ffi::c_void {
29832 self.p_next.cast_const()
29833 }
29834
29835 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29836 self.p_next = p_next;
29837 }
29838
29839 fn address(&mut self) -> *mut std::ffi::c_void {
29840 std::ptr::from_mut(self).cast()
29841 }
29842}
29843
29844impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
29845 for vk::PhysicalDeviceDescriptorBufferTensorFeaturesARM<'a>
29846{
29847}
29848
29849impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
29850 for vk::PhysicalDeviceDescriptorBufferTensorFeaturesARM<'a>
29851{
29852}
29853
29854impl<'a> crate::construction::sealed::ChainNode for vk::TensorCaptureDescriptorDataInfoARM<'a> {
29855 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM;
29856
29857 fn s_type(&self) -> vk::StructureType {
29858 self.s_type
29859 }
29860
29861 fn p_next(&self) -> *const std::ffi::c_void {
29862 self.p_next
29863 }
29864
29865 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29866 self.p_next = p_next.cast_const();
29867 }
29868
29869 fn address(&mut self) -> *mut std::ffi::c_void {
29870 std::ptr::from_mut(self).cast()
29871 }
29872}
29873
29874impl<'a> crate::construction::sealed::ChainNode for vk::TensorViewCaptureDescriptorDataInfoARM<'a> {
29875 const S_TYPE: vk::StructureType = vk::StructureType::TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM;
29876
29877 fn s_type(&self) -> vk::StructureType {
29878 self.s_type
29879 }
29880
29881 fn p_next(&self) -> *const std::ffi::c_void {
29882 self.p_next
29883 }
29884
29885 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29886 self.p_next = p_next.cast_const();
29887 }
29888
29889 fn address(&mut self) -> *mut std::ffi::c_void {
29890 std::ptr::from_mut(self).cast()
29891 }
29892}
29893
29894impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorGetTensorInfoARM<'a> {
29895 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_GET_TENSOR_INFO_ARM;
29896
29897 fn s_type(&self) -> vk::StructureType {
29898 self.s_type
29899 }
29900
29901 fn p_next(&self) -> *const std::ffi::c_void {
29902 self.p_next
29903 }
29904
29905 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29906 self.p_next = p_next.cast_const();
29907 }
29908
29909 fn address(&mut self) -> *mut std::ffi::c_void {
29910 std::ptr::from_mut(self).cast()
29911 }
29912}
29913
29914impl<'a, 'root> crate::Extends<vk::DescriptorGetInfoEXT<'root>>
29915 for vk::DescriptorGetTensorInfoARM<'a>
29916{
29917}
29918
29919impl<'a> crate::construction::sealed::ChainNode for vk::FrameBoundaryTensorsARM<'a> {
29920 const S_TYPE: vk::StructureType = vk::StructureType::FRAME_BOUNDARY_TENSORS_ARM;
29921
29922 fn s_type(&self) -> vk::StructureType {
29923 self.s_type
29924 }
29925
29926 fn p_next(&self) -> *const std::ffi::c_void {
29927 self.p_next
29928 }
29929
29930 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29931 self.p_next = p_next.cast_const();
29932 }
29933
29934 fn address(&mut self) -> *mut std::ffi::c_void {
29935 std::ptr::from_mut(self).cast()
29936 }
29937}
29938
29939impl<'a, 'root> crate::Extends<vk::SubmitInfo<'root>> for vk::FrameBoundaryTensorsARM<'a> {}
29940
29941impl<'a, 'root> crate::Extends<vk::SubmitInfo2<'root>> for vk::FrameBoundaryTensorsARM<'a> {}
29942
29943impl<'a, 'root> crate::Extends<vk::PresentInfoKHR<'root>> for vk::FrameBoundaryTensorsARM<'a> {}
29944
29945impl<'a, 'root> crate::Extends<vk::BindSparseInfo<'root>> for vk::FrameBoundaryTensorsARM<'a> {}
29946
29947impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceExternalTensorInfoARM<'a> {
29948 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM;
29949
29950 fn s_type(&self) -> vk::StructureType {
29951 self.s_type
29952 }
29953
29954 fn p_next(&self) -> *const std::ffi::c_void {
29955 self.p_next
29956 }
29957
29958 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29959 self.p_next = p_next.cast_const();
29960 }
29961
29962 fn address(&mut self) -> *mut std::ffi::c_void {
29963 std::ptr::from_mut(self).cast()
29964 }
29965}
29966
29967impl<'a> crate::construction::sealed::ChainNode for vk::ExternalTensorPropertiesARM<'a> {
29968 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_TENSOR_PROPERTIES_ARM;
29969
29970 fn s_type(&self) -> vk::StructureType {
29971 self.s_type
29972 }
29973
29974 fn p_next(&self) -> *const std::ffi::c_void {
29975 self.p_next
29976 }
29977
29978 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29979 self.p_next = p_next.cast_const();
29980 }
29981
29982 fn address(&mut self) -> *mut std::ffi::c_void {
29983 std::ptr::from_mut(self).cast()
29984 }
29985}
29986
29987impl<'a> crate::construction::sealed::ChainNode for vk::ExternalMemoryTensorCreateInfoARM<'a> {
29988 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM;
29989
29990 fn s_type(&self) -> vk::StructureType {
29991 self.s_type
29992 }
29993
29994 fn p_next(&self) -> *const std::ffi::c_void {
29995 self.p_next
29996 }
29997
29998 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
29999 self.p_next = p_next.cast_const();
30000 }
30001
30002 fn address(&mut self) -> *mut std::ffi::c_void {
30003 std::ptr::from_mut(self).cast()
30004 }
30005}
30006
30007impl<'a, 'root> crate::Extends<vk::TensorCreateInfoARM<'root>>
30008 for vk::ExternalMemoryTensorCreateInfoARM<'a>
30009{
30010}
30011
30012impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderFloat8FeaturesEXT<'a> {
30013 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT;
30014
30015 fn s_type(&self) -> vk::StructureType {
30016 self.s_type
30017 }
30018
30019 fn p_next(&self) -> *const std::ffi::c_void {
30020 self.p_next.cast_const()
30021 }
30022
30023 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30024 self.p_next = p_next;
30025 }
30026
30027 fn address(&mut self) -> *mut std::ffi::c_void {
30028 std::ptr::from_mut(self).cast()
30029 }
30030}
30031
30032impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30033 for vk::PhysicalDeviceShaderFloat8FeaturesEXT<'a>
30034{
30035}
30036
30037impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30038 for vk::PhysicalDeviceShaderFloat8FeaturesEXT<'a>
30039{
30040}
30041
30042#[cfg(feature = "platform-ohos")]
30043impl<'a> crate::construction::sealed::ChainNode for vk::SurfaceCreateInfoOHOS<'a> {
30044 const S_TYPE: vk::StructureType = vk::StructureType::SURFACE_CREATE_INFO_OHOS;
30045
30046 fn s_type(&self) -> vk::StructureType {
30047 self.s_type
30048 }
30049
30050 fn p_next(&self) -> *const std::ffi::c_void {
30051 self.p_next
30052 }
30053
30054 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30055 self.p_next = p_next.cast_const();
30056 }
30057
30058 fn address(&mut self) -> *mut std::ffi::c_void {
30059 std::ptr::from_mut(self).cast()
30060 }
30061}
30062
30063impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceDataGraphFeaturesARM<'a> {
30064 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM;
30065
30066 fn s_type(&self) -> vk::StructureType {
30067 self.s_type
30068 }
30069
30070 fn p_next(&self) -> *const std::ffi::c_void {
30071 self.p_next.cast_const()
30072 }
30073
30074 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30075 self.p_next = p_next;
30076 }
30077
30078 fn address(&mut self) -> *mut std::ffi::c_void {
30079 std::ptr::from_mut(self).cast()
30080 }
30081}
30082
30083impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30084 for vk::PhysicalDeviceDataGraphFeaturesARM<'a>
30085{
30086}
30087
30088impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30089 for vk::PhysicalDeviceDataGraphFeaturesARM<'a>
30090{
30091}
30092
30093impl<'a> crate::construction::sealed::ChainNode
30094 for vk::DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'a>
30095{
30096 const S_TYPE: vk::StructureType =
30097 vk::StructureType::DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM;
30098
30099 fn s_type(&self) -> vk::StructureType {
30100 self.s_type
30101 }
30102
30103 fn p_next(&self) -> *const std::ffi::c_void {
30104 self.p_next
30105 }
30106
30107 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30108 self.p_next = p_next.cast_const();
30109 }
30110
30111 fn address(&mut self) -> *mut std::ffi::c_void {
30112 std::ptr::from_mut(self).cast()
30113 }
30114}
30115
30116impl<'a, 'root> crate::Extends<vk::DataGraphPipelineConstantARM<'root>>
30117 for vk::DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM<'a>
30118{
30119}
30120
30121impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphPipelineConstantARM<'a> {
30122 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PIPELINE_CONSTANT_ARM;
30123
30124 fn s_type(&self) -> vk::StructureType {
30125 self.s_type
30126 }
30127
30128 fn p_next(&self) -> *const std::ffi::c_void {
30129 self.p_next
30130 }
30131
30132 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30133 self.p_next = p_next.cast_const();
30134 }
30135
30136 fn address(&mut self) -> *mut std::ffi::c_void {
30137 std::ptr::from_mut(self).cast()
30138 }
30139}
30140
30141impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphPipelineResourceInfoARM<'a> {
30142 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM;
30143
30144 fn s_type(&self) -> vk::StructureType {
30145 self.s_type
30146 }
30147
30148 fn p_next(&self) -> *const std::ffi::c_void {
30149 self.p_next
30150 }
30151
30152 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30153 self.p_next = p_next.cast_const();
30154 }
30155
30156 fn address(&mut self) -> *mut std::ffi::c_void {
30157 std::ptr::from_mut(self).cast()
30158 }
30159}
30160
30161impl<'a> crate::construction::sealed::ChainNode
30162 for vk::DataGraphPipelineResourceInfoImageLayoutARM<'a>
30163{
30164 const S_TYPE: vk::StructureType =
30165 vk::StructureType::DATA_GRAPH_PIPELINE_RESOURCE_INFO_IMAGE_LAYOUT_ARM;
30166
30167 fn s_type(&self) -> vk::StructureType {
30168 self.s_type
30169 }
30170
30171 fn p_next(&self) -> *const std::ffi::c_void {
30172 self.p_next
30173 }
30174
30175 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30176 self.p_next = p_next.cast_const();
30177 }
30178
30179 fn address(&mut self) -> *mut std::ffi::c_void {
30180 std::ptr::from_mut(self).cast()
30181 }
30182}
30183
30184impl<'a, 'root> crate::Extends<vk::DataGraphPipelineResourceInfoARM<'root>>
30185 for vk::DataGraphPipelineResourceInfoImageLayoutARM<'a>
30186{
30187}
30188
30189impl<'a> crate::construction::sealed::ChainNode
30190 for vk::DataGraphPipelineCompilerControlCreateInfoARM<'a>
30191{
30192 const S_TYPE: vk::StructureType =
30193 vk::StructureType::DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM;
30194
30195 fn s_type(&self) -> vk::StructureType {
30196 self.s_type
30197 }
30198
30199 fn p_next(&self) -> *const std::ffi::c_void {
30200 self.p_next
30201 }
30202
30203 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30204 self.p_next = p_next.cast_const();
30205 }
30206
30207 fn address(&mut self) -> *mut std::ffi::c_void {
30208 std::ptr::from_mut(self).cast()
30209 }
30210}
30211
30212impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
30213 for vk::DataGraphPipelineCompilerControlCreateInfoARM<'a>
30214{
30215}
30216
30217impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphPipelineCreateInfoARM<'a> {
30218 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PIPELINE_CREATE_INFO_ARM;
30219
30220 fn s_type(&self) -> vk::StructureType {
30221 self.s_type
30222 }
30223
30224 fn p_next(&self) -> *const std::ffi::c_void {
30225 self.p_next
30226 }
30227
30228 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30229 self.p_next = p_next.cast_const();
30230 }
30231
30232 fn address(&mut self) -> *mut std::ffi::c_void {
30233 std::ptr::from_mut(self).cast()
30234 }
30235}
30236
30237impl<'a> crate::construction::sealed::ChainNode
30238 for vk::DataGraphPipelineShaderModuleCreateInfoARM<'a>
30239{
30240 const S_TYPE: vk::StructureType =
30241 vk::StructureType::DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM;
30242
30243 fn s_type(&self) -> vk::StructureType {
30244 self.s_type
30245 }
30246
30247 fn p_next(&self) -> *const std::ffi::c_void {
30248 self.p_next
30249 }
30250
30251 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30252 self.p_next = p_next.cast_const();
30253 }
30254
30255 fn address(&mut self) -> *mut std::ffi::c_void {
30256 std::ptr::from_mut(self).cast()
30257 }
30258}
30259
30260impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
30261 for vk::DataGraphPipelineShaderModuleCreateInfoARM<'a>
30262{
30263}
30264
30265impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphPipelineSessionCreateInfoARM<'a> {
30266 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM;
30267
30268 fn s_type(&self) -> vk::StructureType {
30269 self.s_type
30270 }
30271
30272 fn p_next(&self) -> *const std::ffi::c_void {
30273 self.p_next
30274 }
30275
30276 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30277 self.p_next = p_next.cast_const();
30278 }
30279
30280 fn address(&mut self) -> *mut std::ffi::c_void {
30281 std::ptr::from_mut(self).cast()
30282 }
30283}
30284
30285impl<'a> crate::construction::sealed::ChainNode
30286 for vk::DataGraphPipelineSessionBindPointRequirementsInfoARM<'a>
30287{
30288 const S_TYPE: vk::StructureType =
30289 vk::StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM;
30290
30291 fn s_type(&self) -> vk::StructureType {
30292 self.s_type
30293 }
30294
30295 fn p_next(&self) -> *const std::ffi::c_void {
30296 self.p_next
30297 }
30298
30299 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30300 self.p_next = p_next.cast_const();
30301 }
30302
30303 fn address(&mut self) -> *mut std::ffi::c_void {
30304 std::ptr::from_mut(self).cast()
30305 }
30306}
30307
30308impl<'a> crate::construction::sealed::ChainNode
30309 for vk::DataGraphPipelineSessionBindPointRequirementARM<'a>
30310{
30311 const S_TYPE: vk::StructureType =
30312 vk::StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM;
30313
30314 fn s_type(&self) -> vk::StructureType {
30315 self.s_type
30316 }
30317
30318 fn p_next(&self) -> *const std::ffi::c_void {
30319 self.p_next.cast_const()
30320 }
30321
30322 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30323 self.p_next = p_next;
30324 }
30325
30326 fn address(&mut self) -> *mut std::ffi::c_void {
30327 std::ptr::from_mut(self).cast()
30328 }
30329}
30330
30331impl<'a> crate::construction::sealed::ChainNode
30332 for vk::DataGraphPipelineSessionMemoryRequirementsInfoARM<'a>
30333{
30334 const S_TYPE: vk::StructureType =
30335 vk::StructureType::DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM;
30336
30337 fn s_type(&self) -> vk::StructureType {
30338 self.s_type
30339 }
30340
30341 fn p_next(&self) -> *const std::ffi::c_void {
30342 self.p_next
30343 }
30344
30345 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30346 self.p_next = p_next.cast_const();
30347 }
30348
30349 fn address(&mut self) -> *mut std::ffi::c_void {
30350 std::ptr::from_mut(self).cast()
30351 }
30352}
30353
30354impl<'a> crate::construction::sealed::ChainNode
30355 for vk::BindDataGraphPipelineSessionMemoryInfoARM<'a>
30356{
30357 const S_TYPE: vk::StructureType =
30358 vk::StructureType::BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM;
30359
30360 fn s_type(&self) -> vk::StructureType {
30361 self.s_type
30362 }
30363
30364 fn p_next(&self) -> *const std::ffi::c_void {
30365 self.p_next
30366 }
30367
30368 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30369 self.p_next = p_next.cast_const();
30370 }
30371
30372 fn address(&mut self) -> *mut std::ffi::c_void {
30373 std::ptr::from_mut(self).cast()
30374 }
30375}
30376
30377impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphPipelineInfoARM<'a> {
30378 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PIPELINE_INFO_ARM;
30379
30380 fn s_type(&self) -> vk::StructureType {
30381 self.s_type
30382 }
30383
30384 fn p_next(&self) -> *const std::ffi::c_void {
30385 self.p_next
30386 }
30387
30388 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30389 self.p_next = p_next.cast_const();
30390 }
30391
30392 fn address(&mut self) -> *mut std::ffi::c_void {
30393 std::ptr::from_mut(self).cast()
30394 }
30395}
30396
30397impl<'a> crate::construction::sealed::ChainNode
30398 for vk::DataGraphPipelinePropertyQueryResultARM<'a>
30399{
30400 const S_TYPE: vk::StructureType =
30401 vk::StructureType::DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM;
30402
30403 fn s_type(&self) -> vk::StructureType {
30404 self.s_type
30405 }
30406
30407 fn p_next(&self) -> *const std::ffi::c_void {
30408 self.p_next.cast_const()
30409 }
30410
30411 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30412 self.p_next = p_next;
30413 }
30414
30415 fn address(&mut self) -> *mut std::ffi::c_void {
30416 std::ptr::from_mut(self).cast()
30417 }
30418}
30419
30420impl<'a> crate::construction::sealed::ChainNode
30421 for vk::DataGraphPipelineIdentifierCreateInfoARM<'a>
30422{
30423 const S_TYPE: vk::StructureType =
30424 vk::StructureType::DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM;
30425
30426 fn s_type(&self) -> vk::StructureType {
30427 self.s_type
30428 }
30429
30430 fn p_next(&self) -> *const std::ffi::c_void {
30431 self.p_next
30432 }
30433
30434 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30435 self.p_next = p_next.cast_const();
30436 }
30437
30438 fn address(&mut self) -> *mut std::ffi::c_void {
30439 std::ptr::from_mut(self).cast()
30440 }
30441}
30442
30443impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
30444 for vk::DataGraphPipelineIdentifierCreateInfoARM<'a>
30445{
30446}
30447
30448impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphPipelineDispatchInfoARM<'a> {
30449 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM;
30450
30451 fn s_type(&self) -> vk::StructureType {
30452 self.s_type
30453 }
30454
30455 fn p_next(&self) -> *const std::ffi::c_void {
30456 self.p_next.cast_const()
30457 }
30458
30459 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30460 self.p_next = p_next;
30461 }
30462
30463 fn address(&mut self) -> *mut std::ffi::c_void {
30464 std::ptr::from_mut(self).cast()
30465 }
30466}
30467
30468impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyDataGraphPropertiesARM<'a> {
30469 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM;
30470
30471 fn s_type(&self) -> vk::StructureType {
30472 self.s_type
30473 }
30474
30475 fn p_next(&self) -> *const std::ffi::c_void {
30476 self.p_next.cast_const()
30477 }
30478
30479 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30480 self.p_next = p_next;
30481 }
30482
30483 fn address(&mut self) -> *mut std::ffi::c_void {
30484 std::ptr::from_mut(self).cast()
30485 }
30486}
30487
30488impl<'a> crate::construction::sealed::ChainNode
30489 for vk::PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM<'a>
30490{
30491 const S_TYPE: vk::StructureType =
30492 vk::StructureType::PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM;
30493
30494 fn s_type(&self) -> vk::StructureType {
30495 self.s_type
30496 }
30497
30498 fn p_next(&self) -> *const std::ffi::c_void {
30499 self.p_next
30500 }
30501
30502 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30503 self.p_next = p_next.cast_const();
30504 }
30505
30506 fn address(&mut self) -> *mut std::ffi::c_void {
30507 std::ptr::from_mut(self).cast()
30508 }
30509}
30510
30511impl<'a> crate::construction::sealed::ChainNode
30512 for vk::QueueFamilyDataGraphProcessingEnginePropertiesARM<'a>
30513{
30514 const S_TYPE: vk::StructureType =
30515 vk::StructureType::QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM;
30516
30517 fn s_type(&self) -> vk::StructureType {
30518 self.s_type
30519 }
30520
30521 fn p_next(&self) -> *const std::ffi::c_void {
30522 self.p_next.cast_const()
30523 }
30524
30525 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30526 self.p_next = p_next;
30527 }
30528
30529 fn address(&mut self) -> *mut std::ffi::c_void {
30530 std::ptr::from_mut(self).cast()
30531 }
30532}
30533
30534impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphProcessingEngineCreateInfoARM<'a> {
30535 const S_TYPE: vk::StructureType = vk::StructureType::DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM;
30536
30537 fn s_type(&self) -> vk::StructureType {
30538 self.s_type
30539 }
30540
30541 fn p_next(&self) -> *const std::ffi::c_void {
30542 self.p_next
30543 }
30544
30545 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30546 self.p_next = p_next.cast_const();
30547 }
30548
30549 fn address(&mut self) -> *mut std::ffi::c_void {
30550 std::ptr::from_mut(self).cast()
30551 }
30552}
30553
30554impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
30555 for vk::DataGraphProcessingEngineCreateInfoARM<'a>
30556{
30557}
30558
30559impl<'a, 'root> crate::Extends<vk::DescriptorPoolCreateInfo<'root>>
30560 for vk::DataGraphProcessingEngineCreateInfoARM<'a>
30561{
30562}
30563
30564impl<'a, 'root> crate::Extends<vk::CommandPoolCreateInfo<'root>>
30565 for vk::DataGraphProcessingEngineCreateInfoARM<'a>
30566{
30567}
30568
30569impl<'a> crate::construction::sealed::ChainNode
30570 for vk::PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'a>
30571{
30572 const S_TYPE: vk::StructureType =
30573 vk::StructureType::PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC;
30574
30575 fn s_type(&self) -> vk::StructureType {
30576 self.s_type
30577 }
30578
30579 fn p_next(&self) -> *const std::ffi::c_void {
30580 self.p_next.cast_const()
30581 }
30582
30583 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30584 self.p_next = p_next;
30585 }
30586
30587 fn address(&mut self) -> *mut std::ffi::c_void {
30588 std::ptr::from_mut(self).cast()
30589 }
30590}
30591
30592impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30593 for vk::PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'a>
30594{
30595}
30596
30597impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30598 for vk::PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC<'a>
30599{
30600}
30601
30602impl<'a> crate::construction::sealed::ChainNode
30603 for vk::DataGraphPipelineBuiltinModelCreateInfoQCOM<'a>
30604{
30605 const S_TYPE: vk::StructureType =
30606 vk::StructureType::DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM;
30607
30608 fn s_type(&self) -> vk::StructureType {
30609 self.s_type
30610 }
30611
30612 fn p_next(&self) -> *const std::ffi::c_void {
30613 self.p_next
30614 }
30615
30616 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30617 self.p_next = p_next.cast_const();
30618 }
30619
30620 fn address(&mut self) -> *mut std::ffi::c_void {
30621 std::ptr::from_mut(self).cast()
30622 }
30623}
30624
30625impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
30626 for vk::DataGraphPipelineBuiltinModelCreateInfoQCOM<'a>
30627{
30628}
30629
30630impl<'a> crate::construction::sealed::ChainNode
30631 for vk::PhysicalDeviceDataGraphModelFeaturesQCOM<'a>
30632{
30633 const S_TYPE: vk::StructureType =
30634 vk::StructureType::PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM;
30635
30636 fn s_type(&self) -> vk::StructureType {
30637 self.s_type
30638 }
30639
30640 fn p_next(&self) -> *const std::ffi::c_void {
30641 self.p_next.cast_const()
30642 }
30643
30644 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30645 self.p_next = p_next;
30646 }
30647
30648 fn address(&mut self) -> *mut std::ffi::c_void {
30649 std::ptr::from_mut(self).cast()
30650 }
30651}
30652
30653impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30654 for vk::PhysicalDeviceDataGraphModelFeaturesQCOM<'a>
30655{
30656}
30657
30658impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30659 for vk::PhysicalDeviceDataGraphModelFeaturesQCOM<'a>
30660{
30661}
30662
30663impl<'a> crate::construction::sealed::ChainNode
30664 for vk::PhysicalDeviceShaderUntypedPointersFeaturesKHR<'a>
30665{
30666 const S_TYPE: vk::StructureType =
30667 vk::StructureType::PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR;
30668
30669 fn s_type(&self) -> vk::StructureType {
30670 self.s_type
30671 }
30672
30673 fn p_next(&self) -> *const std::ffi::c_void {
30674 self.p_next.cast_const()
30675 }
30676
30677 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30678 self.p_next = p_next;
30679 }
30680
30681 fn address(&mut self) -> *mut std::ffi::c_void {
30682 std::ptr::from_mut(self).cast()
30683 }
30684}
30685
30686impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30687 for vk::PhysicalDeviceShaderUntypedPointersFeaturesKHR<'a>
30688{
30689}
30690
30691impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30692 for vk::PhysicalDeviceShaderUntypedPointersFeaturesKHR<'a>
30693{
30694}
30695
30696impl<'a> crate::construction::sealed::ChainNode
30697 for vk::PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'a>
30698{
30699 const S_TYPE: vk::StructureType =
30700 vk::StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE;
30701
30702 fn s_type(&self) -> vk::StructureType {
30703 self.s_type
30704 }
30705
30706 fn p_next(&self) -> *const std::ffi::c_void {
30707 self.p_next.cast_const()
30708 }
30709
30710 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30711 self.p_next = p_next;
30712 }
30713
30714 fn address(&mut self) -> *mut std::ffi::c_void {
30715 std::ptr::from_mut(self).cast()
30716 }
30717}
30718
30719impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30720 for vk::PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'a>
30721{
30722}
30723
30724impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30725 for vk::PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE<'a>
30726{
30727}
30728
30729impl<'a> crate::construction::sealed::ChainNode
30730 for vk::VideoEncodeRgbConversionCapabilitiesVALVE<'a>
30731{
30732 const S_TYPE: vk::StructureType =
30733 vk::StructureType::VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE;
30734
30735 fn s_type(&self) -> vk::StructureType {
30736 self.s_type
30737 }
30738
30739 fn p_next(&self) -> *const std::ffi::c_void {
30740 self.p_next.cast_const()
30741 }
30742
30743 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30744 self.p_next = p_next;
30745 }
30746
30747 fn address(&mut self) -> *mut std::ffi::c_void {
30748 std::ptr::from_mut(self).cast()
30749 }
30750}
30751
30752impl<'a, 'root> crate::Extends<vk::VideoCapabilitiesKHR<'root>>
30753 for vk::VideoEncodeRgbConversionCapabilitiesVALVE<'a>
30754{
30755}
30756
30757impl<'a> crate::construction::sealed::ChainNode
30758 for vk::VideoEncodeProfileRgbConversionInfoVALVE<'a>
30759{
30760 const S_TYPE: vk::StructureType =
30761 vk::StructureType::VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE;
30762
30763 fn s_type(&self) -> vk::StructureType {
30764 self.s_type
30765 }
30766
30767 fn p_next(&self) -> *const std::ffi::c_void {
30768 self.p_next
30769 }
30770
30771 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30772 self.p_next = p_next.cast_const();
30773 }
30774
30775 fn address(&mut self) -> *mut std::ffi::c_void {
30776 std::ptr::from_mut(self).cast()
30777 }
30778}
30779
30780impl<'a, 'root> crate::Extends<vk::VideoProfileInfoKHR<'root>>
30781 for vk::VideoEncodeProfileRgbConversionInfoVALVE<'a>
30782{
30783}
30784
30785impl<'a> crate::construction::sealed::ChainNode
30786 for vk::VideoEncodeSessionRgbConversionCreateInfoVALVE<'a>
30787{
30788 const S_TYPE: vk::StructureType =
30789 vk::StructureType::VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE;
30790
30791 fn s_type(&self) -> vk::StructureType {
30792 self.s_type
30793 }
30794
30795 fn p_next(&self) -> *const std::ffi::c_void {
30796 self.p_next
30797 }
30798
30799 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30800 self.p_next = p_next.cast_const();
30801 }
30802
30803 fn address(&mut self) -> *mut std::ffi::c_void {
30804 std::ptr::from_mut(self).cast()
30805 }
30806}
30807
30808impl<'a, 'root> crate::Extends<vk::VideoSessionCreateInfoKHR<'root>>
30809 for vk::VideoEncodeSessionRgbConversionCreateInfoVALVE<'a>
30810{
30811}
30812
30813impl<'a> crate::construction::sealed::ChainNode
30814 for vk::PhysicalDeviceShader64BitIndexingFeaturesEXT<'a>
30815{
30816 const S_TYPE: vk::StructureType =
30817 vk::StructureType::PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT;
30818
30819 fn s_type(&self) -> vk::StructureType {
30820 self.s_type
30821 }
30822
30823 fn p_next(&self) -> *const std::ffi::c_void {
30824 self.p_next.cast_const()
30825 }
30826
30827 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30828 self.p_next = p_next;
30829 }
30830
30831 fn address(&mut self) -> *mut std::ffi::c_void {
30832 std::ptr::from_mut(self).cast()
30833 }
30834}
30835
30836impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
30837 for vk::PhysicalDeviceShader64BitIndexingFeaturesEXT<'a>
30838{
30839}
30840
30841impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
30842 for vk::PhysicalDeviceShader64BitIndexingFeaturesEXT<'a>
30843{
30844}
30845
30846#[cfg(feature = "platform-ohos")]
30847impl<'a> crate::construction::sealed::ChainNode for vk::NativeBufferUsageOHOS<'a> {
30848 const S_TYPE: vk::StructureType = vk::StructureType::NATIVE_BUFFER_USAGE_OHOS;
30849
30850 fn s_type(&self) -> vk::StructureType {
30851 self.s_type
30852 }
30853
30854 fn p_next(&self) -> *const std::ffi::c_void {
30855 self.p_next.cast_const()
30856 }
30857
30858 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30859 self.p_next = p_next;
30860 }
30861
30862 fn address(&mut self) -> *mut std::ffi::c_void {
30863 std::ptr::from_mut(self).cast()
30864 }
30865}
30866
30867#[cfg(feature = "platform-ohos")]
30868impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
30869 for vk::NativeBufferUsageOHOS<'a>
30870{
30871}
30872
30873#[cfg(feature = "platform-ohos")]
30874impl<'a> crate::construction::sealed::ChainNode for vk::NativeBufferPropertiesOHOS<'a> {
30875 const S_TYPE: vk::StructureType = vk::StructureType::NATIVE_BUFFER_PROPERTIES_OHOS;
30876
30877 fn s_type(&self) -> vk::StructureType {
30878 self.s_type
30879 }
30880
30881 fn p_next(&self) -> *const std::ffi::c_void {
30882 self.p_next.cast_const()
30883 }
30884
30885 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30886 self.p_next = p_next;
30887 }
30888
30889 fn address(&mut self) -> *mut std::ffi::c_void {
30890 std::ptr::from_mut(self).cast()
30891 }
30892}
30893
30894#[cfg(feature = "platform-ohos")]
30895impl<'a> crate::construction::sealed::ChainNode for vk::NativeBufferFormatPropertiesOHOS<'a> {
30896 const S_TYPE: vk::StructureType = vk::StructureType::NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS;
30897
30898 fn s_type(&self) -> vk::StructureType {
30899 self.s_type
30900 }
30901
30902 fn p_next(&self) -> *const std::ffi::c_void {
30903 self.p_next.cast_const()
30904 }
30905
30906 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30907 self.p_next = p_next;
30908 }
30909
30910 fn address(&mut self) -> *mut std::ffi::c_void {
30911 std::ptr::from_mut(self).cast()
30912 }
30913}
30914
30915#[cfg(feature = "platform-ohos")]
30916impl<'a, 'root> crate::Extends<vk::NativeBufferPropertiesOHOS<'root>>
30917 for vk::NativeBufferFormatPropertiesOHOS<'a>
30918{
30919}
30920
30921#[cfg(feature = "platform-ohos")]
30922impl<'a> crate::construction::sealed::ChainNode for vk::ImportNativeBufferInfoOHOS<'a> {
30923 const S_TYPE: vk::StructureType = vk::StructureType::IMPORT_NATIVE_BUFFER_INFO_OHOS;
30924
30925 fn s_type(&self) -> vk::StructureType {
30926 self.s_type
30927 }
30928
30929 fn p_next(&self) -> *const std::ffi::c_void {
30930 self.p_next
30931 }
30932
30933 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30934 self.p_next = p_next.cast_const();
30935 }
30936
30937 fn address(&mut self) -> *mut std::ffi::c_void {
30938 std::ptr::from_mut(self).cast()
30939 }
30940}
30941
30942#[cfg(feature = "platform-ohos")]
30943impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
30944 for vk::ImportNativeBufferInfoOHOS<'a>
30945{
30946}
30947
30948#[cfg(feature = "platform-ohos")]
30949impl<'a> crate::construction::sealed::ChainNode for vk::MemoryGetNativeBufferInfoOHOS<'a> {
30950 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_GET_NATIVE_BUFFER_INFO_OHOS;
30951
30952 fn s_type(&self) -> vk::StructureType {
30953 self.s_type
30954 }
30955
30956 fn p_next(&self) -> *const std::ffi::c_void {
30957 self.p_next
30958 }
30959
30960 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30961 self.p_next = p_next.cast_const();
30962 }
30963
30964 fn address(&mut self) -> *mut std::ffi::c_void {
30965 std::ptr::from_mut(self).cast()
30966 }
30967}
30968
30969#[cfg(feature = "platform-ohos")]
30970impl<'a> crate::construction::sealed::ChainNode for vk::ExternalFormatOHOS<'a> {
30971 const S_TYPE: vk::StructureType = vk::StructureType::EXTERNAL_FORMAT_OHOS;
30972
30973 fn s_type(&self) -> vk::StructureType {
30974 self.s_type
30975 }
30976
30977 fn p_next(&self) -> *const std::ffi::c_void {
30978 self.p_next.cast_const()
30979 }
30980
30981 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
30982 self.p_next = p_next;
30983 }
30984
30985 fn address(&mut self) -> *mut std::ffi::c_void {
30986 std::ptr::from_mut(self).cast()
30987 }
30988}
30989
30990#[cfg(feature = "platform-ohos")]
30991impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>> for vk::ExternalFormatOHOS<'a> {}
30992
30993#[cfg(feature = "platform-ohos")]
30994impl<'a, 'root> crate::Extends<vk::SamplerYcbcrConversionCreateInfo<'root>>
30995 for vk::ExternalFormatOHOS<'a>
30996{
30997}
30998
30999#[cfg(feature = "platform-ohos")]
31000impl<'a, 'root> crate::Extends<vk::AttachmentDescription2<'root>> for vk::ExternalFormatOHOS<'a> {}
31001
31002#[cfg(feature = "platform-ohos")]
31003impl<'a, 'root> crate::Extends<vk::GraphicsPipelineCreateInfo<'root>>
31004 for vk::ExternalFormatOHOS<'a>
31005{
31006}
31007
31008#[cfg(feature = "platform-ohos")]
31009impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
31010 for vk::ExternalFormatOHOS<'a>
31011{
31012}
31013
31014impl<'a> crate::construction::sealed::ChainNode for vk::PerfHintInfoQCOM<'a> {
31015 const S_TYPE: vk::StructureType = vk::StructureType::PERF_HINT_INFO_QCOM;
31016
31017 fn s_type(&self) -> vk::StructureType {
31018 self.s_type
31019 }
31020
31021 fn p_next(&self) -> *const std::ffi::c_void {
31022 self.p_next.cast_const()
31023 }
31024
31025 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31026 self.p_next = p_next;
31027 }
31028
31029 fn address(&mut self) -> *mut std::ffi::c_void {
31030 std::ptr::from_mut(self).cast()
31031 }
31032}
31033
31034impl<'a> crate::construction::sealed::ChainNode
31035 for vk::PhysicalDeviceQueuePerfHintFeaturesQCOM<'a>
31036{
31037 const S_TYPE: vk::StructureType =
31038 vk::StructureType::PHYSICAL_DEVICE_QUEUE_PERF_HINT_FEATURES_QCOM;
31039
31040 fn s_type(&self) -> vk::StructureType {
31041 self.s_type
31042 }
31043
31044 fn p_next(&self) -> *const std::ffi::c_void {
31045 self.p_next.cast_const()
31046 }
31047
31048 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31049 self.p_next = p_next;
31050 }
31051
31052 fn address(&mut self) -> *mut std::ffi::c_void {
31053 std::ptr::from_mut(self).cast()
31054 }
31055}
31056
31057impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31058 for vk::PhysicalDeviceQueuePerfHintFeaturesQCOM<'a>
31059{
31060}
31061
31062impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31063 for vk::PhysicalDeviceQueuePerfHintFeaturesQCOM<'a>
31064{
31065}
31066
31067impl<'a> crate::construction::sealed::ChainNode
31068 for vk::PhysicalDeviceQueuePerfHintPropertiesQCOM<'a>
31069{
31070 const S_TYPE: vk::StructureType =
31071 vk::StructureType::PHYSICAL_DEVICE_QUEUE_PERF_HINT_PROPERTIES_QCOM;
31072
31073 fn s_type(&self) -> vk::StructureType {
31074 self.s_type
31075 }
31076
31077 fn p_next(&self) -> *const std::ffi::c_void {
31078 self.p_next.cast_const()
31079 }
31080
31081 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31082 self.p_next = p_next;
31083 }
31084
31085 fn address(&mut self) -> *mut std::ffi::c_void {
31086 std::ptr::from_mut(self).cast()
31087 }
31088}
31089
31090impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31091 for vk::PhysicalDeviceQueuePerfHintPropertiesQCOM<'a>
31092{
31093}
31094
31095impl<'a> crate::construction::sealed::ChainNode
31096 for vk::PhysicalDevicePerformanceCountersByRegionFeaturesARM<'a>
31097{
31098 const S_TYPE: vk::StructureType =
31099 vk::StructureType::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM;
31100
31101 fn s_type(&self) -> vk::StructureType {
31102 self.s_type
31103 }
31104
31105 fn p_next(&self) -> *const std::ffi::c_void {
31106 self.p_next.cast_const()
31107 }
31108
31109 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31110 self.p_next = p_next;
31111 }
31112
31113 fn address(&mut self) -> *mut std::ffi::c_void {
31114 std::ptr::from_mut(self).cast()
31115 }
31116}
31117
31118impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31119 for vk::PhysicalDevicePerformanceCountersByRegionFeaturesARM<'a>
31120{
31121}
31122
31123impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31124 for vk::PhysicalDevicePerformanceCountersByRegionFeaturesARM<'a>
31125{
31126}
31127
31128impl<'a> crate::construction::sealed::ChainNode
31129 for vk::PhysicalDevicePerformanceCountersByRegionPropertiesARM<'a>
31130{
31131 const S_TYPE: vk::StructureType =
31132 vk::StructureType::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM;
31133
31134 fn s_type(&self) -> vk::StructureType {
31135 self.s_type
31136 }
31137
31138 fn p_next(&self) -> *const std::ffi::c_void {
31139 self.p_next.cast_const()
31140 }
31141
31142 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31143 self.p_next = p_next;
31144 }
31145
31146 fn address(&mut self) -> *mut std::ffi::c_void {
31147 std::ptr::from_mut(self).cast()
31148 }
31149}
31150
31151impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31152 for vk::PhysicalDevicePerformanceCountersByRegionPropertiesARM<'a>
31153{
31154}
31155
31156impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceCounterARM<'a> {
31157 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_COUNTER_ARM;
31158
31159 fn s_type(&self) -> vk::StructureType {
31160 self.s_type
31161 }
31162
31163 fn p_next(&self) -> *const std::ffi::c_void {
31164 self.p_next.cast_const()
31165 }
31166
31167 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31168 self.p_next = p_next;
31169 }
31170
31171 fn address(&mut self) -> *mut std::ffi::c_void {
31172 std::ptr::from_mut(self).cast()
31173 }
31174}
31175
31176impl<'a> crate::construction::sealed::ChainNode for vk::PerformanceCounterDescriptionARM<'a> {
31177 const S_TYPE: vk::StructureType = vk::StructureType::PERFORMANCE_COUNTER_DESCRIPTION_ARM;
31178
31179 fn s_type(&self) -> vk::StructureType {
31180 self.s_type
31181 }
31182
31183 fn p_next(&self) -> *const std::ffi::c_void {
31184 self.p_next.cast_const()
31185 }
31186
31187 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31188 self.p_next = p_next;
31189 }
31190
31191 fn address(&mut self) -> *mut std::ffi::c_void {
31192 std::ptr::from_mut(self).cast()
31193 }
31194}
31195
31196impl<'a> crate::construction::sealed::ChainNode
31197 for vk::RenderPassPerformanceCountersByRegionBeginInfoARM<'a>
31198{
31199 const S_TYPE: vk::StructureType =
31200 vk::StructureType::RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM;
31201
31202 fn s_type(&self) -> vk::StructureType {
31203 self.s_type
31204 }
31205
31206 fn p_next(&self) -> *const std::ffi::c_void {
31207 self.p_next.cast_const()
31208 }
31209
31210 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31211 self.p_next = p_next;
31212 }
31213
31214 fn address(&mut self) -> *mut std::ffi::c_void {
31215 std::ptr::from_mut(self).cast()
31216 }
31217}
31218
31219impl<'a, 'root> crate::Extends<vk::RenderPassBeginInfo<'root>>
31220 for vk::RenderPassPerformanceCountersByRegionBeginInfoARM<'a>
31221{
31222}
31223
31224impl<'a, 'root> crate::Extends<vk::RenderingInfo<'root>>
31225 for vk::RenderPassPerformanceCountersByRegionBeginInfoARM<'a>
31226{
31227}
31228
31229impl<'a> crate::construction::sealed::ChainNode for vk::ComputeOccupancyPriorityParametersNV<'a> {
31230 const S_TYPE: vk::StructureType = vk::StructureType::COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV;
31231
31232 fn s_type(&self) -> vk::StructureType {
31233 self.s_type
31234 }
31235
31236 fn p_next(&self) -> *const std::ffi::c_void {
31237 self.p_next
31238 }
31239
31240 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31241 self.p_next = p_next.cast_const();
31242 }
31243
31244 fn address(&mut self) -> *mut std::ffi::c_void {
31245 std::ptr::from_mut(self).cast()
31246 }
31247}
31248
31249impl<'a> crate::construction::sealed::ChainNode
31250 for vk::PhysicalDeviceComputeOccupancyPriorityFeaturesNV<'a>
31251{
31252 const S_TYPE: vk::StructureType =
31253 vk::StructureType::PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV;
31254
31255 fn s_type(&self) -> vk::StructureType {
31256 self.s_type
31257 }
31258
31259 fn p_next(&self) -> *const std::ffi::c_void {
31260 self.p_next.cast_const()
31261 }
31262
31263 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31264 self.p_next = p_next;
31265 }
31266
31267 fn address(&mut self) -> *mut std::ffi::c_void {
31268 std::ptr::from_mut(self).cast()
31269 }
31270}
31271
31272impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31273 for vk::PhysicalDeviceComputeOccupancyPriorityFeaturesNV<'a>
31274{
31275}
31276
31277impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31278 for vk::PhysicalDeviceComputeOccupancyPriorityFeaturesNV<'a>
31279{
31280}
31281
31282impl<'a> crate::construction::sealed::ChainNode
31283 for vk::PhysicalDeviceShaderLongVectorFeaturesEXT<'a>
31284{
31285 const S_TYPE: vk::StructureType =
31286 vk::StructureType::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT;
31287
31288 fn s_type(&self) -> vk::StructureType {
31289 self.s_type
31290 }
31291
31292 fn p_next(&self) -> *const std::ffi::c_void {
31293 self.p_next.cast_const()
31294 }
31295
31296 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31297 self.p_next = p_next;
31298 }
31299
31300 fn address(&mut self) -> *mut std::ffi::c_void {
31301 std::ptr::from_mut(self).cast()
31302 }
31303}
31304
31305impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31306 for vk::PhysicalDeviceShaderLongVectorFeaturesEXT<'a>
31307{
31308}
31309
31310impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31311 for vk::PhysicalDeviceShaderLongVectorFeaturesEXT<'a>
31312{
31313}
31314
31315impl<'a> crate::construction::sealed::ChainNode
31316 for vk::PhysicalDeviceShaderLongVectorPropertiesEXT<'a>
31317{
31318 const S_TYPE: vk::StructureType =
31319 vk::StructureType::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT;
31320
31321 fn s_type(&self) -> vk::StructureType {
31322 self.s_type
31323 }
31324
31325 fn p_next(&self) -> *const std::ffi::c_void {
31326 self.p_next.cast_const()
31327 }
31328
31329 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31330 self.p_next = p_next;
31331 }
31332
31333 fn address(&mut self) -> *mut std::ffi::c_void {
31334 std::ptr::from_mut(self).cast()
31335 }
31336}
31337
31338impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31339 for vk::PhysicalDeviceShaderLongVectorPropertiesEXT<'a>
31340{
31341}
31342
31343impl<'a> crate::construction::sealed::ChainNode
31344 for vk::PhysicalDeviceTextureCompressionASTC3DFeaturesEXT<'a>
31345{
31346 const S_TYPE: vk::StructureType =
31347 vk::StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT;
31348
31349 fn s_type(&self) -> vk::StructureType {
31350 self.s_type
31351 }
31352
31353 fn p_next(&self) -> *const std::ffi::c_void {
31354 self.p_next.cast_const()
31355 }
31356
31357 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31358 self.p_next = p_next;
31359 }
31360
31361 fn address(&mut self) -> *mut std::ffi::c_void {
31362 std::ptr::from_mut(self).cast()
31363 }
31364}
31365
31366impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31367 for vk::PhysicalDeviceTextureCompressionASTC3DFeaturesEXT<'a>
31368{
31369}
31370
31371impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31372 for vk::PhysicalDeviceTextureCompressionASTC3DFeaturesEXT<'a>
31373{
31374}
31375
31376impl<'a> crate::construction::sealed::ChainNode
31377 for vk::PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT<'a>
31378{
31379 const S_TYPE: vk::StructureType =
31380 vk::StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT;
31381
31382 fn s_type(&self) -> vk::StructureType {
31383 self.s_type
31384 }
31385
31386 fn p_next(&self) -> *const std::ffi::c_void {
31387 self.p_next.cast_const()
31388 }
31389
31390 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31391 self.p_next = p_next;
31392 }
31393
31394 fn address(&mut self) -> *mut std::ffi::c_void {
31395 std::ptr::from_mut(self).cast()
31396 }
31397}
31398
31399impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31400 for vk::PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT<'a>
31401{
31402}
31403
31404impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31405 for vk::PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT<'a>
31406{
31407}
31408
31409impl<'a> crate::construction::sealed::ChainNode for vk::TexelBufferDescriptorInfoEXT<'a> {
31410 const S_TYPE: vk::StructureType = vk::StructureType::TEXEL_BUFFER_DESCRIPTOR_INFO_EXT;
31411
31412 fn s_type(&self) -> vk::StructureType {
31413 self.s_type
31414 }
31415
31416 fn p_next(&self) -> *const std::ffi::c_void {
31417 self.p_next
31418 }
31419
31420 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31421 self.p_next = p_next.cast_const();
31422 }
31423
31424 fn address(&mut self) -> *mut std::ffi::c_void {
31425 std::ptr::from_mut(self).cast()
31426 }
31427}
31428
31429impl<'a> crate::construction::sealed::ChainNode for vk::ImageDescriptorInfoEXT<'a> {
31430 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_DESCRIPTOR_INFO_EXT;
31431
31432 fn s_type(&self) -> vk::StructureType {
31433 self.s_type
31434 }
31435
31436 fn p_next(&self) -> *const std::ffi::c_void {
31437 self.p_next
31438 }
31439
31440 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31441 self.p_next = p_next.cast_const();
31442 }
31443
31444 fn address(&mut self) -> *mut std::ffi::c_void {
31445 std::ptr::from_mut(self).cast()
31446 }
31447}
31448
31449impl<'a> crate::construction::sealed::ChainNode for vk::ResourceDescriptorInfoEXT<'a> {
31450 const S_TYPE: vk::StructureType = vk::StructureType::RESOURCE_DESCRIPTOR_INFO_EXT;
31451
31452 fn s_type(&self) -> vk::StructureType {
31453 self.s_type
31454 }
31455
31456 fn p_next(&self) -> *const std::ffi::c_void {
31457 self.p_next
31458 }
31459
31460 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31461 self.p_next = p_next.cast_const();
31462 }
31463
31464 fn address(&mut self) -> *mut std::ffi::c_void {
31465 std::ptr::from_mut(self).cast()
31466 }
31467}
31468
31469impl<'a> crate::construction::sealed::ChainNode for vk::BindHeapInfoEXT<'a> {
31470 const S_TYPE: vk::StructureType = vk::StructureType::BIND_HEAP_INFO_EXT;
31471
31472 fn s_type(&self) -> vk::StructureType {
31473 self.s_type
31474 }
31475
31476 fn p_next(&self) -> *const std::ffi::c_void {
31477 self.p_next
31478 }
31479
31480 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31481 self.p_next = p_next.cast_const();
31482 }
31483
31484 fn address(&mut self) -> *mut std::ffi::c_void {
31485 std::ptr::from_mut(self).cast()
31486 }
31487}
31488
31489impl<'a> crate::construction::sealed::ChainNode for vk::PushDataInfoEXT<'a> {
31490 const S_TYPE: vk::StructureType = vk::StructureType::PUSH_DATA_INFO_EXT;
31491
31492 fn s_type(&self) -> vk::StructureType {
31493 self.s_type
31494 }
31495
31496 fn p_next(&self) -> *const std::ffi::c_void {
31497 self.p_next
31498 }
31499
31500 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31501 self.p_next = p_next.cast_const();
31502 }
31503
31504 fn address(&mut self) -> *mut std::ffi::c_void {
31505 std::ptr::from_mut(self).cast()
31506 }
31507}
31508
31509impl<'a> crate::construction::sealed::ChainNode for vk::DescriptorSetAndBindingMappingEXT<'a> {
31510 const S_TYPE: vk::StructureType = vk::StructureType::DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT;
31511
31512 fn s_type(&self) -> vk::StructureType {
31513 self.s_type
31514 }
31515
31516 fn p_next(&self) -> *const std::ffi::c_void {
31517 self.p_next
31518 }
31519
31520 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31521 self.p_next = p_next.cast_const();
31522 }
31523
31524 fn address(&mut self) -> *mut std::ffi::c_void {
31525 std::ptr::from_mut(self).cast()
31526 }
31527}
31528
31529impl<'a> crate::construction::sealed::ChainNode
31530 for vk::ShaderDescriptorSetAndBindingMappingInfoEXT<'a>
31531{
31532 const S_TYPE: vk::StructureType =
31533 vk::StructureType::SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT;
31534
31535 fn s_type(&self) -> vk::StructureType {
31536 self.s_type
31537 }
31538
31539 fn p_next(&self) -> *const std::ffi::c_void {
31540 self.p_next
31541 }
31542
31543 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31544 self.p_next = p_next.cast_const();
31545 }
31546
31547 fn address(&mut self) -> *mut std::ffi::c_void {
31548 std::ptr::from_mut(self).cast()
31549 }
31550}
31551
31552impl<'a, 'root> crate::Extends<vk::PipelineShaderStageCreateInfo<'root>>
31553 for vk::ShaderDescriptorSetAndBindingMappingInfoEXT<'a>
31554{
31555}
31556
31557impl<'a, 'root> crate::Extends<vk::ShaderCreateInfoEXT<'root>>
31558 for vk::ShaderDescriptorSetAndBindingMappingInfoEXT<'a>
31559{
31560}
31561
31562impl<'a> crate::construction::sealed::ChainNode
31563 for vk::SamplerCustomBorderColorIndexCreateInfoEXT<'a>
31564{
31565 const S_TYPE: vk::StructureType =
31566 vk::StructureType::SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT;
31567
31568 fn s_type(&self) -> vk::StructureType {
31569 self.s_type
31570 }
31571
31572 fn p_next(&self) -> *const std::ffi::c_void {
31573 self.p_next
31574 }
31575
31576 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31577 self.p_next = p_next.cast_const();
31578 }
31579
31580 fn address(&mut self) -> *mut std::ffi::c_void {
31581 std::ptr::from_mut(self).cast()
31582 }
31583}
31584
31585impl<'a, 'root> crate::Extends<vk::SamplerCreateInfo<'root>>
31586 for vk::SamplerCustomBorderColorIndexCreateInfoEXT<'a>
31587{
31588}
31589
31590impl<'a> crate::construction::sealed::ChainNode for vk::OpaqueCaptureDataCreateInfoEXT<'a> {
31591 const S_TYPE: vk::StructureType = vk::StructureType::OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT;
31592
31593 fn s_type(&self) -> vk::StructureType {
31594 self.s_type
31595 }
31596
31597 fn p_next(&self) -> *const std::ffi::c_void {
31598 self.p_next
31599 }
31600
31601 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31602 self.p_next = p_next.cast_const();
31603 }
31604
31605 fn address(&mut self) -> *mut std::ffi::c_void {
31606 std::ptr::from_mut(self).cast()
31607 }
31608}
31609
31610impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
31611 for vk::OpaqueCaptureDataCreateInfoEXT<'a>
31612{
31613}
31614
31615impl<'a, 'root> crate::Extends<vk::TensorCreateInfoARM<'root>>
31616 for vk::OpaqueCaptureDataCreateInfoEXT<'a>
31617{
31618}
31619
31620impl<'a> crate::construction::sealed::ChainNode for vk::IndirectCommandsLayoutPushDataTokenNV<'a> {
31621 const S_TYPE: vk::StructureType = vk::StructureType::INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV;
31622
31623 fn s_type(&self) -> vk::StructureType {
31624 self.s_type
31625 }
31626
31627 fn p_next(&self) -> *const std::ffi::c_void {
31628 self.p_next
31629 }
31630
31631 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31632 self.p_next = p_next.cast_const();
31633 }
31634
31635 fn address(&mut self) -> *mut std::ffi::c_void {
31636 std::ptr::from_mut(self).cast()
31637 }
31638}
31639
31640impl<'a, 'root> crate::Extends<vk::IndirectCommandsLayoutTokenNV<'root>>
31641 for vk::IndirectCommandsLayoutPushDataTokenNV<'a>
31642{
31643}
31644
31645impl<'a> crate::construction::sealed::ChainNode for vk::SubsampledImageFormatPropertiesEXT<'a> {
31646 const S_TYPE: vk::StructureType = vk::StructureType::SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT;
31647
31648 fn s_type(&self) -> vk::StructureType {
31649 self.s_type
31650 }
31651
31652 fn p_next(&self) -> *const std::ffi::c_void {
31653 self.p_next
31654 }
31655
31656 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31657 self.p_next = p_next.cast_const();
31658 }
31659
31660 fn address(&mut self) -> *mut std::ffi::c_void {
31661 std::ptr::from_mut(self).cast()
31662 }
31663}
31664
31665impl<'a, 'root> crate::Extends<vk::ImageFormatProperties2<'root>>
31666 for vk::SubsampledImageFormatPropertiesEXT<'a>
31667{
31668}
31669
31670impl<'a> crate::construction::sealed::ChainNode
31671 for vk::PhysicalDeviceShaderSplitBarrierFeaturesEXT<'a>
31672{
31673 const S_TYPE: vk::StructureType =
31674 vk::StructureType::PHYSICAL_DEVICE_SHADER_SPLIT_BARRIER_FEATURES_EXT;
31675
31676 fn s_type(&self) -> vk::StructureType {
31677 self.s_type
31678 }
31679
31680 fn p_next(&self) -> *const std::ffi::c_void {
31681 self.p_next.cast_const()
31682 }
31683
31684 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31685 self.p_next = p_next;
31686 }
31687
31688 fn address(&mut self) -> *mut std::ffi::c_void {
31689 std::ptr::from_mut(self).cast()
31690 }
31691}
31692
31693impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31694 for vk::PhysicalDeviceShaderSplitBarrierFeaturesEXT<'a>
31695{
31696}
31697
31698impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31699 for vk::PhysicalDeviceShaderSplitBarrierFeaturesEXT<'a>
31700{
31701}
31702
31703impl<'a> crate::construction::sealed::ChainNode
31704 for vk::PhysicalDeviceShaderSplitBarrierPropertiesEXT<'a>
31705{
31706 const S_TYPE: vk::StructureType =
31707 vk::StructureType::PHYSICAL_DEVICE_SHADER_SPLIT_BARRIER_PROPERTIES_EXT;
31708
31709 fn s_type(&self) -> vk::StructureType {
31710 self.s_type
31711 }
31712
31713 fn p_next(&self) -> *const std::ffi::c_void {
31714 self.p_next.cast_const()
31715 }
31716
31717 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31718 self.p_next = p_next;
31719 }
31720
31721 fn address(&mut self) -> *mut std::ffi::c_void {
31722 std::ptr::from_mut(self).cast()
31723 }
31724}
31725
31726impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31727 for vk::PhysicalDeviceShaderSplitBarrierPropertiesEXT<'a>
31728{
31729}
31730
31731impl<'a> crate::construction::sealed::ChainNode
31732 for vk::PhysicalDeviceDescriptorHeapFeaturesEXT<'a>
31733{
31734 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT;
31735
31736 fn s_type(&self) -> vk::StructureType {
31737 self.s_type
31738 }
31739
31740 fn p_next(&self) -> *const std::ffi::c_void {
31741 self.p_next.cast_const()
31742 }
31743
31744 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31745 self.p_next = p_next;
31746 }
31747
31748 fn address(&mut self) -> *mut std::ffi::c_void {
31749 std::ptr::from_mut(self).cast()
31750 }
31751}
31752
31753impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31754 for vk::PhysicalDeviceDescriptorHeapFeaturesEXT<'a>
31755{
31756}
31757
31758impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31759 for vk::PhysicalDeviceDescriptorHeapFeaturesEXT<'a>
31760{
31761}
31762
31763impl<'a> crate::construction::sealed::ChainNode
31764 for vk::PhysicalDeviceDescriptorHeapPropertiesEXT<'a>
31765{
31766 const S_TYPE: vk::StructureType =
31767 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT;
31768
31769 fn s_type(&self) -> vk::StructureType {
31770 self.s_type
31771 }
31772
31773 fn p_next(&self) -> *const std::ffi::c_void {
31774 self.p_next.cast_const()
31775 }
31776
31777 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31778 self.p_next = p_next;
31779 }
31780
31781 fn address(&mut self) -> *mut std::ffi::c_void {
31782 std::ptr::from_mut(self).cast()
31783 }
31784}
31785
31786impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31787 for vk::PhysicalDeviceDescriptorHeapPropertiesEXT<'a>
31788{
31789}
31790
31791impl<'a> crate::construction::sealed::ChainNode
31792 for vk::CommandBufferInheritanceDescriptorHeapInfoEXT<'a>
31793{
31794 const S_TYPE: vk::StructureType =
31795 vk::StructureType::COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT;
31796
31797 fn s_type(&self) -> vk::StructureType {
31798 self.s_type
31799 }
31800
31801 fn p_next(&self) -> *const std::ffi::c_void {
31802 self.p_next
31803 }
31804
31805 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31806 self.p_next = p_next.cast_const();
31807 }
31808
31809 fn address(&mut self) -> *mut std::ffi::c_void {
31810 std::ptr::from_mut(self).cast()
31811 }
31812}
31813
31814impl<'a, 'root> crate::Extends<vk::CommandBufferInheritanceInfo<'root>>
31815 for vk::CommandBufferInheritanceDescriptorHeapInfoEXT<'a>
31816{
31817}
31818
31819impl<'a> crate::construction::sealed::ChainNode
31820 for vk::PhysicalDeviceDescriptorHeapTensorPropertiesARM<'a>
31821{
31822 const S_TYPE: vk::StructureType =
31823 vk::StructureType::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM;
31824
31825 fn s_type(&self) -> vk::StructureType {
31826 self.s_type
31827 }
31828
31829 fn p_next(&self) -> *const std::ffi::c_void {
31830 self.p_next.cast_const()
31831 }
31832
31833 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31834 self.p_next = p_next;
31835 }
31836
31837 fn address(&mut self) -> *mut std::ffi::c_void {
31838 std::ptr::from_mut(self).cast()
31839 }
31840}
31841
31842impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31843 for vk::PhysicalDeviceDescriptorHeapTensorPropertiesARM<'a>
31844{
31845}
31846
31847impl<'a> crate::construction::sealed::ChainNode
31848 for vk::PhysicalDeviceShaderInstrumentationFeaturesARM<'a>
31849{
31850 const S_TYPE: vk::StructureType =
31851 vk::StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM;
31852
31853 fn s_type(&self) -> vk::StructureType {
31854 self.s_type
31855 }
31856
31857 fn p_next(&self) -> *const std::ffi::c_void {
31858 self.p_next.cast_const()
31859 }
31860
31861 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31862 self.p_next = p_next;
31863 }
31864
31865 fn address(&mut self) -> *mut std::ffi::c_void {
31866 std::ptr::from_mut(self).cast()
31867 }
31868}
31869
31870impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
31871 for vk::PhysicalDeviceShaderInstrumentationFeaturesARM<'a>
31872{
31873}
31874
31875impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
31876 for vk::PhysicalDeviceShaderInstrumentationFeaturesARM<'a>
31877{
31878}
31879
31880impl<'a> crate::construction::sealed::ChainNode
31881 for vk::PhysicalDeviceShaderInstrumentationPropertiesARM<'a>
31882{
31883 const S_TYPE: vk::StructureType =
31884 vk::StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM;
31885
31886 fn s_type(&self) -> vk::StructureType {
31887 self.s_type
31888 }
31889
31890 fn p_next(&self) -> *const std::ffi::c_void {
31891 self.p_next.cast_const()
31892 }
31893
31894 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31895 self.p_next = p_next;
31896 }
31897
31898 fn address(&mut self) -> *mut std::ffi::c_void {
31899 std::ptr::from_mut(self).cast()
31900 }
31901}
31902
31903impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
31904 for vk::PhysicalDeviceShaderInstrumentationPropertiesARM<'a>
31905{
31906}
31907
31908impl<'a> crate::construction::sealed::ChainNode for vk::ShaderInstrumentationCreateInfoARM<'a> {
31909 const S_TYPE: vk::StructureType = vk::StructureType::SHADER_INSTRUMENTATION_CREATE_INFO_ARM;
31910
31911 fn s_type(&self) -> vk::StructureType {
31912 self.s_type
31913 }
31914
31915 fn p_next(&self) -> *const std::ffi::c_void {
31916 self.p_next.cast_const()
31917 }
31918
31919 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31920 self.p_next = p_next;
31921 }
31922
31923 fn address(&mut self) -> *mut std::ffi::c_void {
31924 std::ptr::from_mut(self).cast()
31925 }
31926}
31927
31928impl<'a> crate::construction::sealed::ChainNode
31929 for vk::ShaderInstrumentationMetricDescriptionARM<'a>
31930{
31931 const S_TYPE: vk::StructureType =
31932 vk::StructureType::SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM;
31933
31934 fn s_type(&self) -> vk::StructureType {
31935 self.s_type
31936 }
31937
31938 fn p_next(&self) -> *const std::ffi::c_void {
31939 self.p_next.cast_const()
31940 }
31941
31942 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31943 self.p_next = p_next;
31944 }
31945
31946 fn address(&mut self) -> *mut std::ffi::c_void {
31947 std::ptr::from_mut(self).cast()
31948 }
31949}
31950
31951impl<'a> crate::construction::sealed::ChainNode for vk::DeviceMemoryCopyKHR<'a> {
31952 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_MEMORY_COPY_KHR;
31953
31954 fn s_type(&self) -> vk::StructureType {
31955 self.s_type
31956 }
31957
31958 fn p_next(&self) -> *const std::ffi::c_void {
31959 self.p_next
31960 }
31961
31962 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31963 self.p_next = p_next.cast_const();
31964 }
31965
31966 fn address(&mut self) -> *mut std::ffi::c_void {
31967 std::ptr::from_mut(self).cast()
31968 }
31969}
31970
31971impl<'a> crate::construction::sealed::ChainNode for vk::CopyDeviceMemoryInfoKHR<'a> {
31972 const S_TYPE: vk::StructureType = vk::StructureType::COPY_DEVICE_MEMORY_INFO_KHR;
31973
31974 fn s_type(&self) -> vk::StructureType {
31975 self.s_type
31976 }
31977
31978 fn p_next(&self) -> *const std::ffi::c_void {
31979 self.p_next
31980 }
31981
31982 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
31983 self.p_next = p_next.cast_const();
31984 }
31985
31986 fn address(&mut self) -> *mut std::ffi::c_void {
31987 std::ptr::from_mut(self).cast()
31988 }
31989}
31990
31991impl<'a> crate::construction::sealed::ChainNode for vk::DeviceMemoryImageCopyKHR<'a> {
31992 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_MEMORY_IMAGE_COPY_KHR;
31993
31994 fn s_type(&self) -> vk::StructureType {
31995 self.s_type
31996 }
31997
31998 fn p_next(&self) -> *const std::ffi::c_void {
31999 self.p_next
32000 }
32001
32002 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32003 self.p_next = p_next.cast_const();
32004 }
32005
32006 fn address(&mut self) -> *mut std::ffi::c_void {
32007 std::ptr::from_mut(self).cast()
32008 }
32009}
32010
32011impl<'a> crate::construction::sealed::ChainNode for vk::CopyDeviceMemoryImageInfoKHR<'a> {
32012 const S_TYPE: vk::StructureType = vk::StructureType::COPY_DEVICE_MEMORY_IMAGE_INFO_KHR;
32013
32014 fn s_type(&self) -> vk::StructureType {
32015 self.s_type
32016 }
32017
32018 fn p_next(&self) -> *const std::ffi::c_void {
32019 self.p_next
32020 }
32021
32022 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32023 self.p_next = p_next.cast_const();
32024 }
32025
32026 fn address(&mut self) -> *mut std::ffi::c_void {
32027 std::ptr::from_mut(self).cast()
32028 }
32029}
32030
32031impl<'a> crate::construction::sealed::ChainNode for vk::MemoryRangeBarriersInfoKHR<'a> {
32032 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_RANGE_BARRIERS_INFO_KHR;
32033
32034 fn s_type(&self) -> vk::StructureType {
32035 self.s_type
32036 }
32037
32038 fn p_next(&self) -> *const std::ffi::c_void {
32039 self.p_next
32040 }
32041
32042 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32043 self.p_next = p_next.cast_const();
32044 }
32045
32046 fn address(&mut self) -> *mut std::ffi::c_void {
32047 std::ptr::from_mut(self).cast()
32048 }
32049}
32050
32051impl<'a, 'root> crate::Extends<vk::DependencyInfo<'root>> for vk::MemoryRangeBarriersInfoKHR<'a> {}
32052
32053impl<'a> crate::construction::sealed::ChainNode for vk::MemoryRangeBarrierKHR<'a> {
32054 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_RANGE_BARRIER_KHR;
32055
32056 fn s_type(&self) -> vk::StructureType {
32057 self.s_type
32058 }
32059
32060 fn p_next(&self) -> *const std::ffi::c_void {
32061 self.p_next
32062 }
32063
32064 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32065 self.p_next = p_next.cast_const();
32066 }
32067
32068 fn address(&mut self) -> *mut std::ffi::c_void {
32069 std::ptr::from_mut(self).cast()
32070 }
32071}
32072
32073impl<'a> crate::construction::sealed::ChainNode
32074 for vk::PhysicalDeviceDeviceAddressCommandsFeaturesKHR<'a>
32075{
32076 const S_TYPE: vk::StructureType =
32077 vk::StructureType::PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR;
32078
32079 fn s_type(&self) -> vk::StructureType {
32080 self.s_type
32081 }
32082
32083 fn p_next(&self) -> *const std::ffi::c_void {
32084 self.p_next.cast_const()
32085 }
32086
32087 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32088 self.p_next = p_next;
32089 }
32090
32091 fn address(&mut self) -> *mut std::ffi::c_void {
32092 std::ptr::from_mut(self).cast()
32093 }
32094}
32095
32096impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32097 for vk::PhysicalDeviceDeviceAddressCommandsFeaturesKHR<'a>
32098{
32099}
32100
32101impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32102 for vk::PhysicalDeviceDeviceAddressCommandsFeaturesKHR<'a>
32103{
32104}
32105
32106impl<'a> crate::construction::sealed::ChainNode for vk::ConditionalRenderingBeginInfo2EXT<'a> {
32107 const S_TYPE: vk::StructureType = vk::StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT;
32108
32109 fn s_type(&self) -> vk::StructureType {
32110 self.s_type
32111 }
32112
32113 fn p_next(&self) -> *const std::ffi::c_void {
32114 self.p_next
32115 }
32116
32117 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32118 self.p_next = p_next.cast_const();
32119 }
32120
32121 fn address(&mut self) -> *mut std::ffi::c_void {
32122 std::ptr::from_mut(self).cast()
32123 }
32124}
32125
32126impl<'a> crate::construction::sealed::ChainNode for vk::AccelerationStructureCreateInfo2KHR<'a> {
32127 const S_TYPE: vk::StructureType = vk::StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR;
32128
32129 fn s_type(&self) -> vk::StructureType {
32130 self.s_type
32131 }
32132
32133 fn p_next(&self) -> *const std::ffi::c_void {
32134 self.p_next
32135 }
32136
32137 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32138 self.p_next = p_next.cast_const();
32139 }
32140
32141 fn address(&mut self) -> *mut std::ffi::c_void {
32142 std::ptr::from_mut(self).cast()
32143 }
32144}
32145
32146impl<'a> crate::construction::sealed::ChainNode for vk::BindIndexBuffer3InfoKHR<'a> {
32147 const S_TYPE: vk::StructureType = vk::StructureType::BIND_INDEX_BUFFER_3_INFO_KHR;
32148
32149 fn s_type(&self) -> vk::StructureType {
32150 self.s_type
32151 }
32152
32153 fn p_next(&self) -> *const std::ffi::c_void {
32154 self.p_next
32155 }
32156
32157 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32158 self.p_next = p_next.cast_const();
32159 }
32160
32161 fn address(&mut self) -> *mut std::ffi::c_void {
32162 std::ptr::from_mut(self).cast()
32163 }
32164}
32165
32166impl<'a> crate::construction::sealed::ChainNode for vk::BindVertexBuffer3InfoKHR<'a> {
32167 const S_TYPE: vk::StructureType = vk::StructureType::BIND_VERTEX_BUFFER_3_INFO_KHR;
32168
32169 fn s_type(&self) -> vk::StructureType {
32170 self.s_type
32171 }
32172
32173 fn p_next(&self) -> *const std::ffi::c_void {
32174 self.p_next
32175 }
32176
32177 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32178 self.p_next = p_next.cast_const();
32179 }
32180
32181 fn address(&mut self) -> *mut std::ffi::c_void {
32182 std::ptr::from_mut(self).cast()
32183 }
32184}
32185
32186impl<'a> crate::construction::sealed::ChainNode for vk::DrawIndirect2InfoKHR<'a> {
32187 const S_TYPE: vk::StructureType = vk::StructureType::DRAW_INDIRECT_2_INFO_KHR;
32188
32189 fn s_type(&self) -> vk::StructureType {
32190 self.s_type
32191 }
32192
32193 fn p_next(&self) -> *const std::ffi::c_void {
32194 self.p_next
32195 }
32196
32197 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32198 self.p_next = p_next.cast_const();
32199 }
32200
32201 fn address(&mut self) -> *mut std::ffi::c_void {
32202 std::ptr::from_mut(self).cast()
32203 }
32204}
32205
32206impl<'a> crate::construction::sealed::ChainNode for vk::DrawIndirectCount2InfoKHR<'a> {
32207 const S_TYPE: vk::StructureType = vk::StructureType::DRAW_INDIRECT_COUNT_2_INFO_KHR;
32208
32209 fn s_type(&self) -> vk::StructureType {
32210 self.s_type
32211 }
32212
32213 fn p_next(&self) -> *const std::ffi::c_void {
32214 self.p_next
32215 }
32216
32217 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32218 self.p_next = p_next.cast_const();
32219 }
32220
32221 fn address(&mut self) -> *mut std::ffi::c_void {
32222 std::ptr::from_mut(self).cast()
32223 }
32224}
32225
32226impl<'a> crate::construction::sealed::ChainNode for vk::DispatchIndirect2InfoKHR<'a> {
32227 const S_TYPE: vk::StructureType = vk::StructureType::DISPATCH_INDIRECT_2_INFO_KHR;
32228
32229 fn s_type(&self) -> vk::StructureType {
32230 self.s_type
32231 }
32232
32233 fn p_next(&self) -> *const std::ffi::c_void {
32234 self.p_next
32235 }
32236
32237 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32238 self.p_next = p_next.cast_const();
32239 }
32240
32241 fn address(&mut self) -> *mut std::ffi::c_void {
32242 std::ptr::from_mut(self).cast()
32243 }
32244}
32245
32246impl<'a> crate::construction::sealed::ChainNode for vk::BindTransformFeedbackBuffer2InfoEXT<'a> {
32247 const S_TYPE: vk::StructureType = vk::StructureType::BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT;
32248
32249 fn s_type(&self) -> vk::StructureType {
32250 self.s_type
32251 }
32252
32253 fn p_next(&self) -> *const std::ffi::c_void {
32254 self.p_next
32255 }
32256
32257 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32258 self.p_next = p_next.cast_const();
32259 }
32260
32261 fn address(&mut self) -> *mut std::ffi::c_void {
32262 std::ptr::from_mut(self).cast()
32263 }
32264}
32265
32266impl<'a> crate::construction::sealed::ChainNode for vk::MemoryMarkerInfoAMD<'a> {
32267 const S_TYPE: vk::StructureType = vk::StructureType::MEMORY_MARKER_INFO_AMD;
32268
32269 fn s_type(&self) -> vk::StructureType {
32270 self.s_type
32271 }
32272
32273 fn p_next(&self) -> *const std::ffi::c_void {
32274 self.p_next
32275 }
32276
32277 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32278 self.p_next = p_next.cast_const();
32279 }
32280
32281 fn address(&mut self) -> *mut std::ffi::c_void {
32282 std::ptr::from_mut(self).cast()
32283 }
32284}
32285
32286impl<'a> crate::construction::sealed::ChainNode
32287 for vk::PhysicalDeviceShaderConstantDataFeaturesKHR<'a>
32288{
32289 const S_TYPE: vk::StructureType =
32290 vk::StructureType::PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR;
32291
32292 fn s_type(&self) -> vk::StructureType {
32293 self.s_type
32294 }
32295
32296 fn p_next(&self) -> *const std::ffi::c_void {
32297 self.p_next.cast_const()
32298 }
32299
32300 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32301 self.p_next = p_next;
32302 }
32303
32304 fn address(&mut self) -> *mut std::ffi::c_void {
32305 std::ptr::from_mut(self).cast()
32306 }
32307}
32308
32309impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32310 for vk::PhysicalDeviceShaderConstantDataFeaturesKHR<'a>
32311{
32312}
32313
32314impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32315 for vk::PhysicalDeviceShaderConstantDataFeaturesKHR<'a>
32316{
32317}
32318
32319impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderAbortFeaturesKHR<'a> {
32320 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR;
32321
32322 fn s_type(&self) -> vk::StructureType {
32323 self.s_type
32324 }
32325
32326 fn p_next(&self) -> *const std::ffi::c_void {
32327 self.p_next.cast_const()
32328 }
32329
32330 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32331 self.p_next = p_next;
32332 }
32333
32334 fn address(&mut self) -> *mut std::ffi::c_void {
32335 std::ptr::from_mut(self).cast()
32336 }
32337}
32338
32339impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32340 for vk::PhysicalDeviceShaderAbortFeaturesKHR<'a>
32341{
32342}
32343
32344impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32345 for vk::PhysicalDeviceShaderAbortFeaturesKHR<'a>
32346{
32347}
32348
32349impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceShaderAbortPropertiesKHR<'a> {
32350 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR;
32351
32352 fn s_type(&self) -> vk::StructureType {
32353 self.s_type
32354 }
32355
32356 fn p_next(&self) -> *const std::ffi::c_void {
32357 self.p_next.cast_const()
32358 }
32359
32360 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32361 self.p_next = p_next;
32362 }
32363
32364 fn address(&mut self) -> *mut std::ffi::c_void {
32365 std::ptr::from_mut(self).cast()
32366 }
32367}
32368
32369impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
32370 for vk::PhysicalDeviceShaderAbortPropertiesKHR<'a>
32371{
32372}
32373
32374impl<'a> crate::construction::sealed::ChainNode for vk::DeviceFaultShaderAbortMessageInfoKHR<'a> {
32375 const S_TYPE: vk::StructureType = vk::StructureType::DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR;
32376
32377 fn s_type(&self) -> vk::StructureType {
32378 self.s_type
32379 }
32380
32381 fn p_next(&self) -> *const std::ffi::c_void {
32382 self.p_next.cast_const()
32383 }
32384
32385 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32386 self.p_next = p_next;
32387 }
32388
32389 fn address(&mut self) -> *mut std::ffi::c_void {
32390 std::ptr::from_mut(self).cast()
32391 }
32392}
32393
32394impl<'a, 'root> crate::Extends<vk::DeviceFaultDebugInfoKHR<'root>>
32395 for vk::DeviceFaultShaderAbortMessageInfoKHR<'a>
32396{
32397}
32398
32399impl<'a> crate::construction::sealed::ChainNode for vk::QueueFamilyDataGraphTOSAPropertiesARM<'a> {
32400 const S_TYPE: vk::StructureType = vk::StructureType::QUEUE_FAMILY_DATA_GRAPH_TOSA_PROPERTIES_ARM;
32401
32402 fn s_type(&self) -> vk::StructureType {
32403 self.s_type
32404 }
32405
32406 fn p_next(&self) -> *const std::ffi::c_void {
32407 self.p_next.cast_const()
32408 }
32409
32410 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32411 self.p_next = p_next;
32412 }
32413
32414 fn address(&mut self) -> *mut std::ffi::c_void {
32415 std::ptr::from_mut(self).cast()
32416 }
32417}
32418
32419impl<'a> crate::construction::sealed::ChainNode
32420 for vk::DataGraphPipelineSingleNodeConnectionARM<'a>
32421{
32422 const S_TYPE: vk::StructureType =
32423 vk::StructureType::DATA_GRAPH_PIPELINE_SINGLE_NODE_CONNECTION_ARM;
32424
32425 fn s_type(&self) -> vk::StructureType {
32426 self.s_type
32427 }
32428
32429 fn p_next(&self) -> *const std::ffi::c_void {
32430 self.p_next.cast_const()
32431 }
32432
32433 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32434 self.p_next = p_next;
32435 }
32436
32437 fn address(&mut self) -> *mut std::ffi::c_void {
32438 std::ptr::from_mut(self).cast()
32439 }
32440}
32441
32442impl<'a> crate::construction::sealed::ChainNode
32443 for vk::PhysicalDeviceDataGraphOpticalFlowFeaturesARM<'a>
32444{
32445 const S_TYPE: vk::StructureType =
32446 vk::StructureType::PHYSICAL_DEVICE_DATA_GRAPH_OPTICAL_FLOW_FEATURES_ARM;
32447
32448 fn s_type(&self) -> vk::StructureType {
32449 self.s_type
32450 }
32451
32452 fn p_next(&self) -> *const std::ffi::c_void {
32453 self.p_next.cast_const()
32454 }
32455
32456 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32457 self.p_next = p_next;
32458 }
32459
32460 fn address(&mut self) -> *mut std::ffi::c_void {
32461 std::ptr::from_mut(self).cast()
32462 }
32463}
32464
32465impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32466 for vk::PhysicalDeviceDataGraphOpticalFlowFeaturesARM<'a>
32467{
32468}
32469
32470impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32471 for vk::PhysicalDeviceDataGraphOpticalFlowFeaturesARM<'a>
32472{
32473}
32474
32475impl<'a> crate::construction::sealed::ChainNode
32476 for vk::QueueFamilyDataGraphOpticalFlowPropertiesARM<'a>
32477{
32478 const S_TYPE: vk::StructureType =
32479 vk::StructureType::QUEUE_FAMILY_DATA_GRAPH_OPTICAL_FLOW_PROPERTIES_ARM;
32480
32481 fn s_type(&self) -> vk::StructureType {
32482 self.s_type
32483 }
32484
32485 fn p_next(&self) -> *const std::ffi::c_void {
32486 self.p_next.cast_const()
32487 }
32488
32489 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32490 self.p_next = p_next;
32491 }
32492
32493 fn address(&mut self) -> *mut std::ffi::c_void {
32494 std::ptr::from_mut(self).cast()
32495 }
32496}
32497
32498impl<'a> crate::construction::sealed::ChainNode for vk::DataGraphOpticalFlowImageFormatInfoARM<'a> {
32499 const S_TYPE: vk::StructureType =
32500 vk::StructureType::DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_INFO_ARM;
32501
32502 fn s_type(&self) -> vk::StructureType {
32503 self.s_type
32504 }
32505
32506 fn p_next(&self) -> *const std::ffi::c_void {
32507 self.p_next
32508 }
32509
32510 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32511 self.p_next = p_next.cast_const();
32512 }
32513
32514 fn address(&mut self) -> *mut std::ffi::c_void {
32515 std::ptr::from_mut(self).cast()
32516 }
32517}
32518
32519impl<'a, 'root> crate::Extends<vk::PhysicalDeviceImageFormatInfo2<'root>>
32520 for vk::DataGraphOpticalFlowImageFormatInfoARM<'a>
32521{
32522}
32523
32524impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
32525 for vk::DataGraphOpticalFlowImageFormatInfoARM<'a>
32526{
32527}
32528
32529impl<'a> crate::construction::sealed::ChainNode
32530 for vk::DataGraphOpticalFlowImageFormatPropertiesARM<'a>
32531{
32532 const S_TYPE: vk::StructureType =
32533 vk::StructureType::DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_ARM;
32534
32535 fn s_type(&self) -> vk::StructureType {
32536 self.s_type
32537 }
32538
32539 fn p_next(&self) -> *const std::ffi::c_void {
32540 self.p_next.cast_const()
32541 }
32542
32543 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32544 self.p_next = p_next;
32545 }
32546
32547 fn address(&mut self) -> *mut std::ffi::c_void {
32548 std::ptr::from_mut(self).cast()
32549 }
32550}
32551
32552impl<'a> crate::construction::sealed::ChainNode
32553 for vk::DataGraphPipelineSingleNodeCreateInfoARM<'a>
32554{
32555 const S_TYPE: vk::StructureType =
32556 vk::StructureType::DATA_GRAPH_PIPELINE_SINGLE_NODE_CREATE_INFO_ARM;
32557
32558 fn s_type(&self) -> vk::StructureType {
32559 self.s_type
32560 }
32561
32562 fn p_next(&self) -> *const std::ffi::c_void {
32563 self.p_next.cast_const()
32564 }
32565
32566 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32567 self.p_next = p_next;
32568 }
32569
32570 fn address(&mut self) -> *mut std::ffi::c_void {
32571 std::ptr::from_mut(self).cast()
32572 }
32573}
32574
32575impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
32576 for vk::DataGraphPipelineSingleNodeCreateInfoARM<'a>
32577{
32578}
32579
32580impl<'a> crate::construction::sealed::ChainNode
32581 for vk::DataGraphPipelineOpticalFlowCreateInfoARM<'a>
32582{
32583 const S_TYPE: vk::StructureType =
32584 vk::StructureType::DATA_GRAPH_PIPELINE_OPTICAL_FLOW_CREATE_INFO_ARM;
32585
32586 fn s_type(&self) -> vk::StructureType {
32587 self.s_type
32588 }
32589
32590 fn p_next(&self) -> *const std::ffi::c_void {
32591 self.p_next.cast_const()
32592 }
32593
32594 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32595 self.p_next = p_next;
32596 }
32597
32598 fn address(&mut self) -> *mut std::ffi::c_void {
32599 std::ptr::from_mut(self).cast()
32600 }
32601}
32602
32603impl<'a, 'root> crate::Extends<vk::DataGraphPipelineCreateInfoARM<'root>>
32604 for vk::DataGraphPipelineOpticalFlowCreateInfoARM<'a>
32605{
32606}
32607
32608impl<'a> crate::construction::sealed::ChainNode
32609 for vk::DataGraphPipelineOpticalFlowDispatchInfoARM<'a>
32610{
32611 const S_TYPE: vk::StructureType =
32612 vk::StructureType::DATA_GRAPH_PIPELINE_OPTICAL_FLOW_DISPATCH_INFO_ARM;
32613
32614 fn s_type(&self) -> vk::StructureType {
32615 self.s_type
32616 }
32617
32618 fn p_next(&self) -> *const std::ffi::c_void {
32619 self.p_next.cast_const()
32620 }
32621
32622 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32623 self.p_next = p_next;
32624 }
32625
32626 fn address(&mut self) -> *mut std::ffi::c_void {
32627 std::ptr::from_mut(self).cast()
32628 }
32629}
32630
32631impl<'a, 'root> crate::Extends<vk::DataGraphPipelineDispatchInfoARM<'root>>
32632 for vk::DataGraphPipelineOpticalFlowDispatchInfoARM<'a>
32633{
32634}
32635
32636impl<'a> crate::construction::sealed::ChainNode
32637 for vk::PhysicalDeviceImageTilingControlFeaturesEXT<'a>
32638{
32639 const S_TYPE: vk::StructureType =
32640 vk::StructureType::PHYSICAL_DEVICE_IMAGE_TILING_CONTROL_FEATURES_EXT;
32641
32642 fn s_type(&self) -> vk::StructureType {
32643 self.s_type
32644 }
32645
32646 fn p_next(&self) -> *const std::ffi::c_void {
32647 self.p_next.cast_const()
32648 }
32649
32650 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32651 self.p_next = p_next;
32652 }
32653
32654 fn address(&mut self) -> *mut std::ffi::c_void {
32655 std::ptr::from_mut(self).cast()
32656 }
32657}
32658
32659impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32660 for vk::PhysicalDeviceImageTilingControlFeaturesEXT<'a>
32661{
32662}
32663
32664impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32665 for vk::PhysicalDeviceImageTilingControlFeaturesEXT<'a>
32666{
32667}
32668
32669impl<'a> crate::construction::sealed::ChainNode for vk::ImageTilingControlCreateInfoEXT<'a> {
32670 const S_TYPE: vk::StructureType = vk::StructureType::IMAGE_TILING_CONTROL_CREATE_INFO_EXT;
32671
32672 fn s_type(&self) -> vk::StructureType {
32673 self.s_type
32674 }
32675
32676 fn p_next(&self) -> *const std::ffi::c_void {
32677 self.p_next
32678 }
32679
32680 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32681 self.p_next = p_next.cast_const();
32682 }
32683
32684 fn address(&mut self) -> *mut std::ffi::c_void {
32685 std::ptr::from_mut(self).cast()
32686 }
32687}
32688
32689impl<'a, 'root> crate::Extends<vk::ImageCreateInfo<'root>>
32690 for vk::ImageTilingControlCreateInfoEXT<'a>
32691{
32692}
32693
32694impl<'a> crate::construction::sealed::ChainNode
32695 for vk::PhysicalDeviceShaderOCPMicroscalingTypesFeaturesEXT<'a>
32696{
32697 const S_TYPE: vk::StructureType =
32698 vk::StructureType::PHYSICAL_DEVICE_SHADER_OCP_MICROSCALING_TYPES_FEATURES_EXT;
32699
32700 fn s_type(&self) -> vk::StructureType {
32701 self.s_type
32702 }
32703
32704 fn p_next(&self) -> *const std::ffi::c_void {
32705 self.p_next.cast_const()
32706 }
32707
32708 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32709 self.p_next = p_next;
32710 }
32711
32712 fn address(&mut self) -> *mut std::ffi::c_void {
32713 std::ptr::from_mut(self).cast()
32714 }
32715}
32716
32717impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32718 for vk::PhysicalDeviceShaderOCPMicroscalingTypesFeaturesEXT<'a>
32719{
32720}
32721
32722impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32723 for vk::PhysicalDeviceShaderOCPMicroscalingTypesFeaturesEXT<'a>
32724{
32725}
32726
32727impl<'a> crate::construction::sealed::ChainNode
32728 for vk::PhysicalDeviceCooperativeMatrixMaintenance1FeaturesEXT<'a>
32729{
32730 const S_TYPE: vk::StructureType =
32731 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_MAINTENANCE_1_FEATURES_EXT;
32732
32733 fn s_type(&self) -> vk::StructureType {
32734 self.s_type
32735 }
32736
32737 fn p_next(&self) -> *const std::ffi::c_void {
32738 self.p_next.cast_const()
32739 }
32740
32741 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32742 self.p_next = p_next;
32743 }
32744
32745 fn address(&mut self) -> *mut std::ffi::c_void {
32746 std::ptr::from_mut(self).cast()
32747 }
32748}
32749
32750impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32751 for vk::PhysicalDeviceCooperativeMatrixMaintenance1FeaturesEXT<'a>
32752{
32753}
32754
32755impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32756 for vk::PhysicalDeviceCooperativeMatrixMaintenance1FeaturesEXT<'a>
32757{
32758}
32759
32760impl<'a> crate::construction::sealed::ChainNode
32761 for vk::PhysicalDeviceBufferDeviceAddressAllocationAlignmentFeaturesVALVE<'a>
32762{
32763 const S_TYPE: vk::StructureType =
32764 vk::StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_ALLOCATION_ALIGNMENT_FEATURES_VALVE;
32765
32766 fn s_type(&self) -> vk::StructureType {
32767 self.s_type
32768 }
32769
32770 fn p_next(&self) -> *const std::ffi::c_void {
32771 self.p_next.cast_const()
32772 }
32773
32774 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32775 self.p_next = p_next;
32776 }
32777
32778 fn address(&mut self) -> *mut std::ffi::c_void {
32779 std::ptr::from_mut(self).cast()
32780 }
32781}
32782
32783impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32784 for vk::PhysicalDeviceBufferDeviceAddressAllocationAlignmentFeaturesVALVE<'a>
32785{
32786}
32787
32788impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32789 for vk::PhysicalDeviceBufferDeviceAddressAllocationAlignmentFeaturesVALVE<'a>
32790{
32791}
32792
32793impl<'a> crate::construction::sealed::ChainNode
32794 for vk::PhysicalDeviceBufferDeviceAddressAllocationAlignmentPropertiesVALVE<'a>
32795{
32796 const S_TYPE: vk::StructureType =
32797 vk::StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_ALLOCATION_ALIGNMENT_PROPERTIES_VALVE;
32798
32799 fn s_type(&self) -> vk::StructureType {
32800 self.s_type
32801 }
32802
32803 fn p_next(&self) -> *const std::ffi::c_void {
32804 self.p_next.cast_const()
32805 }
32806
32807 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32808 self.p_next = p_next;
32809 }
32810
32811 fn address(&mut self) -> *mut std::ffi::c_void {
32812 std::ptr::from_mut(self).cast()
32813 }
32814}
32815
32816impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
32817 for vk::PhysicalDeviceBufferDeviceAddressAllocationAlignmentPropertiesVALVE<'a>
32818{
32819}
32820
32821impl<'a> crate::construction::sealed::ChainNode
32822 for vk::BufferDeviceAddressAlignmentAllocateInfoVALVE<'a>
32823{
32824 const S_TYPE: vk::StructureType =
32825 vk::StructureType::BUFFER_DEVICE_ADDRESS_ALIGNMENT_ALLOCATE_INFO_VALVE;
32826
32827 fn s_type(&self) -> vk::StructureType {
32828 self.s_type
32829 }
32830
32831 fn p_next(&self) -> *const std::ffi::c_void {
32832 self.p_next.cast_const()
32833 }
32834
32835 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32836 self.p_next = p_next;
32837 }
32838
32839 fn address(&mut self) -> *mut std::ffi::c_void {
32840 std::ptr::from_mut(self).cast()
32841 }
32842}
32843
32844impl<'a, 'root> crate::Extends<vk::BufferCreateInfo<'root>>
32845 for vk::BufferDeviceAddressAlignmentAllocateInfoVALVE<'a>
32846{
32847}
32848
32849impl<'a, 'root> crate::Extends<vk::MemoryAllocateInfo<'root>>
32850 for vk::BufferDeviceAddressAlignmentAllocateInfoVALVE<'a>
32851{
32852}
32853
32854impl<'a> crate::construction::sealed::ChainNode for vk::PhysicalDeviceInfoPropertiesINTEL<'a> {
32855 const S_TYPE: vk::StructureType = vk::StructureType::PHYSICAL_DEVICE_INFO_PROPERTIES_INTEL;
32856
32857 fn s_type(&self) -> vk::StructureType {
32858 self.s_type
32859 }
32860
32861 fn p_next(&self) -> *const std::ffi::c_void {
32862 self.p_next.cast_const()
32863 }
32864
32865 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32866 self.p_next = p_next;
32867 }
32868
32869 fn address(&mut self) -> *mut std::ffi::c_void {
32870 std::ptr::from_mut(self).cast()
32871 }
32872}
32873
32874impl<'a, 'root> crate::Extends<vk::PhysicalDeviceProperties2<'root>>
32875 for vk::PhysicalDeviceInfoPropertiesINTEL<'a>
32876{
32877}
32878
32879impl<'a> crate::construction::sealed::ChainNode
32880 for vk::PhysicalDeviceCooperativeMatrixLayoutsFeaturesARM<'a>
32881{
32882 const S_TYPE: vk::StructureType =
32883 vk::StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_LAYOUTS_FEATURES_ARM;
32884
32885 fn s_type(&self) -> vk::StructureType {
32886 self.s_type
32887 }
32888
32889 fn p_next(&self) -> *const std::ffi::c_void {
32890 self.p_next.cast_const()
32891 }
32892
32893 fn set_p_next(&mut self, p_next: *mut std::ffi::c_void) {
32894 self.p_next = p_next;
32895 }
32896
32897 fn address(&mut self) -> *mut std::ffi::c_void {
32898 std::ptr::from_mut(self).cast()
32899 }
32900}
32901
32902impl<'a, 'root> crate::Extends<vk::PhysicalDeviceFeatures2<'root>>
32903 for vk::PhysicalDeviceCooperativeMatrixLayoutsFeaturesARM<'a>
32904{
32905}
32906
32907impl<'a, 'root> crate::Extends<vk::DeviceCreateInfo<'root>>
32908 for vk::PhysicalDeviceCooperativeMatrixLayoutsFeaturesARM<'a>
32909{
32910}