Skip to main content

vulkanalia/vk/
chains.rs

1// SPDX-License-Identifier: Apache-2.0
2
3// DO NOT EDIT.
4//
5// This file has been generated by the Kotlin project in the `generator`
6// directory from a Vulkan API registry.
7
8#![allow(
9    non_camel_case_types,
10    non_snake_case,
11    clippy::bad_bit_mask,
12    clippy::let_unit_value,
13    clippy::missing_safety_doc,
14    clippy::missing_transmute_annotations,
15    clippy::needless_lifetimes,
16    clippy::too_many_arguments,
17    clippy::type_complexity,
18    clippy::unnecessary_cast,
19    clippy::upper_case_acronyms,
20    clippy::useless_transmute
21)]
22
23use core::ffi::c_void;
24
25use super::*;
26
27/// A Vulkan struct that could be part of an input pointer chain.
28pub unsafe trait InputChainStruct {
29    /// The structure type for this struct type.
30    const TYPE: StructureType;
31
32    /// The structure type for this struct.
33    fn s_type(&self) -> StructureType;
34
35    /// The next struct in the pointer chain for this struct.
36    fn next(&self) -> *const c_void;
37}
38
39/// A Vulkan struct that could be part of an output pointer chain.
40pub unsafe trait OutputChainStruct: InputChainStruct {
41    /// The next struct in the pointer chain for this struct.
42    fn next_mut(&self) -> *mut c_void;
43}
44
45unsafe impl InputChainStruct for AccelerationStructureBuildGeometryInfoKHR {
46    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
47
48    #[inline]
49    fn s_type(&self) -> StructureType {
50        self.s_type
51    }
52
53    #[inline]
54    fn next(&self) -> *const c_void {
55        self.next
56    }
57}
58
59unsafe impl InputChainStruct for AccelerationStructureBuildSizesInfoKHR {
60    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
61
62    #[inline]
63    fn s_type(&self) -> StructureType {
64        self.s_type
65    }
66
67    #[inline]
68    fn next(&self) -> *const c_void {
69        self.next
70    }
71}
72
73unsafe impl OutputChainStruct for AccelerationStructureBuildSizesInfoKHR {
74    #[inline]
75    fn next_mut(&self) -> *mut c_void {
76        self.next
77    }
78}
79
80unsafe impl InputChainStruct for AccelerationStructureCaptureDescriptorDataInfoEXT {
81    const TYPE: StructureType =
82        StructureType::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
83
84    #[inline]
85    fn s_type(&self) -> StructureType {
86        self.s_type
87    }
88
89    #[inline]
90    fn next(&self) -> *const c_void {
91        self.next
92    }
93}
94
95unsafe impl InputChainStruct for AccelerationStructureCreateInfoKHR {
96    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
97
98    #[inline]
99    fn s_type(&self) -> StructureType {
100        self.s_type
101    }
102
103    #[inline]
104    fn next(&self) -> *const c_void {
105        self.next
106    }
107}
108
109unsafe impl InputChainStruct for AccelerationStructureCreateInfoNV {
110    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_CREATE_INFO_NV;
111
112    #[inline]
113    fn s_type(&self) -> StructureType {
114        self.s_type
115    }
116
117    #[inline]
118    fn next(&self) -> *const c_void {
119        self.next
120    }
121}
122
123unsafe impl InputChainStruct for AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
124    const TYPE: StructureType =
125        StructureType::ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX;
126
127    #[inline]
128    fn s_type(&self) -> StructureType {
129        self.s_type
130    }
131
132    #[inline]
133    fn next(&self) -> *const c_void {
134        self.next
135    }
136}
137
138unsafe impl InputChainStruct for AccelerationStructureDeviceAddressInfoKHR {
139    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
140
141    #[inline]
142    fn s_type(&self) -> StructureType {
143        self.s_type
144    }
145
146    #[inline]
147    fn next(&self) -> *const c_void {
148        self.next
149    }
150}
151
152unsafe impl InputChainStruct for AccelerationStructureGeometryAabbsDataKHR {
153    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
154
155    #[inline]
156    fn s_type(&self) -> StructureType {
157        self.s_type
158    }
159
160    #[inline]
161    fn next(&self) -> *const c_void {
162        self.next
163    }
164}
165
166unsafe impl InputChainStruct for AccelerationStructureGeometryInstancesDataKHR {
167    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
168
169    #[inline]
170    fn s_type(&self) -> StructureType {
171        self.s_type
172    }
173
174    #[inline]
175    fn next(&self) -> *const c_void {
176        self.next
177    }
178}
179
180unsafe impl InputChainStruct for AccelerationStructureGeometryKHR {
181    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_KHR;
182
183    #[inline]
184    fn s_type(&self) -> StructureType {
185        self.s_type
186    }
187
188    #[inline]
189    fn next(&self) -> *const c_void {
190        self.next
191    }
192}
193
194unsafe impl InputChainStruct for AccelerationStructureGeometryLinearSweptSpheresDataNV {
195    const TYPE: StructureType =
196        StructureType::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV;
197
198    #[inline]
199    fn s_type(&self) -> StructureType {
200        self.s_type
201    }
202
203    #[inline]
204    fn next(&self) -> *const c_void {
205        self.next
206    }
207}
208
209unsafe impl InputChainStruct for AccelerationStructureGeometryMotionTrianglesDataNV {
210    const TYPE: StructureType =
211        StructureType::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV;
212
213    #[inline]
214    fn s_type(&self) -> StructureType {
215        self.s_type
216    }
217
218    #[inline]
219    fn next(&self) -> *const c_void {
220        self.next
221    }
222}
223
224unsafe impl InputChainStruct for AccelerationStructureGeometrySpheresDataNV {
225    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV;
226
227    #[inline]
228    fn s_type(&self) -> StructureType {
229        self.s_type
230    }
231
232    #[inline]
233    fn next(&self) -> *const c_void {
234        self.next
235    }
236}
237
238unsafe impl InputChainStruct for AccelerationStructureGeometryTrianglesDataKHR {
239    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
240
241    #[inline]
242    fn s_type(&self) -> StructureType {
243        self.s_type
244    }
245
246    #[inline]
247    fn next(&self) -> *const c_void {
248        self.next
249    }
250}
251
252unsafe impl InputChainStruct for AccelerationStructureInfoNV {
253    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_INFO_NV;
254
255    #[inline]
256    fn s_type(&self) -> StructureType {
257        self.s_type
258    }
259
260    #[inline]
261    fn next(&self) -> *const c_void {
262        self.next
263    }
264}
265
266unsafe impl InputChainStruct for AccelerationStructureMemoryRequirementsInfoNV {
267    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
268
269    #[inline]
270    fn s_type(&self) -> StructureType {
271        self.s_type
272    }
273
274    #[inline]
275    fn next(&self) -> *const c_void {
276        self.next
277    }
278}
279
280unsafe impl InputChainStruct for AccelerationStructureMotionInfoNV {
281    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_MOTION_INFO_NV;
282
283    #[inline]
284    fn s_type(&self) -> StructureType {
285        self.s_type
286    }
287
288    #[inline]
289    fn next(&self) -> *const c_void {
290        self.next
291    }
292}
293
294unsafe impl InputChainStruct for AccelerationStructureTrianglesDisplacementMicromapNV {
295    const TYPE: StructureType =
296        StructureType::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV;
297
298    #[inline]
299    fn s_type(&self) -> StructureType {
300        self.s_type
301    }
302
303    #[inline]
304    fn next(&self) -> *const c_void {
305        self.next
306    }
307}
308
309unsafe impl OutputChainStruct for AccelerationStructureTrianglesDisplacementMicromapNV {
310    #[inline]
311    fn next_mut(&self) -> *mut c_void {
312        self.next
313    }
314}
315
316unsafe impl InputChainStruct for AccelerationStructureTrianglesOpacityMicromapEXT {
317    const TYPE: StructureType =
318        StructureType::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT;
319
320    #[inline]
321    fn s_type(&self) -> StructureType {
322        self.s_type
323    }
324
325    #[inline]
326    fn next(&self) -> *const c_void {
327        self.next
328    }
329}
330
331unsafe impl OutputChainStruct for AccelerationStructureTrianglesOpacityMicromapEXT {
332    #[inline]
333    fn next_mut(&self) -> *mut c_void {
334        self.next
335    }
336}
337
338unsafe impl InputChainStruct for AccelerationStructureVersionInfoKHR {
339    const TYPE: StructureType = StructureType::ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
340
341    #[inline]
342    fn s_type(&self) -> StructureType {
343        self.s_type
344    }
345
346    #[inline]
347    fn next(&self) -> *const c_void {
348        self.next
349    }
350}
351
352unsafe impl InputChainStruct for AcquireNextImageInfoKHR {
353    const TYPE: StructureType = StructureType::ACQUIRE_NEXT_IMAGE_INFO_KHR;
354
355    #[inline]
356    fn s_type(&self) -> StructureType {
357        self.s_type
358    }
359
360    #[inline]
361    fn next(&self) -> *const c_void {
362        self.next
363    }
364}
365
366unsafe impl InputChainStruct for AcquireProfilingLockInfoKHR {
367    const TYPE: StructureType = StructureType::ACQUIRE_PROFILING_LOCK_INFO_KHR;
368
369    #[inline]
370    fn s_type(&self) -> StructureType {
371        self.s_type
372    }
373
374    #[inline]
375    fn next(&self) -> *const c_void {
376        self.next
377    }
378}
379
380unsafe impl InputChainStruct for AmigoProfilingSubmitInfoSEC {
381    const TYPE: StructureType = StructureType::AMIGO_PROFILING_SUBMIT_INFO_SEC;
382
383    #[inline]
384    fn s_type(&self) -> StructureType {
385        self.s_type
386    }
387
388    #[inline]
389    fn next(&self) -> *const c_void {
390        self.next
391    }
392}
393
394unsafe impl InputChainStruct for AndroidHardwareBufferFormatProperties2ANDROID {
395    const TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID;
396
397    #[inline]
398    fn s_type(&self) -> StructureType {
399        self.s_type
400    }
401
402    #[inline]
403    fn next(&self) -> *const c_void {
404        self.next
405    }
406}
407
408unsafe impl OutputChainStruct for AndroidHardwareBufferFormatProperties2ANDROID {
409    #[inline]
410    fn next_mut(&self) -> *mut c_void {
411        self.next
412    }
413}
414
415unsafe impl InputChainStruct for AndroidHardwareBufferFormatPropertiesANDROID {
416    const TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
417
418    #[inline]
419    fn s_type(&self) -> StructureType {
420        self.s_type
421    }
422
423    #[inline]
424    fn next(&self) -> *const c_void {
425        self.next
426    }
427}
428
429unsafe impl OutputChainStruct for AndroidHardwareBufferFormatPropertiesANDROID {
430    #[inline]
431    fn next_mut(&self) -> *mut c_void {
432        self.next
433    }
434}
435
436unsafe impl InputChainStruct for AndroidHardwareBufferFormatResolvePropertiesANDROID {
437    const TYPE: StructureType =
438        StructureType::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID;
439
440    #[inline]
441    fn s_type(&self) -> StructureType {
442        self.s_type
443    }
444
445    #[inline]
446    fn next(&self) -> *const c_void {
447        self.next
448    }
449}
450
451unsafe impl OutputChainStruct for AndroidHardwareBufferFormatResolvePropertiesANDROID {
452    #[inline]
453    fn next_mut(&self) -> *mut c_void {
454        self.next
455    }
456}
457
458unsafe impl InputChainStruct for AndroidHardwareBufferPropertiesANDROID {
459    const TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
460
461    #[inline]
462    fn s_type(&self) -> StructureType {
463        self.s_type
464    }
465
466    #[inline]
467    fn next(&self) -> *const c_void {
468        self.next
469    }
470}
471
472unsafe impl OutputChainStruct for AndroidHardwareBufferPropertiesANDROID {
473    #[inline]
474    fn next_mut(&self) -> *mut c_void {
475        self.next
476    }
477}
478
479unsafe impl InputChainStruct for AndroidHardwareBufferUsageANDROID {
480    const TYPE: StructureType = StructureType::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
481
482    #[inline]
483    fn s_type(&self) -> StructureType {
484        self.s_type
485    }
486
487    #[inline]
488    fn next(&self) -> *const c_void {
489        self.next
490    }
491}
492
493unsafe impl OutputChainStruct for AndroidHardwareBufferUsageANDROID {
494    #[inline]
495    fn next_mut(&self) -> *mut c_void {
496        self.next
497    }
498}
499
500unsafe impl InputChainStruct for AndroidSurfaceCreateInfoKHR {
501    const TYPE: StructureType = StructureType::ANDROID_SURFACE_CREATE_INFO_KHR;
502
503    #[inline]
504    fn s_type(&self) -> StructureType {
505        self.s_type
506    }
507
508    #[inline]
509    fn next(&self) -> *const c_void {
510        self.next
511    }
512}
513
514unsafe impl InputChainStruct for AntiLagDataAMD {
515    const TYPE: StructureType = StructureType::ANTI_LAG_DATA_AMD;
516
517    #[inline]
518    fn s_type(&self) -> StructureType {
519        self.s_type
520    }
521
522    #[inline]
523    fn next(&self) -> *const c_void {
524        self.next
525    }
526}
527
528unsafe impl InputChainStruct for AntiLagPresentationInfoAMD {
529    const TYPE: StructureType = StructureType::ANTI_LAG_PRESENTATION_INFO_AMD;
530
531    #[inline]
532    fn s_type(&self) -> StructureType {
533        self.s_type
534    }
535
536    #[inline]
537    fn next(&self) -> *const c_void {
538        self.next
539    }
540}
541
542unsafe impl OutputChainStruct for AntiLagPresentationInfoAMD {
543    #[inline]
544    fn next_mut(&self) -> *mut c_void {
545        self.next
546    }
547}
548
549unsafe impl InputChainStruct for ApplicationInfo {
550    const TYPE: StructureType = StructureType::APPLICATION_INFO;
551
552    #[inline]
553    fn s_type(&self) -> StructureType {
554        self.s_type
555    }
556
557    #[inline]
558    fn next(&self) -> *const c_void {
559        self.next
560    }
561}
562
563unsafe impl InputChainStruct for ApplicationParametersEXT {
564    const TYPE: StructureType = StructureType::APPLICATION_PARAMETERS_EXT;
565
566    #[inline]
567    fn s_type(&self) -> StructureType {
568        self.s_type
569    }
570
571    #[inline]
572    fn next(&self) -> *const c_void {
573        self.next
574    }
575}
576
577unsafe impl InputChainStruct for AttachmentDescription2 {
578    const TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_2;
579
580    #[inline]
581    fn s_type(&self) -> StructureType {
582        self.s_type
583    }
584
585    #[inline]
586    fn next(&self) -> *const c_void {
587        self.next
588    }
589}
590
591unsafe impl InputChainStruct for AttachmentDescriptionStencilLayout {
592    const TYPE: StructureType = StructureType::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
593
594    #[inline]
595    fn s_type(&self) -> StructureType {
596        self.s_type
597    }
598
599    #[inline]
600    fn next(&self) -> *const c_void {
601        self.next
602    }
603}
604
605unsafe impl OutputChainStruct for AttachmentDescriptionStencilLayout {
606    #[inline]
607    fn next_mut(&self) -> *mut c_void {
608        self.next
609    }
610}
611
612unsafe impl InputChainStruct for AttachmentFeedbackLoopInfoEXT {
613    const TYPE: StructureType = StructureType::ATTACHMENT_FEEDBACK_LOOP_INFO_EXT;
614
615    #[inline]
616    fn s_type(&self) -> StructureType {
617        self.s_type
618    }
619
620    #[inline]
621    fn next(&self) -> *const c_void {
622        self.next
623    }
624}
625
626unsafe impl InputChainStruct for AttachmentReference2 {
627    const TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_2;
628
629    #[inline]
630    fn s_type(&self) -> StructureType {
631        self.s_type
632    }
633
634    #[inline]
635    fn next(&self) -> *const c_void {
636        self.next
637    }
638}
639
640unsafe impl InputChainStruct for AttachmentReferenceStencilLayout {
641    const TYPE: StructureType = StructureType::ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
642
643    #[inline]
644    fn s_type(&self) -> StructureType {
645        self.s_type
646    }
647
648    #[inline]
649    fn next(&self) -> *const c_void {
650        self.next
651    }
652}
653
654unsafe impl OutputChainStruct for AttachmentReferenceStencilLayout {
655    #[inline]
656    fn next_mut(&self) -> *mut c_void {
657        self.next
658    }
659}
660
661unsafe impl InputChainStruct for AttachmentSampleCountInfoAMD {
662    const TYPE: StructureType = StructureType::ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
663
664    #[inline]
665    fn s_type(&self) -> StructureType {
666        self.s_type
667    }
668
669    #[inline]
670    fn next(&self) -> *const c_void {
671        self.next
672    }
673}
674
675unsafe impl InputChainStruct for BeginCustomResolveInfoEXT {
676    const TYPE: StructureType = StructureType::BEGIN_CUSTOM_RESOLVE_INFO_EXT;
677
678    #[inline]
679    fn s_type(&self) -> StructureType {
680        self.s_type
681    }
682
683    #[inline]
684    fn next(&self) -> *const c_void {
685        self.next
686    }
687}
688
689unsafe impl OutputChainStruct for BeginCustomResolveInfoEXT {
690    #[inline]
691    fn next_mut(&self) -> *mut c_void {
692        self.next
693    }
694}
695
696unsafe impl InputChainStruct for BindAccelerationStructureMemoryInfoNV {
697    const TYPE: StructureType = StructureType::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
698
699    #[inline]
700    fn s_type(&self) -> StructureType {
701        self.s_type
702    }
703
704    #[inline]
705    fn next(&self) -> *const c_void {
706        self.next
707    }
708}
709
710unsafe impl InputChainStruct for BindBufferMemoryDeviceGroupInfo {
711    const TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
712
713    #[inline]
714    fn s_type(&self) -> StructureType {
715        self.s_type
716    }
717
718    #[inline]
719    fn next(&self) -> *const c_void {
720        self.next
721    }
722}
723
724unsafe impl InputChainStruct for BindBufferMemoryInfo {
725    const TYPE: StructureType = StructureType::BIND_BUFFER_MEMORY_INFO;
726
727    #[inline]
728    fn s_type(&self) -> StructureType {
729        self.s_type
730    }
731
732    #[inline]
733    fn next(&self) -> *const c_void {
734        self.next
735    }
736}
737
738unsafe impl InputChainStruct for BindDataGraphPipelineSessionMemoryInfoARM {
739    const TYPE: StructureType = StructureType::BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM;
740
741    #[inline]
742    fn s_type(&self) -> StructureType {
743        self.s_type
744    }
745
746    #[inline]
747    fn next(&self) -> *const c_void {
748        self.next
749    }
750}
751
752unsafe impl InputChainStruct for BindDescriptorBufferEmbeddedSamplersInfoEXT {
753    const TYPE: StructureType = StructureType::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT;
754
755    #[inline]
756    fn s_type(&self) -> StructureType {
757        self.s_type
758    }
759
760    #[inline]
761    fn next(&self) -> *const c_void {
762        self.next
763    }
764}
765
766unsafe impl InputChainStruct for BindDescriptorSetsInfo {
767    const TYPE: StructureType = StructureType::BIND_DESCRIPTOR_SETS_INFO;
768
769    #[inline]
770    fn s_type(&self) -> StructureType {
771        self.s_type
772    }
773
774    #[inline]
775    fn next(&self) -> *const c_void {
776        self.next
777    }
778}
779
780unsafe impl InputChainStruct for BindHeapInfoEXT {
781    const TYPE: StructureType = StructureType::BIND_HEAP_INFO_EXT;
782
783    #[inline]
784    fn s_type(&self) -> StructureType {
785        self.s_type
786    }
787
788    #[inline]
789    fn next(&self) -> *const c_void {
790        self.next
791    }
792}
793
794unsafe impl InputChainStruct for BindImageMemoryDeviceGroupInfo {
795    const TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
796
797    #[inline]
798    fn s_type(&self) -> StructureType {
799        self.s_type
800    }
801
802    #[inline]
803    fn next(&self) -> *const c_void {
804        self.next
805    }
806}
807
808unsafe impl InputChainStruct for BindImageMemoryInfo {
809    const TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_INFO;
810
811    #[inline]
812    fn s_type(&self) -> StructureType {
813        self.s_type
814    }
815
816    #[inline]
817    fn next(&self) -> *const c_void {
818        self.next
819    }
820}
821
822unsafe impl InputChainStruct for BindImageMemorySwapchainInfoKHR {
823    const TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
824
825    #[inline]
826    fn s_type(&self) -> StructureType {
827        self.s_type
828    }
829
830    #[inline]
831    fn next(&self) -> *const c_void {
832        self.next
833    }
834}
835
836unsafe impl InputChainStruct for BindImagePlaneMemoryInfo {
837    const TYPE: StructureType = StructureType::BIND_IMAGE_PLANE_MEMORY_INFO;
838
839    #[inline]
840    fn s_type(&self) -> StructureType {
841        self.s_type
842    }
843
844    #[inline]
845    fn next(&self) -> *const c_void {
846        self.next
847    }
848}
849
850unsafe impl InputChainStruct for BindMemoryStatus {
851    const TYPE: StructureType = StructureType::BIND_MEMORY_STATUS;
852
853    #[inline]
854    fn s_type(&self) -> StructureType {
855        self.s_type
856    }
857
858    #[inline]
859    fn next(&self) -> *const c_void {
860        self.next
861    }
862}
863
864unsafe impl InputChainStruct for BindSparseInfo {
865    const TYPE: StructureType = StructureType::BIND_SPARSE_INFO;
866
867    #[inline]
868    fn s_type(&self) -> StructureType {
869        self.s_type
870    }
871
872    #[inline]
873    fn next(&self) -> *const c_void {
874        self.next
875    }
876}
877
878unsafe impl InputChainStruct for BindTensorMemoryInfoARM {
879    const TYPE: StructureType = StructureType::BIND_TENSOR_MEMORY_INFO_ARM;
880
881    #[inline]
882    fn s_type(&self) -> StructureType {
883        self.s_type
884    }
885
886    #[inline]
887    fn next(&self) -> *const c_void {
888        self.next
889    }
890}
891
892unsafe impl InputChainStruct for BindVideoSessionMemoryInfoKHR {
893    const TYPE: StructureType = StructureType::BIND_VIDEO_SESSION_MEMORY_INFO_KHR;
894
895    #[inline]
896    fn s_type(&self) -> StructureType {
897        self.s_type
898    }
899
900    #[inline]
901    fn next(&self) -> *const c_void {
902        self.next
903    }
904}
905
906unsafe impl InputChainStruct for BlitImageCubicWeightsInfoQCOM {
907    const TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM;
908
909    #[inline]
910    fn s_type(&self) -> StructureType {
911        self.s_type
912    }
913
914    #[inline]
915    fn next(&self) -> *const c_void {
916        self.next
917    }
918}
919
920unsafe impl InputChainStruct for BlitImageInfo2 {
921    const TYPE: StructureType = StructureType::BLIT_IMAGE_INFO_2;
922
923    #[inline]
924    fn s_type(&self) -> StructureType {
925        self.s_type
926    }
927
928    #[inline]
929    fn next(&self) -> *const c_void {
930        self.next
931    }
932}
933
934unsafe impl InputChainStruct for BufferCaptureDescriptorDataInfoEXT {
935    const TYPE: StructureType = StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
936
937    #[inline]
938    fn s_type(&self) -> StructureType {
939        self.s_type
940    }
941
942    #[inline]
943    fn next(&self) -> *const c_void {
944        self.next
945    }
946}
947
948unsafe impl InputChainStruct for BufferCollectionBufferCreateInfoFUCHSIA {
949    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA;
950
951    #[inline]
952    fn s_type(&self) -> StructureType {
953        self.s_type
954    }
955
956    #[inline]
957    fn next(&self) -> *const c_void {
958        self.next
959    }
960}
961
962unsafe impl InputChainStruct for BufferCollectionConstraintsInfoFUCHSIA {
963    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA;
964
965    #[inline]
966    fn s_type(&self) -> StructureType {
967        self.s_type
968    }
969
970    #[inline]
971    fn next(&self) -> *const c_void {
972        self.next
973    }
974}
975
976unsafe impl InputChainStruct for BufferCollectionCreateInfoFUCHSIA {
977    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA;
978
979    #[inline]
980    fn s_type(&self) -> StructureType {
981        self.s_type
982    }
983
984    #[inline]
985    fn next(&self) -> *const c_void {
986        self.next
987    }
988}
989
990unsafe impl InputChainStruct for BufferCollectionImageCreateInfoFUCHSIA {
991    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA;
992
993    #[inline]
994    fn s_type(&self) -> StructureType {
995        self.s_type
996    }
997
998    #[inline]
999    fn next(&self) -> *const c_void {
1000        self.next
1001    }
1002}
1003
1004unsafe impl InputChainStruct for BufferCollectionPropertiesFUCHSIA {
1005    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_PROPERTIES_FUCHSIA;
1006
1007    #[inline]
1008    fn s_type(&self) -> StructureType {
1009        self.s_type
1010    }
1011
1012    #[inline]
1013    fn next(&self) -> *const c_void {
1014        self.next
1015    }
1016}
1017
1018unsafe impl OutputChainStruct for BufferCollectionPropertiesFUCHSIA {
1019    #[inline]
1020    fn next_mut(&self) -> *mut c_void {
1021        self.next
1022    }
1023}
1024
1025unsafe impl InputChainStruct for BufferConstraintsInfoFUCHSIA {
1026    const TYPE: StructureType = StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA;
1027
1028    #[inline]
1029    fn s_type(&self) -> StructureType {
1030        self.s_type
1031    }
1032
1033    #[inline]
1034    fn next(&self) -> *const c_void {
1035        self.next
1036    }
1037}
1038
1039unsafe impl InputChainStruct for BufferCopy2 {
1040    const TYPE: StructureType = StructureType::BUFFER_COPY_2;
1041
1042    #[inline]
1043    fn s_type(&self) -> StructureType {
1044        self.s_type
1045    }
1046
1047    #[inline]
1048    fn next(&self) -> *const c_void {
1049        self.next
1050    }
1051}
1052
1053unsafe impl InputChainStruct for BufferCreateInfo {
1054    const TYPE: StructureType = StructureType::BUFFER_CREATE_INFO;
1055
1056    #[inline]
1057    fn s_type(&self) -> StructureType {
1058        self.s_type
1059    }
1060
1061    #[inline]
1062    fn next(&self) -> *const c_void {
1063        self.next
1064    }
1065}
1066
1067unsafe impl InputChainStruct for BufferDeviceAddressCreateInfoEXT {
1068    const TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
1069
1070    #[inline]
1071    fn s_type(&self) -> StructureType {
1072        self.s_type
1073    }
1074
1075    #[inline]
1076    fn next(&self) -> *const c_void {
1077        self.next
1078    }
1079}
1080
1081unsafe impl InputChainStruct for BufferDeviceAddressInfo {
1082    const TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_INFO;
1083
1084    #[inline]
1085    fn s_type(&self) -> StructureType {
1086        self.s_type
1087    }
1088
1089    #[inline]
1090    fn next(&self) -> *const c_void {
1091        self.next
1092    }
1093}
1094
1095unsafe impl InputChainStruct for BufferImageCopy2 {
1096    const TYPE: StructureType = StructureType::BUFFER_IMAGE_COPY_2;
1097
1098    #[inline]
1099    fn s_type(&self) -> StructureType {
1100        self.s_type
1101    }
1102
1103    #[inline]
1104    fn next(&self) -> *const c_void {
1105        self.next
1106    }
1107}
1108
1109unsafe impl InputChainStruct for BufferMemoryBarrier {
1110    const TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER;
1111
1112    #[inline]
1113    fn s_type(&self) -> StructureType {
1114        self.s_type
1115    }
1116
1117    #[inline]
1118    fn next(&self) -> *const c_void {
1119        self.next
1120    }
1121}
1122
1123unsafe impl InputChainStruct for BufferMemoryBarrier2 {
1124    const TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER_2;
1125
1126    #[inline]
1127    fn s_type(&self) -> StructureType {
1128        self.s_type
1129    }
1130
1131    #[inline]
1132    fn next(&self) -> *const c_void {
1133        self.next
1134    }
1135}
1136
1137unsafe impl InputChainStruct for BufferMemoryRequirementsInfo2 {
1138    const TYPE: StructureType = StructureType::BUFFER_MEMORY_REQUIREMENTS_INFO_2;
1139
1140    #[inline]
1141    fn s_type(&self) -> StructureType {
1142        self.s_type
1143    }
1144
1145    #[inline]
1146    fn next(&self) -> *const c_void {
1147        self.next
1148    }
1149}
1150
1151unsafe impl InputChainStruct for BufferOpaqueCaptureAddressCreateInfo {
1152    const TYPE: StructureType = StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
1153
1154    #[inline]
1155    fn s_type(&self) -> StructureType {
1156        self.s_type
1157    }
1158
1159    #[inline]
1160    fn next(&self) -> *const c_void {
1161        self.next
1162    }
1163}
1164
1165unsafe impl InputChainStruct for BufferUsageFlags2CreateInfo {
1166    const TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_CREATE_INFO;
1167
1168    #[inline]
1169    fn s_type(&self) -> StructureType {
1170        self.s_type
1171    }
1172
1173    #[inline]
1174    fn next(&self) -> *const c_void {
1175        self.next
1176    }
1177}
1178
1179unsafe impl InputChainStruct for BufferViewCreateInfo {
1180    const TYPE: StructureType = StructureType::BUFFER_VIEW_CREATE_INFO;
1181
1182    #[inline]
1183    fn s_type(&self) -> StructureType {
1184        self.s_type
1185    }
1186
1187    #[inline]
1188    fn next(&self) -> *const c_void {
1189        self.next
1190    }
1191}
1192
1193unsafe impl InputChainStruct for BuildPartitionedAccelerationStructureInfoNV {
1194    const TYPE: StructureType = StructureType::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV;
1195
1196    #[inline]
1197    fn s_type(&self) -> StructureType {
1198        self.s_type
1199    }
1200
1201    #[inline]
1202    fn next(&self) -> *const c_void {
1203        self.next
1204    }
1205}
1206
1207unsafe impl OutputChainStruct for BuildPartitionedAccelerationStructureInfoNV {
1208    #[inline]
1209    fn next_mut(&self) -> *mut c_void {
1210        self.next
1211    }
1212}
1213
1214unsafe impl InputChainStruct for CalibratedTimestampInfoKHR {
1215    const TYPE: StructureType = StructureType::CALIBRATED_TIMESTAMP_INFO_KHR;
1216
1217    #[inline]
1218    fn s_type(&self) -> StructureType {
1219        self.s_type
1220    }
1221
1222    #[inline]
1223    fn next(&self) -> *const c_void {
1224        self.next
1225    }
1226}
1227
1228unsafe impl InputChainStruct for CheckpointData2NV {
1229    const TYPE: StructureType = StructureType::CHECKPOINT_DATA_2_NV;
1230
1231    #[inline]
1232    fn s_type(&self) -> StructureType {
1233        self.s_type
1234    }
1235
1236    #[inline]
1237    fn next(&self) -> *const c_void {
1238        self.next
1239    }
1240}
1241
1242unsafe impl OutputChainStruct for CheckpointData2NV {
1243    #[inline]
1244    fn next_mut(&self) -> *mut c_void {
1245        self.next
1246    }
1247}
1248
1249unsafe impl InputChainStruct for CheckpointDataNV {
1250    const TYPE: StructureType = StructureType::CHECKPOINT_DATA_NV;
1251
1252    #[inline]
1253    fn s_type(&self) -> StructureType {
1254        self.s_type
1255    }
1256
1257    #[inline]
1258    fn next(&self) -> *const c_void {
1259        self.next
1260    }
1261}
1262
1263unsafe impl OutputChainStruct for CheckpointDataNV {
1264    #[inline]
1265    fn next_mut(&self) -> *mut c_void {
1266        self.next
1267    }
1268}
1269
1270unsafe impl InputChainStruct for ClusterAccelerationStructureClustersBottomLevelInputNV {
1271    const TYPE: StructureType =
1272        StructureType::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV;
1273
1274    #[inline]
1275    fn s_type(&self) -> StructureType {
1276        self.s_type
1277    }
1278
1279    #[inline]
1280    fn next(&self) -> *const c_void {
1281        self.next
1282    }
1283}
1284
1285unsafe impl OutputChainStruct for ClusterAccelerationStructureClustersBottomLevelInputNV {
1286    #[inline]
1287    fn next_mut(&self) -> *mut c_void {
1288        self.next
1289    }
1290}
1291
1292unsafe impl InputChainStruct for ClusterAccelerationStructureCommandsInfoNV {
1293    const TYPE: StructureType = StructureType::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV;
1294
1295    #[inline]
1296    fn s_type(&self) -> StructureType {
1297        self.s_type
1298    }
1299
1300    #[inline]
1301    fn next(&self) -> *const c_void {
1302        self.next
1303    }
1304}
1305
1306unsafe impl OutputChainStruct for ClusterAccelerationStructureCommandsInfoNV {
1307    #[inline]
1308    fn next_mut(&self) -> *mut c_void {
1309        self.next
1310    }
1311}
1312
1313unsafe impl InputChainStruct for ClusterAccelerationStructureInputInfoNV {
1314    const TYPE: StructureType = StructureType::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV;
1315
1316    #[inline]
1317    fn s_type(&self) -> StructureType {
1318        self.s_type
1319    }
1320
1321    #[inline]
1322    fn next(&self) -> *const c_void {
1323        self.next
1324    }
1325}
1326
1327unsafe impl OutputChainStruct for ClusterAccelerationStructureInputInfoNV {
1328    #[inline]
1329    fn next_mut(&self) -> *mut c_void {
1330        self.next
1331    }
1332}
1333
1334unsafe impl InputChainStruct for ClusterAccelerationStructureMoveObjectsInputNV {
1335    const TYPE: StructureType = StructureType::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV;
1336
1337    #[inline]
1338    fn s_type(&self) -> StructureType {
1339        self.s_type
1340    }
1341
1342    #[inline]
1343    fn next(&self) -> *const c_void {
1344        self.next
1345    }
1346}
1347
1348unsafe impl OutputChainStruct for ClusterAccelerationStructureMoveObjectsInputNV {
1349    #[inline]
1350    fn next_mut(&self) -> *mut c_void {
1351        self.next
1352    }
1353}
1354
1355unsafe impl InputChainStruct for ClusterAccelerationStructureTriangleClusterInputNV {
1356    const TYPE: StructureType =
1357        StructureType::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV;
1358
1359    #[inline]
1360    fn s_type(&self) -> StructureType {
1361        self.s_type
1362    }
1363
1364    #[inline]
1365    fn next(&self) -> *const c_void {
1366        self.next
1367    }
1368}
1369
1370unsafe impl OutputChainStruct for ClusterAccelerationStructureTriangleClusterInputNV {
1371    #[inline]
1372    fn next_mut(&self) -> *mut c_void {
1373        self.next
1374    }
1375}
1376
1377unsafe impl InputChainStruct for CommandBufferAllocateInfo {
1378    const TYPE: StructureType = StructureType::COMMAND_BUFFER_ALLOCATE_INFO;
1379
1380    #[inline]
1381    fn s_type(&self) -> StructureType {
1382        self.s_type
1383    }
1384
1385    #[inline]
1386    fn next(&self) -> *const c_void {
1387        self.next
1388    }
1389}
1390
1391unsafe impl InputChainStruct for CommandBufferBeginInfo {
1392    const TYPE: StructureType = StructureType::COMMAND_BUFFER_BEGIN_INFO;
1393
1394    #[inline]
1395    fn s_type(&self) -> StructureType {
1396        self.s_type
1397    }
1398
1399    #[inline]
1400    fn next(&self) -> *const c_void {
1401        self.next
1402    }
1403}
1404
1405unsafe impl InputChainStruct for CommandBufferInheritanceConditionalRenderingInfoEXT {
1406    const TYPE: StructureType =
1407        StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
1408
1409    #[inline]
1410    fn s_type(&self) -> StructureType {
1411        self.s_type
1412    }
1413
1414    #[inline]
1415    fn next(&self) -> *const c_void {
1416        self.next
1417    }
1418}
1419
1420unsafe impl InputChainStruct for CommandBufferInheritanceDescriptorHeapInfoEXT {
1421    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT;
1422
1423    #[inline]
1424    fn s_type(&self) -> StructureType {
1425        self.s_type
1426    }
1427
1428    #[inline]
1429    fn next(&self) -> *const c_void {
1430        self.next
1431    }
1432}
1433
1434unsafe impl InputChainStruct for CommandBufferInheritanceInfo {
1435    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_INFO;
1436
1437    #[inline]
1438    fn s_type(&self) -> StructureType {
1439        self.s_type
1440    }
1441
1442    #[inline]
1443    fn next(&self) -> *const c_void {
1444        self.next
1445    }
1446}
1447
1448unsafe impl InputChainStruct for CommandBufferInheritanceRenderPassTransformInfoQCOM {
1449    const TYPE: StructureType =
1450        StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
1451
1452    #[inline]
1453    fn s_type(&self) -> StructureType {
1454        self.s_type
1455    }
1456
1457    #[inline]
1458    fn next(&self) -> *const c_void {
1459        self.next
1460    }
1461}
1462
1463unsafe impl InputChainStruct for CommandBufferInheritanceRenderingInfo {
1464    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
1465
1466    #[inline]
1467    fn s_type(&self) -> StructureType {
1468        self.s_type
1469    }
1470
1471    #[inline]
1472    fn next(&self) -> *const c_void {
1473        self.next
1474    }
1475}
1476
1477unsafe impl InputChainStruct for CommandBufferInheritanceViewportScissorInfoNV {
1478    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
1479
1480    #[inline]
1481    fn s_type(&self) -> StructureType {
1482        self.s_type
1483    }
1484
1485    #[inline]
1486    fn next(&self) -> *const c_void {
1487        self.next
1488    }
1489}
1490
1491unsafe impl InputChainStruct for CommandBufferSubmitInfo {
1492    const TYPE: StructureType = StructureType::COMMAND_BUFFER_SUBMIT_INFO;
1493
1494    #[inline]
1495    fn s_type(&self) -> StructureType {
1496        self.s_type
1497    }
1498
1499    #[inline]
1500    fn next(&self) -> *const c_void {
1501        self.next
1502    }
1503}
1504
1505unsafe impl InputChainStruct for CommandPoolCreateInfo {
1506    const TYPE: StructureType = StructureType::COMMAND_POOL_CREATE_INFO;
1507
1508    #[inline]
1509    fn s_type(&self) -> StructureType {
1510        self.s_type
1511    }
1512
1513    #[inline]
1514    fn next(&self) -> *const c_void {
1515        self.next
1516    }
1517}
1518
1519unsafe impl InputChainStruct for ComputeOccupancyPriorityParametersNV {
1520    const TYPE: StructureType = StructureType::COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV;
1521
1522    #[inline]
1523    fn s_type(&self) -> StructureType {
1524        self.s_type
1525    }
1526
1527    #[inline]
1528    fn next(&self) -> *const c_void {
1529        self.next
1530    }
1531}
1532
1533unsafe impl InputChainStruct for ComputePipelineCreateInfo {
1534    const TYPE: StructureType = StructureType::COMPUTE_PIPELINE_CREATE_INFO;
1535
1536    #[inline]
1537    fn s_type(&self) -> StructureType {
1538        self.s_type
1539    }
1540
1541    #[inline]
1542    fn next(&self) -> *const c_void {
1543        self.next
1544    }
1545}
1546
1547unsafe impl InputChainStruct for ComputePipelineIndirectBufferInfoNV {
1548    const TYPE: StructureType = StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV;
1549
1550    #[inline]
1551    fn s_type(&self) -> StructureType {
1552        self.s_type
1553    }
1554
1555    #[inline]
1556    fn next(&self) -> *const c_void {
1557        self.next
1558    }
1559}
1560
1561unsafe impl InputChainStruct for ConditionalRenderingBeginInfoEXT {
1562    const TYPE: StructureType = StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
1563
1564    #[inline]
1565    fn s_type(&self) -> StructureType {
1566        self.s_type
1567    }
1568
1569    #[inline]
1570    fn next(&self) -> *const c_void {
1571        self.next
1572    }
1573}
1574
1575unsafe impl InputChainStruct for ConvertCooperativeVectorMatrixInfoNV {
1576    const TYPE: StructureType = StructureType::CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV;
1577
1578    #[inline]
1579    fn s_type(&self) -> StructureType {
1580        self.s_type
1581    }
1582
1583    #[inline]
1584    fn next(&self) -> *const c_void {
1585        self.next
1586    }
1587}
1588
1589unsafe impl InputChainStruct for CooperativeMatrixFlexibleDimensionsPropertiesNV {
1590    const TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV;
1591
1592    #[inline]
1593    fn s_type(&self) -> StructureType {
1594        self.s_type
1595    }
1596
1597    #[inline]
1598    fn next(&self) -> *const c_void {
1599        self.next
1600    }
1601}
1602
1603unsafe impl OutputChainStruct for CooperativeMatrixFlexibleDimensionsPropertiesNV {
1604    #[inline]
1605    fn next_mut(&self) -> *mut c_void {
1606        self.next
1607    }
1608}
1609
1610unsafe impl InputChainStruct for CooperativeMatrixPropertiesKHR {
1611    const TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR;
1612
1613    #[inline]
1614    fn s_type(&self) -> StructureType {
1615        self.s_type
1616    }
1617
1618    #[inline]
1619    fn next(&self) -> *const c_void {
1620        self.next
1621    }
1622}
1623
1624unsafe impl OutputChainStruct for CooperativeMatrixPropertiesKHR {
1625    #[inline]
1626    fn next_mut(&self) -> *mut c_void {
1627        self.next
1628    }
1629}
1630
1631unsafe impl InputChainStruct for CooperativeMatrixPropertiesNV {
1632    const TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_NV;
1633
1634    #[inline]
1635    fn s_type(&self) -> StructureType {
1636        self.s_type
1637    }
1638
1639    #[inline]
1640    fn next(&self) -> *const c_void {
1641        self.next
1642    }
1643}
1644
1645unsafe impl OutputChainStruct for CooperativeMatrixPropertiesNV {
1646    #[inline]
1647    fn next_mut(&self) -> *mut c_void {
1648        self.next
1649    }
1650}
1651
1652unsafe impl InputChainStruct for CooperativeVectorPropertiesNV {
1653    const TYPE: StructureType = StructureType::COOPERATIVE_VECTOR_PROPERTIES_NV;
1654
1655    #[inline]
1656    fn s_type(&self) -> StructureType {
1657        self.s_type
1658    }
1659
1660    #[inline]
1661    fn next(&self) -> *const c_void {
1662        self.next
1663    }
1664}
1665
1666unsafe impl OutputChainStruct for CooperativeVectorPropertiesNV {
1667    #[inline]
1668    fn next_mut(&self) -> *mut c_void {
1669        self.next
1670    }
1671}
1672
1673unsafe impl InputChainStruct for CopyAccelerationStructureInfoKHR {
1674    const TYPE: StructureType = StructureType::COPY_ACCELERATION_STRUCTURE_INFO_KHR;
1675
1676    #[inline]
1677    fn s_type(&self) -> StructureType {
1678        self.s_type
1679    }
1680
1681    #[inline]
1682    fn next(&self) -> *const c_void {
1683        self.next
1684    }
1685}
1686
1687unsafe impl InputChainStruct for CopyAccelerationStructureToMemoryInfoKHR {
1688    const TYPE: StructureType = StructureType::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
1689
1690    #[inline]
1691    fn s_type(&self) -> StructureType {
1692        self.s_type
1693    }
1694
1695    #[inline]
1696    fn next(&self) -> *const c_void {
1697        self.next
1698    }
1699}
1700
1701unsafe impl InputChainStruct for CopyBufferInfo2 {
1702    const TYPE: StructureType = StructureType::COPY_BUFFER_INFO_2;
1703
1704    #[inline]
1705    fn s_type(&self) -> StructureType {
1706        self.s_type
1707    }
1708
1709    #[inline]
1710    fn next(&self) -> *const c_void {
1711        self.next
1712    }
1713}
1714
1715unsafe impl InputChainStruct for CopyBufferToImageInfo2 {
1716    const TYPE: StructureType = StructureType::COPY_BUFFER_TO_IMAGE_INFO_2;
1717
1718    #[inline]
1719    fn s_type(&self) -> StructureType {
1720        self.s_type
1721    }
1722
1723    #[inline]
1724    fn next(&self) -> *const c_void {
1725        self.next
1726    }
1727}
1728
1729unsafe impl InputChainStruct for CopyCommandTransformInfoQCOM {
1730    const TYPE: StructureType = StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM;
1731
1732    #[inline]
1733    fn s_type(&self) -> StructureType {
1734        self.s_type
1735    }
1736
1737    #[inline]
1738    fn next(&self) -> *const c_void {
1739        self.next
1740    }
1741}
1742
1743unsafe impl InputChainStruct for CopyDescriptorSet {
1744    const TYPE: StructureType = StructureType::COPY_DESCRIPTOR_SET;
1745
1746    #[inline]
1747    fn s_type(&self) -> StructureType {
1748        self.s_type
1749    }
1750
1751    #[inline]
1752    fn next(&self) -> *const c_void {
1753        self.next
1754    }
1755}
1756
1757unsafe impl InputChainStruct for CopyImageInfo2 {
1758    const TYPE: StructureType = StructureType::COPY_IMAGE_INFO_2;
1759
1760    #[inline]
1761    fn s_type(&self) -> StructureType {
1762        self.s_type
1763    }
1764
1765    #[inline]
1766    fn next(&self) -> *const c_void {
1767        self.next
1768    }
1769}
1770
1771unsafe impl InputChainStruct for CopyImageToBufferInfo2 {
1772    const TYPE: StructureType = StructureType::COPY_IMAGE_TO_BUFFER_INFO_2;
1773
1774    #[inline]
1775    fn s_type(&self) -> StructureType {
1776        self.s_type
1777    }
1778
1779    #[inline]
1780    fn next(&self) -> *const c_void {
1781        self.next
1782    }
1783}
1784
1785unsafe impl InputChainStruct for CopyImageToImageInfo {
1786    const TYPE: StructureType = StructureType::COPY_IMAGE_TO_IMAGE_INFO;
1787
1788    #[inline]
1789    fn s_type(&self) -> StructureType {
1790        self.s_type
1791    }
1792
1793    #[inline]
1794    fn next(&self) -> *const c_void {
1795        self.next
1796    }
1797}
1798
1799unsafe impl InputChainStruct for CopyImageToMemoryInfo {
1800    const TYPE: StructureType = StructureType::COPY_IMAGE_TO_MEMORY_INFO;
1801
1802    #[inline]
1803    fn s_type(&self) -> StructureType {
1804        self.s_type
1805    }
1806
1807    #[inline]
1808    fn next(&self) -> *const c_void {
1809        self.next
1810    }
1811}
1812
1813unsafe impl InputChainStruct for CopyMemoryIndirectInfoKHR {
1814    const TYPE: StructureType = StructureType::COPY_MEMORY_INDIRECT_INFO_KHR;
1815
1816    #[inline]
1817    fn s_type(&self) -> StructureType {
1818        self.s_type
1819    }
1820
1821    #[inline]
1822    fn next(&self) -> *const c_void {
1823        self.next
1824    }
1825}
1826
1827unsafe impl InputChainStruct for CopyMemoryToAccelerationStructureInfoKHR {
1828    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
1829
1830    #[inline]
1831    fn s_type(&self) -> StructureType {
1832        self.s_type
1833    }
1834
1835    #[inline]
1836    fn next(&self) -> *const c_void {
1837        self.next
1838    }
1839}
1840
1841unsafe impl InputChainStruct for CopyMemoryToImageIndirectInfoKHR {
1842    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR;
1843
1844    #[inline]
1845    fn s_type(&self) -> StructureType {
1846        self.s_type
1847    }
1848
1849    #[inline]
1850    fn next(&self) -> *const c_void {
1851        self.next
1852    }
1853}
1854
1855unsafe impl InputChainStruct for CopyMemoryToImageInfo {
1856    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INFO;
1857
1858    #[inline]
1859    fn s_type(&self) -> StructureType {
1860        self.s_type
1861    }
1862
1863    #[inline]
1864    fn next(&self) -> *const c_void {
1865        self.next
1866    }
1867}
1868
1869unsafe impl InputChainStruct for CopyMemoryToMicromapInfoEXT {
1870    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT;
1871
1872    #[inline]
1873    fn s_type(&self) -> StructureType {
1874        self.s_type
1875    }
1876
1877    #[inline]
1878    fn next(&self) -> *const c_void {
1879        self.next
1880    }
1881}
1882
1883unsafe impl InputChainStruct for CopyMicromapInfoEXT {
1884    const TYPE: StructureType = StructureType::COPY_MICROMAP_INFO_EXT;
1885
1886    #[inline]
1887    fn s_type(&self) -> StructureType {
1888        self.s_type
1889    }
1890
1891    #[inline]
1892    fn next(&self) -> *const c_void {
1893        self.next
1894    }
1895}
1896
1897unsafe impl InputChainStruct for CopyMicromapToMemoryInfoEXT {
1898    const TYPE: StructureType = StructureType::COPY_MICROMAP_TO_MEMORY_INFO_EXT;
1899
1900    #[inline]
1901    fn s_type(&self) -> StructureType {
1902        self.s_type
1903    }
1904
1905    #[inline]
1906    fn next(&self) -> *const c_void {
1907        self.next
1908    }
1909}
1910
1911unsafe impl InputChainStruct for CopyTensorInfoARM {
1912    const TYPE: StructureType = StructureType::COPY_TENSOR_INFO_ARM;
1913
1914    #[inline]
1915    fn s_type(&self) -> StructureType {
1916        self.s_type
1917    }
1918
1919    #[inline]
1920    fn next(&self) -> *const c_void {
1921        self.next
1922    }
1923}
1924
1925unsafe impl InputChainStruct for CuFunctionCreateInfoNVX {
1926    const TYPE: StructureType = StructureType::CU_FUNCTION_CREATE_INFO_NVX;
1927
1928    #[inline]
1929    fn s_type(&self) -> StructureType {
1930        self.s_type
1931    }
1932
1933    #[inline]
1934    fn next(&self) -> *const c_void {
1935        self.next
1936    }
1937}
1938
1939unsafe impl InputChainStruct for CuLaunchInfoNVX {
1940    const TYPE: StructureType = StructureType::CU_LAUNCH_INFO_NVX;
1941
1942    #[inline]
1943    fn s_type(&self) -> StructureType {
1944        self.s_type
1945    }
1946
1947    #[inline]
1948    fn next(&self) -> *const c_void {
1949        self.next
1950    }
1951}
1952
1953unsafe impl InputChainStruct for CuModuleCreateInfoNVX {
1954    const TYPE: StructureType = StructureType::CU_MODULE_CREATE_INFO_NVX;
1955
1956    #[inline]
1957    fn s_type(&self) -> StructureType {
1958        self.s_type
1959    }
1960
1961    #[inline]
1962    fn next(&self) -> *const c_void {
1963        self.next
1964    }
1965}
1966
1967unsafe impl InputChainStruct for CuModuleTexturingModeCreateInfoNVX {
1968    const TYPE: StructureType = StructureType::CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX;
1969
1970    #[inline]
1971    fn s_type(&self) -> StructureType {
1972        self.s_type
1973    }
1974
1975    #[inline]
1976    fn next(&self) -> *const c_void {
1977        self.next
1978    }
1979}
1980
1981unsafe impl InputChainStruct for CudaFunctionCreateInfoNV {
1982    const TYPE: StructureType = StructureType::CUDA_FUNCTION_CREATE_INFO_NV;
1983
1984    #[inline]
1985    fn s_type(&self) -> StructureType {
1986        self.s_type
1987    }
1988
1989    #[inline]
1990    fn next(&self) -> *const c_void {
1991        self.next
1992    }
1993}
1994
1995unsafe impl InputChainStruct for CudaLaunchInfoNV {
1996    const TYPE: StructureType = StructureType::CUDA_LAUNCH_INFO_NV;
1997
1998    #[inline]
1999    fn s_type(&self) -> StructureType {
2000        self.s_type
2001    }
2002
2003    #[inline]
2004    fn next(&self) -> *const c_void {
2005        self.next
2006    }
2007}
2008
2009unsafe impl InputChainStruct for CudaModuleCreateInfoNV {
2010    const TYPE: StructureType = StructureType::CUDA_MODULE_CREATE_INFO_NV;
2011
2012    #[inline]
2013    fn s_type(&self) -> StructureType {
2014        self.s_type
2015    }
2016
2017    #[inline]
2018    fn next(&self) -> *const c_void {
2019        self.next
2020    }
2021}
2022
2023unsafe impl InputChainStruct for CustomResolveCreateInfoEXT {
2024    const TYPE: StructureType = StructureType::CUSTOM_RESOLVE_CREATE_INFO_EXT;
2025
2026    #[inline]
2027    fn s_type(&self) -> StructureType {
2028        self.s_type
2029    }
2030
2031    #[inline]
2032    fn next(&self) -> *const c_void {
2033        self.next
2034    }
2035}
2036
2037unsafe impl InputChainStruct for D3D12FenceSubmitInfoKHR {
2038    const TYPE: StructureType = StructureType::D3D12_FENCE_SUBMIT_INFO_KHR;
2039
2040    #[inline]
2041    fn s_type(&self) -> StructureType {
2042        self.s_type
2043    }
2044
2045    #[inline]
2046    fn next(&self) -> *const c_void {
2047        self.next
2048    }
2049}
2050
2051unsafe impl InputChainStruct for DataGraphPipelineBuiltinModelCreateInfoQCOM {
2052    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM;
2053
2054    #[inline]
2055    fn s_type(&self) -> StructureType {
2056        self.s_type
2057    }
2058
2059    #[inline]
2060    fn next(&self) -> *const c_void {
2061        self.next
2062    }
2063}
2064
2065unsafe impl InputChainStruct for DataGraphPipelineCompilerControlCreateInfoARM {
2066    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM;
2067
2068    #[inline]
2069    fn s_type(&self) -> StructureType {
2070        self.s_type
2071    }
2072
2073    #[inline]
2074    fn next(&self) -> *const c_void {
2075        self.next
2076    }
2077}
2078
2079unsafe impl InputChainStruct for DataGraphPipelineConstantARM {
2080    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_CONSTANT_ARM;
2081
2082    #[inline]
2083    fn s_type(&self) -> StructureType {
2084        self.s_type
2085    }
2086
2087    #[inline]
2088    fn next(&self) -> *const c_void {
2089        self.next
2090    }
2091}
2092
2093unsafe impl InputChainStruct for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
2094    const TYPE: StructureType =
2095        StructureType::DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM;
2096
2097    #[inline]
2098    fn s_type(&self) -> StructureType {
2099        self.s_type
2100    }
2101
2102    #[inline]
2103    fn next(&self) -> *const c_void {
2104        self.next
2105    }
2106}
2107
2108unsafe impl InputChainStruct for DataGraphPipelineCreateInfoARM {
2109    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_CREATE_INFO_ARM;
2110
2111    #[inline]
2112    fn s_type(&self) -> StructureType {
2113        self.s_type
2114    }
2115
2116    #[inline]
2117    fn next(&self) -> *const c_void {
2118        self.next
2119    }
2120}
2121
2122unsafe impl InputChainStruct for DataGraphPipelineDispatchInfoARM {
2123    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM;
2124
2125    #[inline]
2126    fn s_type(&self) -> StructureType {
2127        self.s_type
2128    }
2129
2130    #[inline]
2131    fn next(&self) -> *const c_void {
2132        self.next
2133    }
2134}
2135
2136unsafe impl OutputChainStruct for DataGraphPipelineDispatchInfoARM {
2137    #[inline]
2138    fn next_mut(&self) -> *mut c_void {
2139        self.next
2140    }
2141}
2142
2143unsafe impl InputChainStruct for DataGraphPipelineIdentifierCreateInfoARM {
2144    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM;
2145
2146    #[inline]
2147    fn s_type(&self) -> StructureType {
2148        self.s_type
2149    }
2150
2151    #[inline]
2152    fn next(&self) -> *const c_void {
2153        self.next
2154    }
2155}
2156
2157unsafe impl InputChainStruct for DataGraphPipelineInfoARM {
2158    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_INFO_ARM;
2159
2160    #[inline]
2161    fn s_type(&self) -> StructureType {
2162        self.s_type
2163    }
2164
2165    #[inline]
2166    fn next(&self) -> *const c_void {
2167        self.next
2168    }
2169}
2170
2171unsafe impl InputChainStruct for DataGraphPipelinePropertyQueryResultARM {
2172    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM;
2173
2174    #[inline]
2175    fn s_type(&self) -> StructureType {
2176        self.s_type
2177    }
2178
2179    #[inline]
2180    fn next(&self) -> *const c_void {
2181        self.next
2182    }
2183}
2184
2185unsafe impl OutputChainStruct for DataGraphPipelinePropertyQueryResultARM {
2186    #[inline]
2187    fn next_mut(&self) -> *mut c_void {
2188        self.next
2189    }
2190}
2191
2192unsafe impl InputChainStruct for DataGraphPipelineResourceInfoARM {
2193    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM;
2194
2195    #[inline]
2196    fn s_type(&self) -> StructureType {
2197        self.s_type
2198    }
2199
2200    #[inline]
2201    fn next(&self) -> *const c_void {
2202        self.next
2203    }
2204}
2205
2206unsafe impl InputChainStruct for DataGraphPipelineSessionBindPointRequirementARM {
2207    const TYPE: StructureType =
2208        StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM;
2209
2210    #[inline]
2211    fn s_type(&self) -> StructureType {
2212        self.s_type
2213    }
2214
2215    #[inline]
2216    fn next(&self) -> *const c_void {
2217        self.next
2218    }
2219}
2220
2221unsafe impl OutputChainStruct for DataGraphPipelineSessionBindPointRequirementARM {
2222    #[inline]
2223    fn next_mut(&self) -> *mut c_void {
2224        self.next
2225    }
2226}
2227
2228unsafe impl InputChainStruct for DataGraphPipelineSessionBindPointRequirementsInfoARM {
2229    const TYPE: StructureType =
2230        StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM;
2231
2232    #[inline]
2233    fn s_type(&self) -> StructureType {
2234        self.s_type
2235    }
2236
2237    #[inline]
2238    fn next(&self) -> *const c_void {
2239        self.next
2240    }
2241}
2242
2243unsafe impl InputChainStruct for DataGraphPipelineSessionCreateInfoARM {
2244    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM;
2245
2246    #[inline]
2247    fn s_type(&self) -> StructureType {
2248        self.s_type
2249    }
2250
2251    #[inline]
2252    fn next(&self) -> *const c_void {
2253        self.next
2254    }
2255}
2256
2257unsafe impl InputChainStruct for DataGraphPipelineSessionMemoryRequirementsInfoARM {
2258    const TYPE: StructureType =
2259        StructureType::DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM;
2260
2261    #[inline]
2262    fn s_type(&self) -> StructureType {
2263        self.s_type
2264    }
2265
2266    #[inline]
2267    fn next(&self) -> *const c_void {
2268        self.next
2269    }
2270}
2271
2272unsafe impl InputChainStruct for DataGraphPipelineShaderModuleCreateInfoARM {
2273    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM;
2274
2275    #[inline]
2276    fn s_type(&self) -> StructureType {
2277        self.s_type
2278    }
2279
2280    #[inline]
2281    fn next(&self) -> *const c_void {
2282        self.next
2283    }
2284}
2285
2286unsafe impl InputChainStruct for DataGraphProcessingEngineCreateInfoARM {
2287    const TYPE: StructureType = StructureType::DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM;
2288
2289    #[inline]
2290    fn s_type(&self) -> StructureType {
2291        self.s_type
2292    }
2293
2294    #[inline]
2295    fn next(&self) -> *const c_void {
2296        self.next
2297    }
2298}
2299
2300unsafe impl InputChainStruct for DebugMarkerMarkerInfoEXT {
2301    const TYPE: StructureType = StructureType::DEBUG_MARKER_MARKER_INFO_EXT;
2302
2303    #[inline]
2304    fn s_type(&self) -> StructureType {
2305        self.s_type
2306    }
2307
2308    #[inline]
2309    fn next(&self) -> *const c_void {
2310        self.next
2311    }
2312}
2313
2314unsafe impl InputChainStruct for DebugMarkerObjectNameInfoEXT {
2315    const TYPE: StructureType = StructureType::DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
2316
2317    #[inline]
2318    fn s_type(&self) -> StructureType {
2319        self.s_type
2320    }
2321
2322    #[inline]
2323    fn next(&self) -> *const c_void {
2324        self.next
2325    }
2326}
2327
2328unsafe impl InputChainStruct for DebugMarkerObjectTagInfoEXT {
2329    const TYPE: StructureType = StructureType::DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
2330
2331    #[inline]
2332    fn s_type(&self) -> StructureType {
2333        self.s_type
2334    }
2335
2336    #[inline]
2337    fn next(&self) -> *const c_void {
2338        self.next
2339    }
2340}
2341
2342unsafe impl InputChainStruct for DebugReportCallbackCreateInfoEXT {
2343    const TYPE: StructureType = StructureType::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
2344
2345    #[inline]
2346    fn s_type(&self) -> StructureType {
2347        self.s_type
2348    }
2349
2350    #[inline]
2351    fn next(&self) -> *const c_void {
2352        self.next
2353    }
2354}
2355
2356unsafe impl InputChainStruct for DebugUtilsLabelEXT {
2357    const TYPE: StructureType = StructureType::DEBUG_UTILS_LABEL_EXT;
2358
2359    #[inline]
2360    fn s_type(&self) -> StructureType {
2361        self.s_type
2362    }
2363
2364    #[inline]
2365    fn next(&self) -> *const c_void {
2366        self.next
2367    }
2368}
2369
2370unsafe impl InputChainStruct for DebugUtilsMessengerCallbackDataEXT {
2371    const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
2372
2373    #[inline]
2374    fn s_type(&self) -> StructureType {
2375        self.s_type
2376    }
2377
2378    #[inline]
2379    fn next(&self) -> *const c_void {
2380        self.next
2381    }
2382}
2383
2384unsafe impl InputChainStruct for DebugUtilsMessengerCreateInfoEXT {
2385    const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
2386
2387    #[inline]
2388    fn s_type(&self) -> StructureType {
2389        self.s_type
2390    }
2391
2392    #[inline]
2393    fn next(&self) -> *const c_void {
2394        self.next
2395    }
2396}
2397
2398unsafe impl InputChainStruct for DebugUtilsObjectNameInfoEXT {
2399    const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
2400
2401    #[inline]
2402    fn s_type(&self) -> StructureType {
2403        self.s_type
2404    }
2405
2406    #[inline]
2407    fn next(&self) -> *const c_void {
2408        self.next
2409    }
2410}
2411
2412unsafe impl InputChainStruct for DebugUtilsObjectTagInfoEXT {
2413    const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
2414
2415    #[inline]
2416    fn s_type(&self) -> StructureType {
2417        self.s_type
2418    }
2419
2420    #[inline]
2421    fn next(&self) -> *const c_void {
2422        self.next
2423    }
2424}
2425
2426unsafe impl InputChainStruct for DecompressMemoryInfoEXT {
2427    const TYPE: StructureType = StructureType::DECOMPRESS_MEMORY_INFO_EXT;
2428
2429    #[inline]
2430    fn s_type(&self) -> StructureType {
2431        self.s_type
2432    }
2433
2434    #[inline]
2435    fn next(&self) -> *const c_void {
2436        self.next
2437    }
2438}
2439
2440unsafe impl InputChainStruct for DedicatedAllocationBufferCreateInfoNV {
2441    const TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
2442
2443    #[inline]
2444    fn s_type(&self) -> StructureType {
2445        self.s_type
2446    }
2447
2448    #[inline]
2449    fn next(&self) -> *const c_void {
2450        self.next
2451    }
2452}
2453
2454unsafe impl InputChainStruct for DedicatedAllocationImageCreateInfoNV {
2455    const TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
2456
2457    #[inline]
2458    fn s_type(&self) -> StructureType {
2459        self.s_type
2460    }
2461
2462    #[inline]
2463    fn next(&self) -> *const c_void {
2464        self.next
2465    }
2466}
2467
2468unsafe impl InputChainStruct for DedicatedAllocationMemoryAllocateInfoNV {
2469    const TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
2470
2471    #[inline]
2472    fn s_type(&self) -> StructureType {
2473        self.s_type
2474    }
2475
2476    #[inline]
2477    fn next(&self) -> *const c_void {
2478        self.next
2479    }
2480}
2481
2482unsafe impl InputChainStruct for DependencyInfo {
2483    const TYPE: StructureType = StructureType::DEPENDENCY_INFO;
2484
2485    #[inline]
2486    fn s_type(&self) -> StructureType {
2487        self.s_type
2488    }
2489
2490    #[inline]
2491    fn next(&self) -> *const c_void {
2492        self.next
2493    }
2494}
2495
2496unsafe impl InputChainStruct for DepthBiasInfoEXT {
2497    const TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT;
2498
2499    #[inline]
2500    fn s_type(&self) -> StructureType {
2501        self.s_type
2502    }
2503
2504    #[inline]
2505    fn next(&self) -> *const c_void {
2506        self.next
2507    }
2508}
2509
2510unsafe impl InputChainStruct for DepthBiasRepresentationInfoEXT {
2511    const TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT;
2512
2513    #[inline]
2514    fn s_type(&self) -> StructureType {
2515        self.s_type
2516    }
2517
2518    #[inline]
2519    fn next(&self) -> *const c_void {
2520        self.next
2521    }
2522}
2523
2524unsafe impl InputChainStruct for DescriptorAddressInfoEXT {
2525    const TYPE: StructureType = StructureType::DESCRIPTOR_ADDRESS_INFO_EXT;
2526
2527    #[inline]
2528    fn s_type(&self) -> StructureType {
2529        self.s_type
2530    }
2531
2532    #[inline]
2533    fn next(&self) -> *const c_void {
2534        self.next
2535    }
2536}
2537
2538unsafe impl OutputChainStruct for DescriptorAddressInfoEXT {
2539    #[inline]
2540    fn next_mut(&self) -> *mut c_void {
2541        self.next
2542    }
2543}
2544
2545unsafe impl InputChainStruct for DescriptorBufferBindingInfoEXT {
2546    const TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT;
2547
2548    #[inline]
2549    fn s_type(&self) -> StructureType {
2550        self.s_type
2551    }
2552
2553    #[inline]
2554    fn next(&self) -> *const c_void {
2555        self.next
2556    }
2557}
2558
2559unsafe impl InputChainStruct for DescriptorBufferBindingPushDescriptorBufferHandleEXT {
2560    const TYPE: StructureType =
2561        StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT;
2562
2563    #[inline]
2564    fn s_type(&self) -> StructureType {
2565        self.s_type
2566    }
2567
2568    #[inline]
2569    fn next(&self) -> *const c_void {
2570        self.next
2571    }
2572}
2573
2574unsafe impl InputChainStruct for DescriptorGetInfoEXT {
2575    const TYPE: StructureType = StructureType::DESCRIPTOR_GET_INFO_EXT;
2576
2577    #[inline]
2578    fn s_type(&self) -> StructureType {
2579        self.s_type
2580    }
2581
2582    #[inline]
2583    fn next(&self) -> *const c_void {
2584        self.next
2585    }
2586}
2587
2588unsafe impl InputChainStruct for DescriptorGetTensorInfoARM {
2589    const TYPE: StructureType = StructureType::DESCRIPTOR_GET_TENSOR_INFO_ARM;
2590
2591    #[inline]
2592    fn s_type(&self) -> StructureType {
2593        self.s_type
2594    }
2595
2596    #[inline]
2597    fn next(&self) -> *const c_void {
2598        self.next
2599    }
2600}
2601
2602unsafe impl InputChainStruct for DescriptorPoolCreateInfo {
2603    const TYPE: StructureType = StructureType::DESCRIPTOR_POOL_CREATE_INFO;
2604
2605    #[inline]
2606    fn s_type(&self) -> StructureType {
2607        self.s_type
2608    }
2609
2610    #[inline]
2611    fn next(&self) -> *const c_void {
2612        self.next
2613    }
2614}
2615
2616unsafe impl InputChainStruct for DescriptorPoolInlineUniformBlockCreateInfo {
2617    const TYPE: StructureType = StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
2618
2619    #[inline]
2620    fn s_type(&self) -> StructureType {
2621        self.s_type
2622    }
2623
2624    #[inline]
2625    fn next(&self) -> *const c_void {
2626        self.next
2627    }
2628}
2629
2630unsafe impl InputChainStruct for DescriptorSetAllocateInfo {
2631    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_ALLOCATE_INFO;
2632
2633    #[inline]
2634    fn s_type(&self) -> StructureType {
2635        self.s_type
2636    }
2637
2638    #[inline]
2639    fn next(&self) -> *const c_void {
2640        self.next
2641    }
2642}
2643
2644unsafe impl InputChainStruct for DescriptorSetAndBindingMappingEXT {
2645    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT;
2646
2647    #[inline]
2648    fn s_type(&self) -> StructureType {
2649        self.s_type
2650    }
2651
2652    #[inline]
2653    fn next(&self) -> *const c_void {
2654        self.next
2655    }
2656}
2657
2658unsafe impl InputChainStruct for DescriptorSetBindingReferenceVALVE {
2659    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE;
2660
2661    #[inline]
2662    fn s_type(&self) -> StructureType {
2663        self.s_type
2664    }
2665
2666    #[inline]
2667    fn next(&self) -> *const c_void {
2668        self.next
2669    }
2670}
2671
2672unsafe impl InputChainStruct for DescriptorSetLayoutBindingFlagsCreateInfo {
2673    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
2674
2675    #[inline]
2676    fn s_type(&self) -> StructureType {
2677        self.s_type
2678    }
2679
2680    #[inline]
2681    fn next(&self) -> *const c_void {
2682        self.next
2683    }
2684}
2685
2686unsafe impl InputChainStruct for DescriptorSetLayoutCreateInfo {
2687    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
2688
2689    #[inline]
2690    fn s_type(&self) -> StructureType {
2691        self.s_type
2692    }
2693
2694    #[inline]
2695    fn next(&self) -> *const c_void {
2696        self.next
2697    }
2698}
2699
2700unsafe impl InputChainStruct for DescriptorSetLayoutHostMappingInfoVALVE {
2701    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE;
2702
2703    #[inline]
2704    fn s_type(&self) -> StructureType {
2705        self.s_type
2706    }
2707
2708    #[inline]
2709    fn next(&self) -> *const c_void {
2710        self.next
2711    }
2712}
2713
2714unsafe impl OutputChainStruct for DescriptorSetLayoutHostMappingInfoVALVE {
2715    #[inline]
2716    fn next_mut(&self) -> *mut c_void {
2717        self.next
2718    }
2719}
2720
2721unsafe impl InputChainStruct for DescriptorSetLayoutSupport {
2722    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT;
2723
2724    #[inline]
2725    fn s_type(&self) -> StructureType {
2726        self.s_type
2727    }
2728
2729    #[inline]
2730    fn next(&self) -> *const c_void {
2731        self.next
2732    }
2733}
2734
2735unsafe impl OutputChainStruct for DescriptorSetLayoutSupport {
2736    #[inline]
2737    fn next_mut(&self) -> *mut c_void {
2738        self.next
2739    }
2740}
2741
2742unsafe impl InputChainStruct for DescriptorSetVariableDescriptorCountAllocateInfo {
2743    const TYPE: StructureType =
2744        StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
2745
2746    #[inline]
2747    fn s_type(&self) -> StructureType {
2748        self.s_type
2749    }
2750
2751    #[inline]
2752    fn next(&self) -> *const c_void {
2753        self.next
2754    }
2755}
2756
2757unsafe impl InputChainStruct for DescriptorSetVariableDescriptorCountLayoutSupport {
2758    const TYPE: StructureType =
2759        StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
2760
2761    #[inline]
2762    fn s_type(&self) -> StructureType {
2763        self.s_type
2764    }
2765
2766    #[inline]
2767    fn next(&self) -> *const c_void {
2768        self.next
2769    }
2770}
2771
2772unsafe impl OutputChainStruct for DescriptorSetVariableDescriptorCountLayoutSupport {
2773    #[inline]
2774    fn next_mut(&self) -> *mut c_void {
2775        self.next
2776    }
2777}
2778
2779unsafe impl InputChainStruct for DescriptorUpdateTemplateCreateInfo {
2780    const TYPE: StructureType = StructureType::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
2781
2782    #[inline]
2783    fn s_type(&self) -> StructureType {
2784        self.s_type
2785    }
2786
2787    #[inline]
2788    fn next(&self) -> *const c_void {
2789        self.next
2790    }
2791}
2792
2793unsafe impl InputChainStruct for DeviceAddressBindingCallbackDataEXT {
2794    const TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT;
2795
2796    #[inline]
2797    fn s_type(&self) -> StructureType {
2798        self.s_type
2799    }
2800
2801    #[inline]
2802    fn next(&self) -> *const c_void {
2803        self.next
2804    }
2805}
2806
2807unsafe impl OutputChainStruct for DeviceAddressBindingCallbackDataEXT {
2808    #[inline]
2809    fn next_mut(&self) -> *mut c_void {
2810        self.next
2811    }
2812}
2813
2814unsafe impl InputChainStruct for DeviceBufferMemoryRequirements {
2815    const TYPE: StructureType = StructureType::DEVICE_BUFFER_MEMORY_REQUIREMENTS;
2816
2817    #[inline]
2818    fn s_type(&self) -> StructureType {
2819        self.s_type
2820    }
2821
2822    #[inline]
2823    fn next(&self) -> *const c_void {
2824        self.next
2825    }
2826}
2827
2828unsafe impl InputChainStruct for DeviceCreateInfo {
2829    const TYPE: StructureType = StructureType::DEVICE_CREATE_INFO;
2830
2831    #[inline]
2832    fn s_type(&self) -> StructureType {
2833        self.s_type
2834    }
2835
2836    #[inline]
2837    fn next(&self) -> *const c_void {
2838        self.next
2839    }
2840}
2841
2842unsafe impl InputChainStruct for DeviceDeviceMemoryReportCreateInfoEXT {
2843    const TYPE: StructureType = StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
2844
2845    #[inline]
2846    fn s_type(&self) -> StructureType {
2847        self.s_type
2848    }
2849
2850    #[inline]
2851    fn next(&self) -> *const c_void {
2852        self.next
2853    }
2854}
2855
2856unsafe impl InputChainStruct for DeviceDiagnosticsConfigCreateInfoNV {
2857    const TYPE: StructureType = StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
2858
2859    #[inline]
2860    fn s_type(&self) -> StructureType {
2861        self.s_type
2862    }
2863
2864    #[inline]
2865    fn next(&self) -> *const c_void {
2866        self.next
2867    }
2868}
2869
2870unsafe impl InputChainStruct for DeviceEventInfoEXT {
2871    const TYPE: StructureType = StructureType::DEVICE_EVENT_INFO_EXT;
2872
2873    #[inline]
2874    fn s_type(&self) -> StructureType {
2875        self.s_type
2876    }
2877
2878    #[inline]
2879    fn next(&self) -> *const c_void {
2880        self.next
2881    }
2882}
2883
2884unsafe impl InputChainStruct for DeviceFaultCountsEXT {
2885    const TYPE: StructureType = StructureType::DEVICE_FAULT_COUNTS_EXT;
2886
2887    #[inline]
2888    fn s_type(&self) -> StructureType {
2889        self.s_type
2890    }
2891
2892    #[inline]
2893    fn next(&self) -> *const c_void {
2894        self.next
2895    }
2896}
2897
2898unsafe impl OutputChainStruct for DeviceFaultCountsEXT {
2899    #[inline]
2900    fn next_mut(&self) -> *mut c_void {
2901        self.next
2902    }
2903}
2904
2905unsafe impl InputChainStruct for DeviceFaultInfoEXT {
2906    const TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_EXT;
2907
2908    #[inline]
2909    fn s_type(&self) -> StructureType {
2910        self.s_type
2911    }
2912
2913    #[inline]
2914    fn next(&self) -> *const c_void {
2915        self.next
2916    }
2917}
2918
2919unsafe impl OutputChainStruct for DeviceFaultInfoEXT {
2920    #[inline]
2921    fn next_mut(&self) -> *mut c_void {
2922        self.next
2923    }
2924}
2925
2926unsafe impl InputChainStruct for DeviceGroupBindSparseInfo {
2927    const TYPE: StructureType = StructureType::DEVICE_GROUP_BIND_SPARSE_INFO;
2928
2929    #[inline]
2930    fn s_type(&self) -> StructureType {
2931        self.s_type
2932    }
2933
2934    #[inline]
2935    fn next(&self) -> *const c_void {
2936        self.next
2937    }
2938}
2939
2940unsafe impl InputChainStruct for DeviceGroupCommandBufferBeginInfo {
2941    const TYPE: StructureType = StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
2942
2943    #[inline]
2944    fn s_type(&self) -> StructureType {
2945        self.s_type
2946    }
2947
2948    #[inline]
2949    fn next(&self) -> *const c_void {
2950        self.next
2951    }
2952}
2953
2954unsafe impl InputChainStruct for DeviceGroupDeviceCreateInfo {
2955    const TYPE: StructureType = StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO;
2956
2957    #[inline]
2958    fn s_type(&self) -> StructureType {
2959        self.s_type
2960    }
2961
2962    #[inline]
2963    fn next(&self) -> *const c_void {
2964        self.next
2965    }
2966}
2967
2968unsafe impl InputChainStruct for DeviceGroupPresentCapabilitiesKHR {
2969    const TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
2970
2971    #[inline]
2972    fn s_type(&self) -> StructureType {
2973        self.s_type
2974    }
2975
2976    #[inline]
2977    fn next(&self) -> *const c_void {
2978        self.next
2979    }
2980}
2981
2982unsafe impl OutputChainStruct for DeviceGroupPresentCapabilitiesKHR {
2983    #[inline]
2984    fn next_mut(&self) -> *mut c_void {
2985        self.next
2986    }
2987}
2988
2989unsafe impl InputChainStruct for DeviceGroupPresentInfoKHR {
2990    const TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_INFO_KHR;
2991
2992    #[inline]
2993    fn s_type(&self) -> StructureType {
2994        self.s_type
2995    }
2996
2997    #[inline]
2998    fn next(&self) -> *const c_void {
2999        self.next
3000    }
3001}
3002
3003unsafe impl InputChainStruct for DeviceGroupRenderPassBeginInfo {
3004    const TYPE: StructureType = StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
3005
3006    #[inline]
3007    fn s_type(&self) -> StructureType {
3008        self.s_type
3009    }
3010
3011    #[inline]
3012    fn next(&self) -> *const c_void {
3013        self.next
3014    }
3015}
3016
3017unsafe impl InputChainStruct for DeviceGroupSubmitInfo {
3018    const TYPE: StructureType = StructureType::DEVICE_GROUP_SUBMIT_INFO;
3019
3020    #[inline]
3021    fn s_type(&self) -> StructureType {
3022        self.s_type
3023    }
3024
3025    #[inline]
3026    fn next(&self) -> *const c_void {
3027        self.next
3028    }
3029}
3030
3031unsafe impl InputChainStruct for DeviceGroupSwapchainCreateInfoKHR {
3032    const TYPE: StructureType = StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
3033
3034    #[inline]
3035    fn s_type(&self) -> StructureType {
3036        self.s_type
3037    }
3038
3039    #[inline]
3040    fn next(&self) -> *const c_void {
3041        self.next
3042    }
3043}
3044
3045unsafe impl InputChainStruct for DeviceImageMemoryRequirements {
3046    const TYPE: StructureType = StructureType::DEVICE_IMAGE_MEMORY_REQUIREMENTS;
3047
3048    #[inline]
3049    fn s_type(&self) -> StructureType {
3050        self.s_type
3051    }
3052
3053    #[inline]
3054    fn next(&self) -> *const c_void {
3055        self.next
3056    }
3057}
3058
3059unsafe impl InputChainStruct for DeviceImageSubresourceInfo {
3060    const TYPE: StructureType = StructureType::DEVICE_IMAGE_SUBRESOURCE_INFO;
3061
3062    #[inline]
3063    fn s_type(&self) -> StructureType {
3064        self.s_type
3065    }
3066
3067    #[inline]
3068    fn next(&self) -> *const c_void {
3069        self.next
3070    }
3071}
3072
3073unsafe impl InputChainStruct for DeviceMemoryOpaqueCaptureAddressInfo {
3074    const TYPE: StructureType = StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
3075
3076    #[inline]
3077    fn s_type(&self) -> StructureType {
3078        self.s_type
3079    }
3080
3081    #[inline]
3082    fn next(&self) -> *const c_void {
3083        self.next
3084    }
3085}
3086
3087unsafe impl InputChainStruct for DeviceMemoryOverallocationCreateInfoAMD {
3088    const TYPE: StructureType = StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
3089
3090    #[inline]
3091    fn s_type(&self) -> StructureType {
3092        self.s_type
3093    }
3094
3095    #[inline]
3096    fn next(&self) -> *const c_void {
3097        self.next
3098    }
3099}
3100
3101unsafe impl InputChainStruct for DeviceMemoryReportCallbackDataEXT {
3102    const TYPE: StructureType = StructureType::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
3103
3104    #[inline]
3105    fn s_type(&self) -> StructureType {
3106        self.s_type
3107    }
3108
3109    #[inline]
3110    fn next(&self) -> *const c_void {
3111        self.next
3112    }
3113}
3114
3115unsafe impl OutputChainStruct for DeviceMemoryReportCallbackDataEXT {
3116    #[inline]
3117    fn next_mut(&self) -> *mut c_void {
3118        self.next
3119    }
3120}
3121
3122unsafe impl InputChainStruct for DevicePipelineBinaryInternalCacheControlKHR {
3123    const TYPE: StructureType = StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR;
3124
3125    #[inline]
3126    fn s_type(&self) -> StructureType {
3127        self.s_type
3128    }
3129
3130    #[inline]
3131    fn next(&self) -> *const c_void {
3132        self.next
3133    }
3134}
3135
3136unsafe impl InputChainStruct for DevicePrivateDataCreateInfo {
3137    const TYPE: StructureType = StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO;
3138
3139    #[inline]
3140    fn s_type(&self) -> StructureType {
3141        self.s_type
3142    }
3143
3144    #[inline]
3145    fn next(&self) -> *const c_void {
3146        self.next
3147    }
3148}
3149
3150unsafe impl InputChainStruct for DeviceQueueCreateInfo {
3151    const TYPE: StructureType = StructureType::DEVICE_QUEUE_CREATE_INFO;
3152
3153    #[inline]
3154    fn s_type(&self) -> StructureType {
3155        self.s_type
3156    }
3157
3158    #[inline]
3159    fn next(&self) -> *const c_void {
3160        self.next
3161    }
3162}
3163
3164unsafe impl InputChainStruct for DeviceQueueGlobalPriorityCreateInfo {
3165    const TYPE: StructureType = StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO;
3166
3167    #[inline]
3168    fn s_type(&self) -> StructureType {
3169        self.s_type
3170    }
3171
3172    #[inline]
3173    fn next(&self) -> *const c_void {
3174        self.next
3175    }
3176}
3177
3178unsafe impl InputChainStruct for DeviceQueueInfo2 {
3179    const TYPE: StructureType = StructureType::DEVICE_QUEUE_INFO_2;
3180
3181    #[inline]
3182    fn s_type(&self) -> StructureType {
3183        self.s_type
3184    }
3185
3186    #[inline]
3187    fn next(&self) -> *const c_void {
3188        self.next
3189    }
3190}
3191
3192unsafe impl InputChainStruct for DeviceQueueShaderCoreControlCreateInfoARM {
3193    const TYPE: StructureType = StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM;
3194
3195    #[inline]
3196    fn s_type(&self) -> StructureType {
3197        self.s_type
3198    }
3199
3200    #[inline]
3201    fn next(&self) -> *const c_void {
3202        self.next
3203    }
3204}
3205
3206unsafe impl OutputChainStruct for DeviceQueueShaderCoreControlCreateInfoARM {
3207    #[inline]
3208    fn next_mut(&self) -> *mut c_void {
3209        self.next
3210    }
3211}
3212
3213unsafe impl InputChainStruct for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
3214    const TYPE: StructureType =
3215        StructureType::DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV;
3216
3217    #[inline]
3218    fn s_type(&self) -> StructureType {
3219        self.s_type
3220    }
3221
3222    #[inline]
3223    fn next(&self) -> *const c_void {
3224        self.next
3225    }
3226}
3227
3228unsafe impl InputChainStruct for DeviceTensorMemoryRequirementsARM {
3229    const TYPE: StructureType = StructureType::DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM;
3230
3231    #[inline]
3232    fn s_type(&self) -> StructureType {
3233        self.s_type
3234    }
3235
3236    #[inline]
3237    fn next(&self) -> *const c_void {
3238        self.next
3239    }
3240}
3241
3242unsafe impl InputChainStruct for DirectDriverLoadingInfoLUNARG {
3243    const TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG;
3244
3245    #[inline]
3246    fn s_type(&self) -> StructureType {
3247        self.s_type
3248    }
3249
3250    #[inline]
3251    fn next(&self) -> *const c_void {
3252        self.next
3253    }
3254}
3255
3256unsafe impl OutputChainStruct for DirectDriverLoadingInfoLUNARG {
3257    #[inline]
3258    fn next_mut(&self) -> *mut c_void {
3259        self.next
3260    }
3261}
3262
3263unsafe impl InputChainStruct for DirectDriverLoadingListLUNARG {
3264    const TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG;
3265
3266    #[inline]
3267    fn s_type(&self) -> StructureType {
3268        self.s_type
3269    }
3270
3271    #[inline]
3272    fn next(&self) -> *const c_void {
3273        self.next
3274    }
3275}
3276
3277unsafe impl InputChainStruct for DirectFBSurfaceCreateInfoEXT {
3278    const TYPE: StructureType = StructureType::DIRECTFB_SURFACE_CREATE_INFO_EXT;
3279
3280    #[inline]
3281    fn s_type(&self) -> StructureType {
3282        self.s_type
3283    }
3284
3285    #[inline]
3286    fn next(&self) -> *const c_void {
3287        self.next
3288    }
3289}
3290
3291unsafe impl InputChainStruct for DispatchTileInfoQCOM {
3292    const TYPE: StructureType = StructureType::DISPATCH_TILE_INFO_QCOM;
3293
3294    #[inline]
3295    fn s_type(&self) -> StructureType {
3296        self.s_type
3297    }
3298
3299    #[inline]
3300    fn next(&self) -> *const c_void {
3301        self.next
3302    }
3303}
3304
3305unsafe impl InputChainStruct for DisplayEventInfoEXT {
3306    const TYPE: StructureType = StructureType::DISPLAY_EVENT_INFO_EXT;
3307
3308    #[inline]
3309    fn s_type(&self) -> StructureType {
3310        self.s_type
3311    }
3312
3313    #[inline]
3314    fn next(&self) -> *const c_void {
3315        self.next
3316    }
3317}
3318
3319unsafe impl InputChainStruct for DisplayModeCreateInfoKHR {
3320    const TYPE: StructureType = StructureType::DISPLAY_MODE_CREATE_INFO_KHR;
3321
3322    #[inline]
3323    fn s_type(&self) -> StructureType {
3324        self.s_type
3325    }
3326
3327    #[inline]
3328    fn next(&self) -> *const c_void {
3329        self.next
3330    }
3331}
3332
3333unsafe impl InputChainStruct for DisplayModeProperties2KHR {
3334    const TYPE: StructureType = StructureType::DISPLAY_MODE_PROPERTIES_2_KHR;
3335
3336    #[inline]
3337    fn s_type(&self) -> StructureType {
3338        self.s_type
3339    }
3340
3341    #[inline]
3342    fn next(&self) -> *const c_void {
3343        self.next
3344    }
3345}
3346
3347unsafe impl OutputChainStruct for DisplayModeProperties2KHR {
3348    #[inline]
3349    fn next_mut(&self) -> *mut c_void {
3350        self.next
3351    }
3352}
3353
3354unsafe impl InputChainStruct for DisplayModeStereoPropertiesNV {
3355    const TYPE: StructureType = StructureType::DISPLAY_MODE_STEREO_PROPERTIES_NV;
3356
3357    #[inline]
3358    fn s_type(&self) -> StructureType {
3359        self.s_type
3360    }
3361
3362    #[inline]
3363    fn next(&self) -> *const c_void {
3364        self.next
3365    }
3366}
3367
3368unsafe impl OutputChainStruct for DisplayModeStereoPropertiesNV {
3369    #[inline]
3370    fn next_mut(&self) -> *mut c_void {
3371        self.next
3372    }
3373}
3374
3375unsafe impl InputChainStruct for DisplayNativeHdrSurfaceCapabilitiesAMD {
3376    const TYPE: StructureType = StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
3377
3378    #[inline]
3379    fn s_type(&self) -> StructureType {
3380        self.s_type
3381    }
3382
3383    #[inline]
3384    fn next(&self) -> *const c_void {
3385        self.next
3386    }
3387}
3388
3389unsafe impl OutputChainStruct for DisplayNativeHdrSurfaceCapabilitiesAMD {
3390    #[inline]
3391    fn next_mut(&self) -> *mut c_void {
3392        self.next
3393    }
3394}
3395
3396unsafe impl InputChainStruct for DisplayPlaneCapabilities2KHR {
3397    const TYPE: StructureType = StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR;
3398
3399    #[inline]
3400    fn s_type(&self) -> StructureType {
3401        self.s_type
3402    }
3403
3404    #[inline]
3405    fn next(&self) -> *const c_void {
3406        self.next
3407    }
3408}
3409
3410unsafe impl OutputChainStruct for DisplayPlaneCapabilities2KHR {
3411    #[inline]
3412    fn next_mut(&self) -> *mut c_void {
3413        self.next
3414    }
3415}
3416
3417unsafe impl InputChainStruct for DisplayPlaneInfo2KHR {
3418    const TYPE: StructureType = StructureType::DISPLAY_PLANE_INFO_2_KHR;
3419
3420    #[inline]
3421    fn s_type(&self) -> StructureType {
3422        self.s_type
3423    }
3424
3425    #[inline]
3426    fn next(&self) -> *const c_void {
3427        self.next
3428    }
3429}
3430
3431unsafe impl InputChainStruct for DisplayPlaneProperties2KHR {
3432    const TYPE: StructureType = StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR;
3433
3434    #[inline]
3435    fn s_type(&self) -> StructureType {
3436        self.s_type
3437    }
3438
3439    #[inline]
3440    fn next(&self) -> *const c_void {
3441        self.next
3442    }
3443}
3444
3445unsafe impl OutputChainStruct for DisplayPlaneProperties2KHR {
3446    #[inline]
3447    fn next_mut(&self) -> *mut c_void {
3448        self.next
3449    }
3450}
3451
3452unsafe impl InputChainStruct for DisplayPowerInfoEXT {
3453    const TYPE: StructureType = StructureType::DISPLAY_POWER_INFO_EXT;
3454
3455    #[inline]
3456    fn s_type(&self) -> StructureType {
3457        self.s_type
3458    }
3459
3460    #[inline]
3461    fn next(&self) -> *const c_void {
3462        self.next
3463    }
3464}
3465
3466unsafe impl InputChainStruct for DisplayPresentInfoKHR {
3467    const TYPE: StructureType = StructureType::DISPLAY_PRESENT_INFO_KHR;
3468
3469    #[inline]
3470    fn s_type(&self) -> StructureType {
3471        self.s_type
3472    }
3473
3474    #[inline]
3475    fn next(&self) -> *const c_void {
3476        self.next
3477    }
3478}
3479
3480unsafe impl InputChainStruct for DisplayProperties2KHR {
3481    const TYPE: StructureType = StructureType::DISPLAY_PROPERTIES_2_KHR;
3482
3483    #[inline]
3484    fn s_type(&self) -> StructureType {
3485        self.s_type
3486    }
3487
3488    #[inline]
3489    fn next(&self) -> *const c_void {
3490        self.next
3491    }
3492}
3493
3494unsafe impl OutputChainStruct for DisplayProperties2KHR {
3495    #[inline]
3496    fn next_mut(&self) -> *mut c_void {
3497        self.next
3498    }
3499}
3500
3501unsafe impl InputChainStruct for DisplaySurfaceCreateInfoKHR {
3502    const TYPE: StructureType = StructureType::DISPLAY_SURFACE_CREATE_INFO_KHR;
3503
3504    #[inline]
3505    fn s_type(&self) -> StructureType {
3506        self.s_type
3507    }
3508
3509    #[inline]
3510    fn next(&self) -> *const c_void {
3511        self.next
3512    }
3513}
3514
3515unsafe impl InputChainStruct for DisplaySurfaceStereoCreateInfoNV {
3516    const TYPE: StructureType = StructureType::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV;
3517
3518    #[inline]
3519    fn s_type(&self) -> StructureType {
3520        self.s_type
3521    }
3522
3523    #[inline]
3524    fn next(&self) -> *const c_void {
3525        self.next
3526    }
3527}
3528
3529unsafe impl InputChainStruct for DrmFormatModifierPropertiesList2EXT {
3530    const TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT;
3531
3532    #[inline]
3533    fn s_type(&self) -> StructureType {
3534        self.s_type
3535    }
3536
3537    #[inline]
3538    fn next(&self) -> *const c_void {
3539        self.next
3540    }
3541}
3542
3543unsafe impl OutputChainStruct for DrmFormatModifierPropertiesList2EXT {
3544    #[inline]
3545    fn next_mut(&self) -> *mut c_void {
3546        self.next
3547    }
3548}
3549
3550unsafe impl InputChainStruct for DrmFormatModifierPropertiesListEXT {
3551    const TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
3552
3553    #[inline]
3554    fn s_type(&self) -> StructureType {
3555        self.s_type
3556    }
3557
3558    #[inline]
3559    fn next(&self) -> *const c_void {
3560        self.next
3561    }
3562}
3563
3564unsafe impl OutputChainStruct for DrmFormatModifierPropertiesListEXT {
3565    #[inline]
3566    fn next_mut(&self) -> *mut c_void {
3567        self.next
3568    }
3569}
3570
3571unsafe impl InputChainStruct for EventCreateInfo {
3572    const TYPE: StructureType = StructureType::EVENT_CREATE_INFO;
3573
3574    #[inline]
3575    fn s_type(&self) -> StructureType {
3576        self.s_type
3577    }
3578
3579    #[inline]
3580    fn next(&self) -> *const c_void {
3581        self.next
3582    }
3583}
3584
3585unsafe impl InputChainStruct for ExecutionGraphPipelineCreateInfoAMDX {
3586    const TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX;
3587
3588    #[inline]
3589    fn s_type(&self) -> StructureType {
3590        self.s_type
3591    }
3592
3593    #[inline]
3594    fn next(&self) -> *const c_void {
3595        self.next
3596    }
3597}
3598
3599unsafe impl InputChainStruct for ExecutionGraphPipelineScratchSizeAMDX {
3600    const TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX;
3601
3602    #[inline]
3603    fn s_type(&self) -> StructureType {
3604        self.s_type
3605    }
3606
3607    #[inline]
3608    fn next(&self) -> *const c_void {
3609        self.next
3610    }
3611}
3612
3613unsafe impl OutputChainStruct for ExecutionGraphPipelineScratchSizeAMDX {
3614    #[inline]
3615    fn next_mut(&self) -> *mut c_void {
3616        self.next
3617    }
3618}
3619
3620unsafe impl InputChainStruct for ExportFenceCreateInfo {
3621    const TYPE: StructureType = StructureType::EXPORT_FENCE_CREATE_INFO;
3622
3623    #[inline]
3624    fn s_type(&self) -> StructureType {
3625        self.s_type
3626    }
3627
3628    #[inline]
3629    fn next(&self) -> *const c_void {
3630        self.next
3631    }
3632}
3633
3634unsafe impl InputChainStruct for ExportFenceSciSyncInfoNV {
3635    const TYPE: StructureType = StructureType::EXPORT_FENCE_SCI_SYNC_INFO_NV;
3636
3637    #[inline]
3638    fn s_type(&self) -> StructureType {
3639        self.s_type
3640    }
3641
3642    #[inline]
3643    fn next(&self) -> *const c_void {
3644        self.next
3645    }
3646}
3647
3648unsafe impl InputChainStruct for ExportFenceWin32HandleInfoKHR {
3649    const TYPE: StructureType = StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
3650
3651    #[inline]
3652    fn s_type(&self) -> StructureType {
3653        self.s_type
3654    }
3655
3656    #[inline]
3657    fn next(&self) -> *const c_void {
3658        self.next
3659    }
3660}
3661
3662unsafe impl InputChainStruct for ExportMemoryAllocateInfo {
3663    const TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO;
3664
3665    #[inline]
3666    fn s_type(&self) -> StructureType {
3667        self.s_type
3668    }
3669
3670    #[inline]
3671    fn next(&self) -> *const c_void {
3672        self.next
3673    }
3674}
3675
3676unsafe impl InputChainStruct for ExportMemoryAllocateInfoNV {
3677    const TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV;
3678
3679    #[inline]
3680    fn s_type(&self) -> StructureType {
3681        self.s_type
3682    }
3683
3684    #[inline]
3685    fn next(&self) -> *const c_void {
3686        self.next
3687    }
3688}
3689
3690unsafe impl InputChainStruct for ExportMemorySciBufInfoNV {
3691    const TYPE: StructureType = StructureType::EXPORT_MEMORY_SCI_BUF_INFO_NV;
3692
3693    #[inline]
3694    fn s_type(&self) -> StructureType {
3695        self.s_type
3696    }
3697
3698    #[inline]
3699    fn next(&self) -> *const c_void {
3700        self.next
3701    }
3702}
3703
3704unsafe impl InputChainStruct for ExportMemoryWin32HandleInfoKHR {
3705    const TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
3706
3707    #[inline]
3708    fn s_type(&self) -> StructureType {
3709        self.s_type
3710    }
3711
3712    #[inline]
3713    fn next(&self) -> *const c_void {
3714        self.next
3715    }
3716}
3717
3718unsafe impl InputChainStruct for ExportMemoryWin32HandleInfoNV {
3719    const TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
3720
3721    #[inline]
3722    fn s_type(&self) -> StructureType {
3723        self.s_type
3724    }
3725
3726    #[inline]
3727    fn next(&self) -> *const c_void {
3728        self.next
3729    }
3730}
3731
3732unsafe impl InputChainStruct for ExportMetalBufferInfoEXT {
3733    const TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT;
3734
3735    #[inline]
3736    fn s_type(&self) -> StructureType {
3737        self.s_type
3738    }
3739
3740    #[inline]
3741    fn next(&self) -> *const c_void {
3742        self.next
3743    }
3744}
3745
3746unsafe impl InputChainStruct for ExportMetalCommandQueueInfoEXT {
3747    const TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT;
3748
3749    #[inline]
3750    fn s_type(&self) -> StructureType {
3751        self.s_type
3752    }
3753
3754    #[inline]
3755    fn next(&self) -> *const c_void {
3756        self.next
3757    }
3758}
3759
3760unsafe impl InputChainStruct for ExportMetalDeviceInfoEXT {
3761    const TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT;
3762
3763    #[inline]
3764    fn s_type(&self) -> StructureType {
3765        self.s_type
3766    }
3767
3768    #[inline]
3769    fn next(&self) -> *const c_void {
3770        self.next
3771    }
3772}
3773
3774unsafe impl InputChainStruct for ExportMetalIOSurfaceInfoEXT {
3775    const TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT;
3776
3777    #[inline]
3778    fn s_type(&self) -> StructureType {
3779        self.s_type
3780    }
3781
3782    #[inline]
3783    fn next(&self) -> *const c_void {
3784        self.next
3785    }
3786}
3787
3788unsafe impl InputChainStruct for ExportMetalObjectCreateInfoEXT {
3789    const TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_INFO_EXT;
3790
3791    #[inline]
3792    fn s_type(&self) -> StructureType {
3793        self.s_type
3794    }
3795
3796    #[inline]
3797    fn next(&self) -> *const c_void {
3798        self.next
3799    }
3800}
3801
3802unsafe impl InputChainStruct for ExportMetalObjectsInfoEXT {
3803    const TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_INFO_EXT;
3804
3805    #[inline]
3806    fn s_type(&self) -> StructureType {
3807        self.s_type
3808    }
3809
3810    #[inline]
3811    fn next(&self) -> *const c_void {
3812        self.next
3813    }
3814}
3815
3816unsafe impl InputChainStruct for ExportMetalSharedEventInfoEXT {
3817    const TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_INFO_EXT;
3818
3819    #[inline]
3820    fn s_type(&self) -> StructureType {
3821        self.s_type
3822    }
3823
3824    #[inline]
3825    fn next(&self) -> *const c_void {
3826        self.next
3827    }
3828}
3829
3830unsafe impl InputChainStruct for ExportMetalTextureInfoEXT {
3831    const TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_INFO_EXT;
3832
3833    #[inline]
3834    fn s_type(&self) -> StructureType {
3835        self.s_type
3836    }
3837
3838    #[inline]
3839    fn next(&self) -> *const c_void {
3840        self.next
3841    }
3842}
3843
3844unsafe impl InputChainStruct for ExportSemaphoreCreateInfo {
3845    const TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_CREATE_INFO;
3846
3847    #[inline]
3848    fn s_type(&self) -> StructureType {
3849        self.s_type
3850    }
3851
3852    #[inline]
3853    fn next(&self) -> *const c_void {
3854        self.next
3855    }
3856}
3857
3858unsafe impl InputChainStruct for ExportSemaphoreSciSyncInfoNV {
3859    const TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV;
3860
3861    #[inline]
3862    fn s_type(&self) -> StructureType {
3863        self.s_type
3864    }
3865
3866    #[inline]
3867    fn next(&self) -> *const c_void {
3868        self.next
3869    }
3870}
3871
3872unsafe impl InputChainStruct for ExportSemaphoreWin32HandleInfoKHR {
3873    const TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
3874
3875    #[inline]
3876    fn s_type(&self) -> StructureType {
3877        self.s_type
3878    }
3879
3880    #[inline]
3881    fn next(&self) -> *const c_void {
3882        self.next
3883    }
3884}
3885
3886unsafe impl InputChainStruct for ExternalBufferProperties {
3887    const TYPE: StructureType = StructureType::EXTERNAL_BUFFER_PROPERTIES;
3888
3889    #[inline]
3890    fn s_type(&self) -> StructureType {
3891        self.s_type
3892    }
3893
3894    #[inline]
3895    fn next(&self) -> *const c_void {
3896        self.next
3897    }
3898}
3899
3900unsafe impl OutputChainStruct for ExternalBufferProperties {
3901    #[inline]
3902    fn next_mut(&self) -> *mut c_void {
3903        self.next
3904    }
3905}
3906
3907unsafe impl InputChainStruct for ExternalComputeQueueCreateInfoNV {
3908    const TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV;
3909
3910    #[inline]
3911    fn s_type(&self) -> StructureType {
3912        self.s_type
3913    }
3914
3915    #[inline]
3916    fn next(&self) -> *const c_void {
3917        self.next
3918    }
3919}
3920
3921unsafe impl InputChainStruct for ExternalComputeQueueDataParamsNV {
3922    const TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV;
3923
3924    #[inline]
3925    fn s_type(&self) -> StructureType {
3926        self.s_type
3927    }
3928
3929    #[inline]
3930    fn next(&self) -> *const c_void {
3931        self.next
3932    }
3933}
3934
3935unsafe impl InputChainStruct for ExternalComputeQueueDeviceCreateInfoNV {
3936    const TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV;
3937
3938    #[inline]
3939    fn s_type(&self) -> StructureType {
3940        self.s_type
3941    }
3942
3943    #[inline]
3944    fn next(&self) -> *const c_void {
3945        self.next
3946    }
3947}
3948
3949unsafe impl InputChainStruct for ExternalFenceProperties {
3950    const TYPE: StructureType = StructureType::EXTERNAL_FENCE_PROPERTIES;
3951
3952    #[inline]
3953    fn s_type(&self) -> StructureType {
3954        self.s_type
3955    }
3956
3957    #[inline]
3958    fn next(&self) -> *const c_void {
3959        self.next
3960    }
3961}
3962
3963unsafe impl OutputChainStruct for ExternalFenceProperties {
3964    #[inline]
3965    fn next_mut(&self) -> *mut c_void {
3966        self.next
3967    }
3968}
3969
3970unsafe impl InputChainStruct for ExternalFormatANDROID {
3971    const TYPE: StructureType = StructureType::EXTERNAL_FORMAT_ANDROID;
3972
3973    #[inline]
3974    fn s_type(&self) -> StructureType {
3975        self.s_type
3976    }
3977
3978    #[inline]
3979    fn next(&self) -> *const c_void {
3980        self.next
3981    }
3982}
3983
3984unsafe impl OutputChainStruct for ExternalFormatANDROID {
3985    #[inline]
3986    fn next_mut(&self) -> *mut c_void {
3987        self.next
3988    }
3989}
3990
3991unsafe impl InputChainStruct for ExternalFormatOHOS {
3992    const TYPE: StructureType = StructureType::EXTERNAL_FORMAT_OHOS;
3993
3994    #[inline]
3995    fn s_type(&self) -> StructureType {
3996        self.s_type
3997    }
3998
3999    #[inline]
4000    fn next(&self) -> *const c_void {
4001        self.next
4002    }
4003}
4004
4005unsafe impl OutputChainStruct for ExternalFormatOHOS {
4006    #[inline]
4007    fn next_mut(&self) -> *mut c_void {
4008        self.next
4009    }
4010}
4011
4012unsafe impl InputChainStruct for ExternalFormatQNX {
4013    const TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX;
4014
4015    #[inline]
4016    fn s_type(&self) -> StructureType {
4017        self.s_type
4018    }
4019
4020    #[inline]
4021    fn next(&self) -> *const c_void {
4022        self.next
4023    }
4024}
4025
4026unsafe impl OutputChainStruct for ExternalFormatQNX {
4027    #[inline]
4028    fn next_mut(&self) -> *mut c_void {
4029        self.next
4030    }
4031}
4032
4033unsafe impl InputChainStruct for ExternalImageFormatProperties {
4034    const TYPE: StructureType = StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES;
4035
4036    #[inline]
4037    fn s_type(&self) -> StructureType {
4038        self.s_type
4039    }
4040
4041    #[inline]
4042    fn next(&self) -> *const c_void {
4043        self.next
4044    }
4045}
4046
4047unsafe impl OutputChainStruct for ExternalImageFormatProperties {
4048    #[inline]
4049    fn next_mut(&self) -> *mut c_void {
4050        self.next
4051    }
4052}
4053
4054unsafe impl InputChainStruct for ExternalMemoryAcquireUnmodifiedEXT {
4055    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT;
4056
4057    #[inline]
4058    fn s_type(&self) -> StructureType {
4059        self.s_type
4060    }
4061
4062    #[inline]
4063    fn next(&self) -> *const c_void {
4064        self.next
4065    }
4066}
4067
4068unsafe impl InputChainStruct for ExternalMemoryBufferCreateInfo {
4069    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
4070
4071    #[inline]
4072    fn s_type(&self) -> StructureType {
4073        self.s_type
4074    }
4075
4076    #[inline]
4077    fn next(&self) -> *const c_void {
4078        self.next
4079    }
4080}
4081
4082unsafe impl InputChainStruct for ExternalMemoryImageCreateInfo {
4083    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
4084
4085    #[inline]
4086    fn s_type(&self) -> StructureType {
4087        self.s_type
4088    }
4089
4090    #[inline]
4091    fn next(&self) -> *const c_void {
4092        self.next
4093    }
4094}
4095
4096unsafe impl InputChainStruct for ExternalMemoryImageCreateInfoNV {
4097    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
4098
4099    #[inline]
4100    fn s_type(&self) -> StructureType {
4101        self.s_type
4102    }
4103
4104    #[inline]
4105    fn next(&self) -> *const c_void {
4106        self.next
4107    }
4108}
4109
4110unsafe impl InputChainStruct for ExternalMemoryTensorCreateInfoARM {
4111    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM;
4112
4113    #[inline]
4114    fn s_type(&self) -> StructureType {
4115        self.s_type
4116    }
4117
4118    #[inline]
4119    fn next(&self) -> *const c_void {
4120        self.next
4121    }
4122}
4123
4124unsafe impl InputChainStruct for ExternalSemaphoreProperties {
4125    const TYPE: StructureType = StructureType::EXTERNAL_SEMAPHORE_PROPERTIES;
4126
4127    #[inline]
4128    fn s_type(&self) -> StructureType {
4129        self.s_type
4130    }
4131
4132    #[inline]
4133    fn next(&self) -> *const c_void {
4134        self.next
4135    }
4136}
4137
4138unsafe impl OutputChainStruct for ExternalSemaphoreProperties {
4139    #[inline]
4140    fn next_mut(&self) -> *mut c_void {
4141        self.next
4142    }
4143}
4144
4145unsafe impl InputChainStruct for ExternalTensorPropertiesARM {
4146    const TYPE: StructureType = StructureType::EXTERNAL_TENSOR_PROPERTIES_ARM;
4147
4148    #[inline]
4149    fn s_type(&self) -> StructureType {
4150        self.s_type
4151    }
4152
4153    #[inline]
4154    fn next(&self) -> *const c_void {
4155        self.next
4156    }
4157}
4158
4159unsafe impl InputChainStruct for FenceCreateInfo {
4160    const TYPE: StructureType = StructureType::FENCE_CREATE_INFO;
4161
4162    #[inline]
4163    fn s_type(&self) -> StructureType {
4164        self.s_type
4165    }
4166
4167    #[inline]
4168    fn next(&self) -> *const c_void {
4169        self.next
4170    }
4171}
4172
4173unsafe impl InputChainStruct for FenceGetFdInfoKHR {
4174    const TYPE: StructureType = StructureType::FENCE_GET_FD_INFO_KHR;
4175
4176    #[inline]
4177    fn s_type(&self) -> StructureType {
4178        self.s_type
4179    }
4180
4181    #[inline]
4182    fn next(&self) -> *const c_void {
4183        self.next
4184    }
4185}
4186
4187unsafe impl InputChainStruct for FenceGetSciSyncInfoNV {
4188    const TYPE: StructureType = StructureType::FENCE_GET_SCI_SYNC_INFO_NV;
4189
4190    #[inline]
4191    fn s_type(&self) -> StructureType {
4192        self.s_type
4193    }
4194
4195    #[inline]
4196    fn next(&self) -> *const c_void {
4197        self.next
4198    }
4199}
4200
4201unsafe impl InputChainStruct for FenceGetWin32HandleInfoKHR {
4202    const TYPE: StructureType = StructureType::FENCE_GET_WIN32_HANDLE_INFO_KHR;
4203
4204    #[inline]
4205    fn s_type(&self) -> StructureType {
4206        self.s_type
4207    }
4208
4209    #[inline]
4210    fn next(&self) -> *const c_void {
4211        self.next
4212    }
4213}
4214
4215unsafe impl InputChainStruct for FilterCubicImageViewImageFormatPropertiesEXT {
4216    const TYPE: StructureType = StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
4217
4218    #[inline]
4219    fn s_type(&self) -> StructureType {
4220        self.s_type
4221    }
4222
4223    #[inline]
4224    fn next(&self) -> *const c_void {
4225        self.next
4226    }
4227}
4228
4229unsafe impl OutputChainStruct for FilterCubicImageViewImageFormatPropertiesEXT {
4230    #[inline]
4231    fn next_mut(&self) -> *mut c_void {
4232        self.next
4233    }
4234}
4235
4236unsafe impl InputChainStruct for FormatProperties2 {
4237    const TYPE: StructureType = StructureType::FORMAT_PROPERTIES_2;
4238
4239    #[inline]
4240    fn s_type(&self) -> StructureType {
4241        self.s_type
4242    }
4243
4244    #[inline]
4245    fn next(&self) -> *const c_void {
4246        self.next
4247    }
4248}
4249
4250unsafe impl OutputChainStruct for FormatProperties2 {
4251    #[inline]
4252    fn next_mut(&self) -> *mut c_void {
4253        self.next
4254    }
4255}
4256
4257unsafe impl InputChainStruct for FormatProperties3 {
4258    const TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3;
4259
4260    #[inline]
4261    fn s_type(&self) -> StructureType {
4262        self.s_type
4263    }
4264
4265    #[inline]
4266    fn next(&self) -> *const c_void {
4267        self.next
4268    }
4269}
4270
4271unsafe impl OutputChainStruct for FormatProperties3 {
4272    #[inline]
4273    fn next_mut(&self) -> *mut c_void {
4274        self.next
4275    }
4276}
4277
4278unsafe impl InputChainStruct for FragmentShadingRateAttachmentInfoKHR {
4279    const TYPE: StructureType = StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
4280
4281    #[inline]
4282    fn s_type(&self) -> StructureType {
4283        self.s_type
4284    }
4285
4286    #[inline]
4287    fn next(&self) -> *const c_void {
4288        self.next
4289    }
4290}
4291
4292unsafe impl InputChainStruct for FrameBoundaryEXT {
4293    const TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT;
4294
4295    #[inline]
4296    fn s_type(&self) -> StructureType {
4297        self.s_type
4298    }
4299
4300    #[inline]
4301    fn next(&self) -> *const c_void {
4302        self.next
4303    }
4304}
4305
4306unsafe impl InputChainStruct for FrameBoundaryTensorsARM {
4307    const TYPE: StructureType = StructureType::FRAME_BOUNDARY_TENSORS_ARM;
4308
4309    #[inline]
4310    fn s_type(&self) -> StructureType {
4311        self.s_type
4312    }
4313
4314    #[inline]
4315    fn next(&self) -> *const c_void {
4316        self.next
4317    }
4318}
4319
4320unsafe impl InputChainStruct for FramebufferAttachmentImageInfo {
4321    const TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
4322
4323    #[inline]
4324    fn s_type(&self) -> StructureType {
4325        self.s_type
4326    }
4327
4328    #[inline]
4329    fn next(&self) -> *const c_void {
4330        self.next
4331    }
4332}
4333
4334unsafe impl InputChainStruct for FramebufferAttachmentsCreateInfo {
4335    const TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
4336
4337    #[inline]
4338    fn s_type(&self) -> StructureType {
4339        self.s_type
4340    }
4341
4342    #[inline]
4343    fn next(&self) -> *const c_void {
4344        self.next
4345    }
4346}
4347
4348unsafe impl InputChainStruct for FramebufferCreateInfo {
4349    const TYPE: StructureType = StructureType::FRAMEBUFFER_CREATE_INFO;
4350
4351    #[inline]
4352    fn s_type(&self) -> StructureType {
4353        self.s_type
4354    }
4355
4356    #[inline]
4357    fn next(&self) -> *const c_void {
4358        self.next
4359    }
4360}
4361
4362unsafe impl InputChainStruct for FramebufferMixedSamplesCombinationNV {
4363    const TYPE: StructureType = StructureType::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
4364
4365    #[inline]
4366    fn s_type(&self) -> StructureType {
4367        self.s_type
4368    }
4369
4370    #[inline]
4371    fn next(&self) -> *const c_void {
4372        self.next
4373    }
4374}
4375
4376unsafe impl OutputChainStruct for FramebufferMixedSamplesCombinationNV {
4377    #[inline]
4378    fn next_mut(&self) -> *mut c_void {
4379        self.next
4380    }
4381}
4382
4383unsafe impl InputChainStruct for GeneratedCommandsInfoEXT {
4384    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT;
4385
4386    #[inline]
4387    fn s_type(&self) -> StructureType {
4388        self.s_type
4389    }
4390
4391    #[inline]
4392    fn next(&self) -> *const c_void {
4393        self.next
4394    }
4395}
4396
4397unsafe impl InputChainStruct for GeneratedCommandsInfoNV {
4398    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_NV;
4399
4400    #[inline]
4401    fn s_type(&self) -> StructureType {
4402        self.s_type
4403    }
4404
4405    #[inline]
4406    fn next(&self) -> *const c_void {
4407        self.next
4408    }
4409}
4410
4411unsafe impl InputChainStruct for GeneratedCommandsMemoryRequirementsInfoEXT {
4412    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT;
4413
4414    #[inline]
4415    fn s_type(&self) -> StructureType {
4416        self.s_type
4417    }
4418
4419    #[inline]
4420    fn next(&self) -> *const c_void {
4421        self.next
4422    }
4423}
4424
4425unsafe impl InputChainStruct for GeneratedCommandsMemoryRequirementsInfoNV {
4426    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
4427
4428    #[inline]
4429    fn s_type(&self) -> StructureType {
4430        self.s_type
4431    }
4432
4433    #[inline]
4434    fn next(&self) -> *const c_void {
4435        self.next
4436    }
4437}
4438
4439unsafe impl InputChainStruct for GeneratedCommandsPipelineInfoEXT {
4440    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_INFO_EXT;
4441
4442    #[inline]
4443    fn s_type(&self) -> StructureType {
4444        self.s_type
4445    }
4446
4447    #[inline]
4448    fn next(&self) -> *const c_void {
4449        self.next
4450    }
4451}
4452
4453unsafe impl OutputChainStruct for GeneratedCommandsPipelineInfoEXT {
4454    #[inline]
4455    fn next_mut(&self) -> *mut c_void {
4456        self.next
4457    }
4458}
4459
4460unsafe impl InputChainStruct for GeneratedCommandsShaderInfoEXT {
4461    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT;
4462
4463    #[inline]
4464    fn s_type(&self) -> StructureType {
4465        self.s_type
4466    }
4467
4468    #[inline]
4469    fn next(&self) -> *const c_void {
4470        self.next
4471    }
4472}
4473
4474unsafe impl OutputChainStruct for GeneratedCommandsShaderInfoEXT {
4475    #[inline]
4476    fn next_mut(&self) -> *mut c_void {
4477        self.next
4478    }
4479}
4480
4481unsafe impl InputChainStruct for GeometryAABBNV {
4482    const TYPE: StructureType = StructureType::GEOMETRY_AABB_NV;
4483
4484    #[inline]
4485    fn s_type(&self) -> StructureType {
4486        self.s_type
4487    }
4488
4489    #[inline]
4490    fn next(&self) -> *const c_void {
4491        self.next
4492    }
4493}
4494
4495unsafe impl InputChainStruct for GeometryNV {
4496    const TYPE: StructureType = StructureType::GEOMETRY_NV;
4497
4498    #[inline]
4499    fn s_type(&self) -> StructureType {
4500        self.s_type
4501    }
4502
4503    #[inline]
4504    fn next(&self) -> *const c_void {
4505        self.next
4506    }
4507}
4508
4509unsafe impl InputChainStruct for GeometryTrianglesNV {
4510    const TYPE: StructureType = StructureType::GEOMETRY_TRIANGLES_NV;
4511
4512    #[inline]
4513    fn s_type(&self) -> StructureType {
4514        self.s_type
4515    }
4516
4517    #[inline]
4518    fn next(&self) -> *const c_void {
4519        self.next
4520    }
4521}
4522
4523unsafe impl InputChainStruct for GetLatencyMarkerInfoNV {
4524    const TYPE: StructureType = StructureType::GET_LATENCY_MARKER_INFO_NV;
4525
4526    #[inline]
4527    fn s_type(&self) -> StructureType {
4528        self.s_type
4529    }
4530
4531    #[inline]
4532    fn next(&self) -> *const c_void {
4533        self.next
4534    }
4535}
4536
4537unsafe impl InputChainStruct for GraphicsPipelineCreateInfo {
4538    const TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_CREATE_INFO;
4539
4540    #[inline]
4541    fn s_type(&self) -> StructureType {
4542        self.s_type
4543    }
4544
4545    #[inline]
4546    fn next(&self) -> *const c_void {
4547        self.next
4548    }
4549}
4550
4551unsafe impl InputChainStruct for GraphicsPipelineLibraryCreateInfoEXT {
4552    const TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;
4553
4554    #[inline]
4555    fn s_type(&self) -> StructureType {
4556        self.s_type
4557    }
4558
4559    #[inline]
4560    fn next(&self) -> *const c_void {
4561        self.next
4562    }
4563}
4564
4565unsafe impl InputChainStruct for GraphicsPipelineShaderGroupsCreateInfoNV {
4566    const TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
4567
4568    #[inline]
4569    fn s_type(&self) -> StructureType {
4570        self.s_type
4571    }
4572
4573    #[inline]
4574    fn next(&self) -> *const c_void {
4575        self.next
4576    }
4577}
4578
4579unsafe impl InputChainStruct for GraphicsShaderGroupCreateInfoNV {
4580    const TYPE: StructureType = StructureType::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
4581
4582    #[inline]
4583    fn s_type(&self) -> StructureType {
4584        self.s_type
4585    }
4586
4587    #[inline]
4588    fn next(&self) -> *const c_void {
4589        self.next
4590    }
4591}
4592
4593unsafe impl InputChainStruct for HdrMetadataEXT {
4594    const TYPE: StructureType = StructureType::HDR_METADATA_EXT;
4595
4596    #[inline]
4597    fn s_type(&self) -> StructureType {
4598        self.s_type
4599    }
4600
4601    #[inline]
4602    fn next(&self) -> *const c_void {
4603        self.next
4604    }
4605}
4606
4607unsafe impl InputChainStruct for HdrVividDynamicMetadataHUAWEI {
4608    const TYPE: StructureType = StructureType::HDR_VIVID_DYNAMIC_METADATA_HUAWEI;
4609
4610    #[inline]
4611    fn s_type(&self) -> StructureType {
4612        self.s_type
4613    }
4614
4615    #[inline]
4616    fn next(&self) -> *const c_void {
4617        self.next
4618    }
4619}
4620
4621unsafe impl InputChainStruct for HeadlessSurfaceCreateInfoEXT {
4622    const TYPE: StructureType = StructureType::HEADLESS_SURFACE_CREATE_INFO_EXT;
4623
4624    #[inline]
4625    fn s_type(&self) -> StructureType {
4626        self.s_type
4627    }
4628
4629    #[inline]
4630    fn next(&self) -> *const c_void {
4631        self.next
4632    }
4633}
4634
4635unsafe impl InputChainStruct for HostImageCopyDevicePerformanceQuery {
4636    const TYPE: StructureType = StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY;
4637
4638    #[inline]
4639    fn s_type(&self) -> StructureType {
4640        self.s_type
4641    }
4642
4643    #[inline]
4644    fn next(&self) -> *const c_void {
4645        self.next
4646    }
4647}
4648
4649unsafe impl OutputChainStruct for HostImageCopyDevicePerformanceQuery {
4650    #[inline]
4651    fn next_mut(&self) -> *mut c_void {
4652        self.next
4653    }
4654}
4655
4656unsafe impl InputChainStruct for HostImageLayoutTransitionInfo {
4657    const TYPE: StructureType = StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO;
4658
4659    #[inline]
4660    fn s_type(&self) -> StructureType {
4661        self.s_type
4662    }
4663
4664    #[inline]
4665    fn next(&self) -> *const c_void {
4666        self.next
4667    }
4668}
4669
4670unsafe impl InputChainStruct for IOSSurfaceCreateInfoMVK {
4671    const TYPE: StructureType = StructureType::IOS_SURFACE_CREATE_INFO_MVK;
4672
4673    #[inline]
4674    fn s_type(&self) -> StructureType {
4675        self.s_type
4676    }
4677
4678    #[inline]
4679    fn next(&self) -> *const c_void {
4680        self.next
4681    }
4682}
4683
4684unsafe impl InputChainStruct for ImageAlignmentControlCreateInfoMESA {
4685    const TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA;
4686
4687    #[inline]
4688    fn s_type(&self) -> StructureType {
4689        self.s_type
4690    }
4691
4692    #[inline]
4693    fn next(&self) -> *const c_void {
4694        self.next
4695    }
4696}
4697
4698unsafe impl InputChainStruct for ImageBlit2 {
4699    const TYPE: StructureType = StructureType::IMAGE_BLIT_2;
4700
4701    #[inline]
4702    fn s_type(&self) -> StructureType {
4703        self.s_type
4704    }
4705
4706    #[inline]
4707    fn next(&self) -> *const c_void {
4708        self.next
4709    }
4710}
4711
4712unsafe impl InputChainStruct for ImageCaptureDescriptorDataInfoEXT {
4713    const TYPE: StructureType = StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
4714
4715    #[inline]
4716    fn s_type(&self) -> StructureType {
4717        self.s_type
4718    }
4719
4720    #[inline]
4721    fn next(&self) -> *const c_void {
4722        self.next
4723    }
4724}
4725
4726unsafe impl InputChainStruct for ImageCompressionControlEXT {
4727    const TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT;
4728
4729    #[inline]
4730    fn s_type(&self) -> StructureType {
4731        self.s_type
4732    }
4733
4734    #[inline]
4735    fn next(&self) -> *const c_void {
4736        self.next
4737    }
4738}
4739
4740unsafe impl InputChainStruct for ImageCompressionPropertiesEXT {
4741    const TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT;
4742
4743    #[inline]
4744    fn s_type(&self) -> StructureType {
4745        self.s_type
4746    }
4747
4748    #[inline]
4749    fn next(&self) -> *const c_void {
4750        self.next
4751    }
4752}
4753
4754unsafe impl OutputChainStruct for ImageCompressionPropertiesEXT {
4755    #[inline]
4756    fn next_mut(&self) -> *mut c_void {
4757        self.next
4758    }
4759}
4760
4761unsafe impl InputChainStruct for ImageConstraintsInfoFUCHSIA {
4762    const TYPE: StructureType = StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA;
4763
4764    #[inline]
4765    fn s_type(&self) -> StructureType {
4766        self.s_type
4767    }
4768
4769    #[inline]
4770    fn next(&self) -> *const c_void {
4771        self.next
4772    }
4773}
4774
4775unsafe impl InputChainStruct for ImageCopy2 {
4776    const TYPE: StructureType = StructureType::IMAGE_COPY_2;
4777
4778    #[inline]
4779    fn s_type(&self) -> StructureType {
4780        self.s_type
4781    }
4782
4783    #[inline]
4784    fn next(&self) -> *const c_void {
4785        self.next
4786    }
4787}
4788
4789unsafe impl InputChainStruct for ImageCreateInfo {
4790    const TYPE: StructureType = StructureType::IMAGE_CREATE_INFO;
4791
4792    #[inline]
4793    fn s_type(&self) -> StructureType {
4794        self.s_type
4795    }
4796
4797    #[inline]
4798    fn next(&self) -> *const c_void {
4799        self.next
4800    }
4801}
4802
4803unsafe impl InputChainStruct for ImageDescriptorInfoEXT {
4804    const TYPE: StructureType = StructureType::IMAGE_DESCRIPTOR_INFO_EXT;
4805
4806    #[inline]
4807    fn s_type(&self) -> StructureType {
4808        self.s_type
4809    }
4810
4811    #[inline]
4812    fn next(&self) -> *const c_void {
4813        self.next
4814    }
4815}
4816
4817unsafe impl InputChainStruct for ImageDrmFormatModifierExplicitCreateInfoEXT {
4818    const TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
4819
4820    #[inline]
4821    fn s_type(&self) -> StructureType {
4822        self.s_type
4823    }
4824
4825    #[inline]
4826    fn next(&self) -> *const c_void {
4827        self.next
4828    }
4829}
4830
4831unsafe impl InputChainStruct for ImageDrmFormatModifierListCreateInfoEXT {
4832    const TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
4833
4834    #[inline]
4835    fn s_type(&self) -> StructureType {
4836        self.s_type
4837    }
4838
4839    #[inline]
4840    fn next(&self) -> *const c_void {
4841        self.next
4842    }
4843}
4844
4845unsafe impl InputChainStruct for ImageDrmFormatModifierPropertiesEXT {
4846    const TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
4847
4848    #[inline]
4849    fn s_type(&self) -> StructureType {
4850        self.s_type
4851    }
4852
4853    #[inline]
4854    fn next(&self) -> *const c_void {
4855        self.next
4856    }
4857}
4858
4859unsafe impl OutputChainStruct for ImageDrmFormatModifierPropertiesEXT {
4860    #[inline]
4861    fn next_mut(&self) -> *mut c_void {
4862        self.next
4863    }
4864}
4865
4866unsafe impl InputChainStruct for ImageFormatConstraintsInfoFUCHSIA {
4867    const TYPE: StructureType = StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA;
4868
4869    #[inline]
4870    fn s_type(&self) -> StructureType {
4871        self.s_type
4872    }
4873
4874    #[inline]
4875    fn next(&self) -> *const c_void {
4876        self.next
4877    }
4878}
4879
4880unsafe impl InputChainStruct for ImageFormatListCreateInfo {
4881    const TYPE: StructureType = StructureType::IMAGE_FORMAT_LIST_CREATE_INFO;
4882
4883    #[inline]
4884    fn s_type(&self) -> StructureType {
4885        self.s_type
4886    }
4887
4888    #[inline]
4889    fn next(&self) -> *const c_void {
4890        self.next
4891    }
4892}
4893
4894unsafe impl InputChainStruct for ImageFormatProperties2 {
4895    const TYPE: StructureType = StructureType::IMAGE_FORMAT_PROPERTIES_2;
4896
4897    #[inline]
4898    fn s_type(&self) -> StructureType {
4899        self.s_type
4900    }
4901
4902    #[inline]
4903    fn next(&self) -> *const c_void {
4904        self.next
4905    }
4906}
4907
4908unsafe impl OutputChainStruct for ImageFormatProperties2 {
4909    #[inline]
4910    fn next_mut(&self) -> *mut c_void {
4911        self.next
4912    }
4913}
4914
4915unsafe impl InputChainStruct for ImageMemoryBarrier {
4916    const TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER;
4917
4918    #[inline]
4919    fn s_type(&self) -> StructureType {
4920        self.s_type
4921    }
4922
4923    #[inline]
4924    fn next(&self) -> *const c_void {
4925        self.next
4926    }
4927}
4928
4929unsafe impl InputChainStruct for ImageMemoryBarrier2 {
4930    const TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER_2;
4931
4932    #[inline]
4933    fn s_type(&self) -> StructureType {
4934        self.s_type
4935    }
4936
4937    #[inline]
4938    fn next(&self) -> *const c_void {
4939        self.next
4940    }
4941}
4942
4943unsafe impl InputChainStruct for ImageMemoryRequirementsInfo2 {
4944    const TYPE: StructureType = StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
4945
4946    #[inline]
4947    fn s_type(&self) -> StructureType {
4948        self.s_type
4949    }
4950
4951    #[inline]
4952    fn next(&self) -> *const c_void {
4953        self.next
4954    }
4955}
4956
4957unsafe impl InputChainStruct for ImagePipeSurfaceCreateInfoFUCHSIA {
4958    const TYPE: StructureType = StructureType::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
4959
4960    #[inline]
4961    fn s_type(&self) -> StructureType {
4962        self.s_type
4963    }
4964
4965    #[inline]
4966    fn next(&self) -> *const c_void {
4967        self.next
4968    }
4969}
4970
4971unsafe impl InputChainStruct for ImagePlaneMemoryRequirementsInfo {
4972    const TYPE: StructureType = StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
4973
4974    #[inline]
4975    fn s_type(&self) -> StructureType {
4976        self.s_type
4977    }
4978
4979    #[inline]
4980    fn next(&self) -> *const c_void {
4981        self.next
4982    }
4983}
4984
4985unsafe impl InputChainStruct for ImageResolve2 {
4986    const TYPE: StructureType = StructureType::IMAGE_RESOLVE_2;
4987
4988    #[inline]
4989    fn s_type(&self) -> StructureType {
4990        self.s_type
4991    }
4992
4993    #[inline]
4994    fn next(&self) -> *const c_void {
4995        self.next
4996    }
4997}
4998
4999unsafe impl InputChainStruct for ImageSparseMemoryRequirementsInfo2 {
5000    const TYPE: StructureType = StructureType::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
5001
5002    #[inline]
5003    fn s_type(&self) -> StructureType {
5004        self.s_type
5005    }
5006
5007    #[inline]
5008    fn next(&self) -> *const c_void {
5009        self.next
5010    }
5011}
5012
5013unsafe impl InputChainStruct for ImageStencilUsageCreateInfo {
5014    const TYPE: StructureType = StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO;
5015
5016    #[inline]
5017    fn s_type(&self) -> StructureType {
5018        self.s_type
5019    }
5020
5021    #[inline]
5022    fn next(&self) -> *const c_void {
5023        self.next
5024    }
5025}
5026
5027unsafe impl InputChainStruct for ImageSubresource2 {
5028    const TYPE: StructureType = StructureType::IMAGE_SUBRESOURCE_2;
5029
5030    #[inline]
5031    fn s_type(&self) -> StructureType {
5032        self.s_type
5033    }
5034
5035    #[inline]
5036    fn next(&self) -> *const c_void {
5037        self.next
5038    }
5039}
5040
5041unsafe impl OutputChainStruct for ImageSubresource2 {
5042    #[inline]
5043    fn next_mut(&self) -> *mut c_void {
5044        self.next
5045    }
5046}
5047
5048unsafe impl InputChainStruct for ImageSwapchainCreateInfoKHR {
5049    const TYPE: StructureType = StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
5050
5051    #[inline]
5052    fn s_type(&self) -> StructureType {
5053        self.s_type
5054    }
5055
5056    #[inline]
5057    fn next(&self) -> *const c_void {
5058        self.next
5059    }
5060}
5061
5062unsafe impl InputChainStruct for ImageToMemoryCopy {
5063    const TYPE: StructureType = StructureType::IMAGE_TO_MEMORY_COPY;
5064
5065    #[inline]
5066    fn s_type(&self) -> StructureType {
5067        self.s_type
5068    }
5069
5070    #[inline]
5071    fn next(&self) -> *const c_void {
5072        self.next
5073    }
5074}
5075
5076unsafe impl InputChainStruct for ImageViewASTCDecodeModeEXT {
5077    const TYPE: StructureType = StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
5078
5079    #[inline]
5080    fn s_type(&self) -> StructureType {
5081        self.s_type
5082    }
5083
5084    #[inline]
5085    fn next(&self) -> *const c_void {
5086        self.next
5087    }
5088}
5089
5090unsafe impl InputChainStruct for ImageViewAddressPropertiesNVX {
5091    const TYPE: StructureType = StructureType::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
5092
5093    #[inline]
5094    fn s_type(&self) -> StructureType {
5095        self.s_type
5096    }
5097
5098    #[inline]
5099    fn next(&self) -> *const c_void {
5100        self.next
5101    }
5102}
5103
5104unsafe impl OutputChainStruct for ImageViewAddressPropertiesNVX {
5105    #[inline]
5106    fn next_mut(&self) -> *mut c_void {
5107        self.next
5108    }
5109}
5110
5111unsafe impl InputChainStruct for ImageViewCaptureDescriptorDataInfoEXT {
5112    const TYPE: StructureType = StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
5113
5114    #[inline]
5115    fn s_type(&self) -> StructureType {
5116        self.s_type
5117    }
5118
5119    #[inline]
5120    fn next(&self) -> *const c_void {
5121        self.next
5122    }
5123}
5124
5125unsafe impl InputChainStruct for ImageViewCreateInfo {
5126    const TYPE: StructureType = StructureType::IMAGE_VIEW_CREATE_INFO;
5127
5128    #[inline]
5129    fn s_type(&self) -> StructureType {
5130        self.s_type
5131    }
5132
5133    #[inline]
5134    fn next(&self) -> *const c_void {
5135        self.next
5136    }
5137}
5138
5139unsafe impl InputChainStruct for ImageViewHandleInfoNVX {
5140    const TYPE: StructureType = StructureType::IMAGE_VIEW_HANDLE_INFO_NVX;
5141
5142    #[inline]
5143    fn s_type(&self) -> StructureType {
5144        self.s_type
5145    }
5146
5147    #[inline]
5148    fn next(&self) -> *const c_void {
5149        self.next
5150    }
5151}
5152
5153unsafe impl InputChainStruct for ImageViewMinLodCreateInfoEXT {
5154    const TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
5155
5156    #[inline]
5157    fn s_type(&self) -> StructureType {
5158        self.s_type
5159    }
5160
5161    #[inline]
5162    fn next(&self) -> *const c_void {
5163        self.next
5164    }
5165}
5166
5167unsafe impl InputChainStruct for ImageViewSampleWeightCreateInfoQCOM {
5168    const TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM;
5169
5170    #[inline]
5171    fn s_type(&self) -> StructureType {
5172        self.s_type
5173    }
5174
5175    #[inline]
5176    fn next(&self) -> *const c_void {
5177        self.next
5178    }
5179}
5180
5181unsafe impl InputChainStruct for ImageViewSlicedCreateInfoEXT {
5182    const TYPE: StructureType = StructureType::IMAGE_VIEW_SLICED_CREATE_INFO_EXT;
5183
5184    #[inline]
5185    fn s_type(&self) -> StructureType {
5186        self.s_type
5187    }
5188
5189    #[inline]
5190    fn next(&self) -> *const c_void {
5191        self.next
5192    }
5193}
5194
5195unsafe impl InputChainStruct for ImageViewUsageCreateInfo {
5196    const TYPE: StructureType = StructureType::IMAGE_VIEW_USAGE_CREATE_INFO;
5197
5198    #[inline]
5199    fn s_type(&self) -> StructureType {
5200        self.s_type
5201    }
5202
5203    #[inline]
5204    fn next(&self) -> *const c_void {
5205        self.next
5206    }
5207}
5208
5209unsafe impl InputChainStruct for ImportAndroidHardwareBufferInfoANDROID {
5210    const TYPE: StructureType = StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
5211
5212    #[inline]
5213    fn s_type(&self) -> StructureType {
5214        self.s_type
5215    }
5216
5217    #[inline]
5218    fn next(&self) -> *const c_void {
5219        self.next
5220    }
5221}
5222
5223unsafe impl InputChainStruct for ImportFenceFdInfoKHR {
5224    const TYPE: StructureType = StructureType::IMPORT_FENCE_FD_INFO_KHR;
5225
5226    #[inline]
5227    fn s_type(&self) -> StructureType {
5228        self.s_type
5229    }
5230
5231    #[inline]
5232    fn next(&self) -> *const c_void {
5233        self.next
5234    }
5235}
5236
5237unsafe impl InputChainStruct for ImportFenceSciSyncInfoNV {
5238    const TYPE: StructureType = StructureType::IMPORT_FENCE_SCI_SYNC_INFO_NV;
5239
5240    #[inline]
5241    fn s_type(&self) -> StructureType {
5242        self.s_type
5243    }
5244
5245    #[inline]
5246    fn next(&self) -> *const c_void {
5247        self.next
5248    }
5249}
5250
5251unsafe impl InputChainStruct for ImportFenceWin32HandleInfoKHR {
5252    const TYPE: StructureType = StructureType::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
5253
5254    #[inline]
5255    fn s_type(&self) -> StructureType {
5256        self.s_type
5257    }
5258
5259    #[inline]
5260    fn next(&self) -> *const c_void {
5261        self.next
5262    }
5263}
5264
5265unsafe impl InputChainStruct for ImportMemoryBufferCollectionFUCHSIA {
5266    const TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA;
5267
5268    #[inline]
5269    fn s_type(&self) -> StructureType {
5270        self.s_type
5271    }
5272
5273    #[inline]
5274    fn next(&self) -> *const c_void {
5275        self.next
5276    }
5277}
5278
5279unsafe impl InputChainStruct for ImportMemoryFdInfoKHR {
5280    const TYPE: StructureType = StructureType::IMPORT_MEMORY_FD_INFO_KHR;
5281
5282    #[inline]
5283    fn s_type(&self) -> StructureType {
5284        self.s_type
5285    }
5286
5287    #[inline]
5288    fn next(&self) -> *const c_void {
5289        self.next
5290    }
5291}
5292
5293unsafe impl InputChainStruct for ImportMemoryHostPointerInfoEXT {
5294    const TYPE: StructureType = StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
5295
5296    #[inline]
5297    fn s_type(&self) -> StructureType {
5298        self.s_type
5299    }
5300
5301    #[inline]
5302    fn next(&self) -> *const c_void {
5303        self.next
5304    }
5305}
5306
5307unsafe impl InputChainStruct for ImportMemoryMetalHandleInfoEXT {
5308    const TYPE: StructureType = StructureType::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT;
5309
5310    #[inline]
5311    fn s_type(&self) -> StructureType {
5312        self.s_type
5313    }
5314
5315    #[inline]
5316    fn next(&self) -> *const c_void {
5317        self.next
5318    }
5319}
5320
5321unsafe impl InputChainStruct for ImportMemorySciBufInfoNV {
5322    const TYPE: StructureType = StructureType::IMPORT_MEMORY_SCI_BUF_INFO_NV;
5323
5324    #[inline]
5325    fn s_type(&self) -> StructureType {
5326        self.s_type
5327    }
5328
5329    #[inline]
5330    fn next(&self) -> *const c_void {
5331        self.next
5332    }
5333}
5334
5335unsafe impl InputChainStruct for ImportMemoryWin32HandleInfoKHR {
5336    const TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
5337
5338    #[inline]
5339    fn s_type(&self) -> StructureType {
5340        self.s_type
5341    }
5342
5343    #[inline]
5344    fn next(&self) -> *const c_void {
5345        self.next
5346    }
5347}
5348
5349unsafe impl InputChainStruct for ImportMemoryWin32HandleInfoNV {
5350    const TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
5351
5352    #[inline]
5353    fn s_type(&self) -> StructureType {
5354        self.s_type
5355    }
5356
5357    #[inline]
5358    fn next(&self) -> *const c_void {
5359        self.next
5360    }
5361}
5362
5363unsafe impl InputChainStruct for ImportMemoryZirconHandleInfoFUCHSIA {
5364    const TYPE: StructureType = StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
5365
5366    #[inline]
5367    fn s_type(&self) -> StructureType {
5368        self.s_type
5369    }
5370
5371    #[inline]
5372    fn next(&self) -> *const c_void {
5373        self.next
5374    }
5375}
5376
5377unsafe impl InputChainStruct for ImportMetalBufferInfoEXT {
5378    const TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_INFO_EXT;
5379
5380    #[inline]
5381    fn s_type(&self) -> StructureType {
5382        self.s_type
5383    }
5384
5385    #[inline]
5386    fn next(&self) -> *const c_void {
5387        self.next
5388    }
5389}
5390
5391unsafe impl InputChainStruct for ImportMetalIOSurfaceInfoEXT {
5392    const TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT;
5393
5394    #[inline]
5395    fn s_type(&self) -> StructureType {
5396        self.s_type
5397    }
5398
5399    #[inline]
5400    fn next(&self) -> *const c_void {
5401        self.next
5402    }
5403}
5404
5405unsafe impl InputChainStruct for ImportMetalSharedEventInfoEXT {
5406    const TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT;
5407
5408    #[inline]
5409    fn s_type(&self) -> StructureType {
5410        self.s_type
5411    }
5412
5413    #[inline]
5414    fn next(&self) -> *const c_void {
5415        self.next
5416    }
5417}
5418
5419unsafe impl InputChainStruct for ImportMetalTextureInfoEXT {
5420    const TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT;
5421
5422    #[inline]
5423    fn s_type(&self) -> StructureType {
5424        self.s_type
5425    }
5426
5427    #[inline]
5428    fn next(&self) -> *const c_void {
5429        self.next
5430    }
5431}
5432
5433unsafe impl InputChainStruct for ImportNativeBufferInfoOHOS {
5434    const TYPE: StructureType = StructureType::IMPORT_NATIVE_BUFFER_INFO_OHOS;
5435
5436    #[inline]
5437    fn s_type(&self) -> StructureType {
5438        self.s_type
5439    }
5440
5441    #[inline]
5442    fn next(&self) -> *const c_void {
5443        self.next
5444    }
5445}
5446
5447unsafe impl InputChainStruct for ImportScreenBufferInfoQNX {
5448    const TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX;
5449
5450    #[inline]
5451    fn s_type(&self) -> StructureType {
5452        self.s_type
5453    }
5454
5455    #[inline]
5456    fn next(&self) -> *const c_void {
5457        self.next
5458    }
5459}
5460
5461unsafe impl InputChainStruct for ImportSemaphoreFdInfoKHR {
5462    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_FD_INFO_KHR;
5463
5464    #[inline]
5465    fn s_type(&self) -> StructureType {
5466        self.s_type
5467    }
5468
5469    #[inline]
5470    fn next(&self) -> *const c_void {
5471        self.next
5472    }
5473}
5474
5475unsafe impl InputChainStruct for ImportSemaphoreSciSyncInfoNV {
5476    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV;
5477
5478    #[inline]
5479    fn s_type(&self) -> StructureType {
5480        self.s_type
5481    }
5482
5483    #[inline]
5484    fn next(&self) -> *const c_void {
5485        self.next
5486    }
5487}
5488
5489unsafe impl InputChainStruct for ImportSemaphoreWin32HandleInfoKHR {
5490    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
5491
5492    #[inline]
5493    fn s_type(&self) -> StructureType {
5494        self.s_type
5495    }
5496
5497    #[inline]
5498    fn next(&self) -> *const c_void {
5499        self.next
5500    }
5501}
5502
5503unsafe impl InputChainStruct for ImportSemaphoreZirconHandleInfoFUCHSIA {
5504    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
5505
5506    #[inline]
5507    fn s_type(&self) -> StructureType {
5508        self.s_type
5509    }
5510
5511    #[inline]
5512    fn next(&self) -> *const c_void {
5513        self.next
5514    }
5515}
5516
5517unsafe impl InputChainStruct for IndirectCommandsLayoutCreateInfoEXT {
5518    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT;
5519
5520    #[inline]
5521    fn s_type(&self) -> StructureType {
5522        self.s_type
5523    }
5524
5525    #[inline]
5526    fn next(&self) -> *const c_void {
5527        self.next
5528    }
5529}
5530
5531unsafe impl InputChainStruct for IndirectCommandsLayoutCreateInfoNV {
5532    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
5533
5534    #[inline]
5535    fn s_type(&self) -> StructureType {
5536        self.s_type
5537    }
5538
5539    #[inline]
5540    fn next(&self) -> *const c_void {
5541        self.next
5542    }
5543}
5544
5545unsafe impl InputChainStruct for IndirectCommandsLayoutPushDataTokenNV {
5546    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV;
5547
5548    #[inline]
5549    fn s_type(&self) -> StructureType {
5550        self.s_type
5551    }
5552
5553    #[inline]
5554    fn next(&self) -> *const c_void {
5555        self.next
5556    }
5557}
5558
5559unsafe impl InputChainStruct for IndirectCommandsLayoutTokenEXT {
5560    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT;
5561
5562    #[inline]
5563    fn s_type(&self) -> StructureType {
5564        self.s_type
5565    }
5566
5567    #[inline]
5568    fn next(&self) -> *const c_void {
5569        self.next
5570    }
5571}
5572
5573unsafe impl InputChainStruct for IndirectCommandsLayoutTokenNV {
5574    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
5575
5576    #[inline]
5577    fn s_type(&self) -> StructureType {
5578        self.s_type
5579    }
5580
5581    #[inline]
5582    fn next(&self) -> *const c_void {
5583        self.next
5584    }
5585}
5586
5587unsafe impl InputChainStruct for IndirectExecutionSetCreateInfoEXT {
5588    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT;
5589
5590    #[inline]
5591    fn s_type(&self) -> StructureType {
5592        self.s_type
5593    }
5594
5595    #[inline]
5596    fn next(&self) -> *const c_void {
5597        self.next
5598    }
5599}
5600
5601unsafe impl InputChainStruct for IndirectExecutionSetPipelineInfoEXT {
5602    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT;
5603
5604    #[inline]
5605    fn s_type(&self) -> StructureType {
5606        self.s_type
5607    }
5608
5609    #[inline]
5610    fn next(&self) -> *const c_void {
5611        self.next
5612    }
5613}
5614
5615unsafe impl InputChainStruct for IndirectExecutionSetShaderInfoEXT {
5616    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT;
5617
5618    #[inline]
5619    fn s_type(&self) -> StructureType {
5620        self.s_type
5621    }
5622
5623    #[inline]
5624    fn next(&self) -> *const c_void {
5625        self.next
5626    }
5627}
5628
5629unsafe impl InputChainStruct for IndirectExecutionSetShaderLayoutInfoEXT {
5630    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT;
5631
5632    #[inline]
5633    fn s_type(&self) -> StructureType {
5634        self.s_type
5635    }
5636
5637    #[inline]
5638    fn next(&self) -> *const c_void {
5639        self.next
5640    }
5641}
5642
5643unsafe impl InputChainStruct for InitializePerformanceApiInfoINTEL {
5644    const TYPE: StructureType = StructureType::INITIALIZE_PERFORMANCE_API_INFO_INTEL;
5645
5646    #[inline]
5647    fn s_type(&self) -> StructureType {
5648        self.s_type
5649    }
5650
5651    #[inline]
5652    fn next(&self) -> *const c_void {
5653        self.next
5654    }
5655}
5656
5657unsafe impl InputChainStruct for InstanceCreateInfo {
5658    const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO;
5659
5660    #[inline]
5661    fn s_type(&self) -> StructureType {
5662        self.s_type
5663    }
5664
5665    #[inline]
5666    fn next(&self) -> *const c_void {
5667        self.next
5668    }
5669}
5670
5671unsafe impl InputChainStruct for LatencySleepInfoNV {
5672    const TYPE: StructureType = StructureType::LATENCY_SLEEP_INFO_NV;
5673
5674    #[inline]
5675    fn s_type(&self) -> StructureType {
5676        self.s_type
5677    }
5678
5679    #[inline]
5680    fn next(&self) -> *const c_void {
5681        self.next
5682    }
5683}
5684
5685unsafe impl InputChainStruct for LatencySleepModeInfoNV {
5686    const TYPE: StructureType = StructureType::LATENCY_SLEEP_MODE_INFO_NV;
5687
5688    #[inline]
5689    fn s_type(&self) -> StructureType {
5690        self.s_type
5691    }
5692
5693    #[inline]
5694    fn next(&self) -> *const c_void {
5695        self.next
5696    }
5697}
5698
5699unsafe impl InputChainStruct for LatencySubmissionPresentIdNV {
5700    const TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV;
5701
5702    #[inline]
5703    fn s_type(&self) -> StructureType {
5704        self.s_type
5705    }
5706
5707    #[inline]
5708    fn next(&self) -> *const c_void {
5709        self.next
5710    }
5711}
5712
5713unsafe impl InputChainStruct for LatencySurfaceCapabilitiesNV {
5714    const TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV;
5715
5716    #[inline]
5717    fn s_type(&self) -> StructureType {
5718        self.s_type
5719    }
5720
5721    #[inline]
5722    fn next(&self) -> *const c_void {
5723        self.next
5724    }
5725}
5726
5727unsafe impl InputChainStruct for LatencyTimingsFrameReportNV {
5728    const TYPE: StructureType = StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV;
5729
5730    #[inline]
5731    fn s_type(&self) -> StructureType {
5732        self.s_type
5733    }
5734
5735    #[inline]
5736    fn next(&self) -> *const c_void {
5737        self.next
5738    }
5739}
5740
5741unsafe impl OutputChainStruct for LatencyTimingsFrameReportNV {
5742    #[inline]
5743    fn next_mut(&self) -> *mut c_void {
5744        self.next
5745    }
5746}
5747
5748unsafe impl InputChainStruct for LayerSettingsCreateInfoEXT {
5749    const TYPE: StructureType = StructureType::LAYER_SETTINGS_CREATE_INFO_EXT;
5750
5751    #[inline]
5752    fn s_type(&self) -> StructureType {
5753        self.s_type
5754    }
5755
5756    #[inline]
5757    fn next(&self) -> *const c_void {
5758        self.next
5759    }
5760}
5761
5762unsafe impl InputChainStruct for MacOSSurfaceCreateInfoMVK {
5763    const TYPE: StructureType = StructureType::MACOS_SURFACE_CREATE_INFO_MVK;
5764
5765    #[inline]
5766    fn s_type(&self) -> StructureType {
5767        self.s_type
5768    }
5769
5770    #[inline]
5771    fn next(&self) -> *const c_void {
5772        self.next
5773    }
5774}
5775
5776unsafe impl InputChainStruct for MappedMemoryRange {
5777    const TYPE: StructureType = StructureType::MAPPED_MEMORY_RANGE;
5778
5779    #[inline]
5780    fn s_type(&self) -> StructureType {
5781        self.s_type
5782    }
5783
5784    #[inline]
5785    fn next(&self) -> *const c_void {
5786        self.next
5787    }
5788}
5789
5790unsafe impl InputChainStruct for MemoryAllocateFlagsInfo {
5791    const TYPE: StructureType = StructureType::MEMORY_ALLOCATE_FLAGS_INFO;
5792
5793    #[inline]
5794    fn s_type(&self) -> StructureType {
5795        self.s_type
5796    }
5797
5798    #[inline]
5799    fn next(&self) -> *const c_void {
5800        self.next
5801    }
5802}
5803
5804unsafe impl InputChainStruct for MemoryAllocateInfo {
5805    const TYPE: StructureType = StructureType::MEMORY_ALLOCATE_INFO;
5806
5807    #[inline]
5808    fn s_type(&self) -> StructureType {
5809        self.s_type
5810    }
5811
5812    #[inline]
5813    fn next(&self) -> *const c_void {
5814        self.next
5815    }
5816}
5817
5818unsafe impl InputChainStruct for MemoryBarrier {
5819    const TYPE: StructureType = StructureType::MEMORY_BARRIER;
5820
5821    #[inline]
5822    fn s_type(&self) -> StructureType {
5823        self.s_type
5824    }
5825
5826    #[inline]
5827    fn next(&self) -> *const c_void {
5828        self.next
5829    }
5830}
5831
5832unsafe impl InputChainStruct for MemoryBarrier2 {
5833    const TYPE: StructureType = StructureType::MEMORY_BARRIER_2;
5834
5835    #[inline]
5836    fn s_type(&self) -> StructureType {
5837        self.s_type
5838    }
5839
5840    #[inline]
5841    fn next(&self) -> *const c_void {
5842        self.next
5843    }
5844}
5845
5846unsafe impl InputChainStruct for MemoryBarrierAccessFlags3KHR {
5847    const TYPE: StructureType = StructureType::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR;
5848
5849    #[inline]
5850    fn s_type(&self) -> StructureType {
5851        self.s_type
5852    }
5853
5854    #[inline]
5855    fn next(&self) -> *const c_void {
5856        self.next
5857    }
5858}
5859
5860unsafe impl InputChainStruct for MemoryDedicatedAllocateInfo {
5861    const TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO;
5862
5863    #[inline]
5864    fn s_type(&self) -> StructureType {
5865        self.s_type
5866    }
5867
5868    #[inline]
5869    fn next(&self) -> *const c_void {
5870        self.next
5871    }
5872}
5873
5874unsafe impl InputChainStruct for MemoryDedicatedAllocateInfoTensorARM {
5875    const TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM;
5876
5877    #[inline]
5878    fn s_type(&self) -> StructureType {
5879        self.s_type
5880    }
5881
5882    #[inline]
5883    fn next(&self) -> *const c_void {
5884        self.next
5885    }
5886}
5887
5888unsafe impl InputChainStruct for MemoryDedicatedRequirements {
5889    const TYPE: StructureType = StructureType::MEMORY_DEDICATED_REQUIREMENTS;
5890
5891    #[inline]
5892    fn s_type(&self) -> StructureType {
5893        self.s_type
5894    }
5895
5896    #[inline]
5897    fn next(&self) -> *const c_void {
5898        self.next
5899    }
5900}
5901
5902unsafe impl OutputChainStruct for MemoryDedicatedRequirements {
5903    #[inline]
5904    fn next_mut(&self) -> *mut c_void {
5905        self.next
5906    }
5907}
5908
5909unsafe impl InputChainStruct for MemoryFdPropertiesKHR {
5910    const TYPE: StructureType = StructureType::MEMORY_FD_PROPERTIES_KHR;
5911
5912    #[inline]
5913    fn s_type(&self) -> StructureType {
5914        self.s_type
5915    }
5916
5917    #[inline]
5918    fn next(&self) -> *const c_void {
5919        self.next
5920    }
5921}
5922
5923unsafe impl OutputChainStruct for MemoryFdPropertiesKHR {
5924    #[inline]
5925    fn next_mut(&self) -> *mut c_void {
5926        self.next
5927    }
5928}
5929
5930unsafe impl InputChainStruct for MemoryGetAndroidHardwareBufferInfoANDROID {
5931    const TYPE: StructureType = StructureType::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
5932
5933    #[inline]
5934    fn s_type(&self) -> StructureType {
5935        self.s_type
5936    }
5937
5938    #[inline]
5939    fn next(&self) -> *const c_void {
5940        self.next
5941    }
5942}
5943
5944unsafe impl InputChainStruct for MemoryGetFdInfoKHR {
5945    const TYPE: StructureType = StructureType::MEMORY_GET_FD_INFO_KHR;
5946
5947    #[inline]
5948    fn s_type(&self) -> StructureType {
5949        self.s_type
5950    }
5951
5952    #[inline]
5953    fn next(&self) -> *const c_void {
5954        self.next
5955    }
5956}
5957
5958unsafe impl InputChainStruct for MemoryGetMetalHandleInfoEXT {
5959    const TYPE: StructureType = StructureType::MEMORY_GET_METAL_HANDLE_INFO_EXT;
5960
5961    #[inline]
5962    fn s_type(&self) -> StructureType {
5963        self.s_type
5964    }
5965
5966    #[inline]
5967    fn next(&self) -> *const c_void {
5968        self.next
5969    }
5970}
5971
5972unsafe impl InputChainStruct for MemoryGetNativeBufferInfoOHOS {
5973    const TYPE: StructureType = StructureType::MEMORY_GET_NATIVE_BUFFER_INFO_OHOS;
5974
5975    #[inline]
5976    fn s_type(&self) -> StructureType {
5977        self.s_type
5978    }
5979
5980    #[inline]
5981    fn next(&self) -> *const c_void {
5982        self.next
5983    }
5984}
5985
5986unsafe impl InputChainStruct for MemoryGetRemoteAddressInfoNV {
5987    const TYPE: StructureType = StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
5988
5989    #[inline]
5990    fn s_type(&self) -> StructureType {
5991        self.s_type
5992    }
5993
5994    #[inline]
5995    fn next(&self) -> *const c_void {
5996        self.next
5997    }
5998}
5999
6000unsafe impl InputChainStruct for MemoryGetSciBufInfoNV {
6001    const TYPE: StructureType = StructureType::MEMORY_GET_SCI_BUF_INFO_NV;
6002
6003    #[inline]
6004    fn s_type(&self) -> StructureType {
6005        self.s_type
6006    }
6007
6008    #[inline]
6009    fn next(&self) -> *const c_void {
6010        self.next
6011    }
6012}
6013
6014unsafe impl InputChainStruct for MemoryGetWin32HandleInfoKHR {
6015    const TYPE: StructureType = StructureType::MEMORY_GET_WIN32_HANDLE_INFO_KHR;
6016
6017    #[inline]
6018    fn s_type(&self) -> StructureType {
6019        self.s_type
6020    }
6021
6022    #[inline]
6023    fn next(&self) -> *const c_void {
6024        self.next
6025    }
6026}
6027
6028unsafe impl InputChainStruct for MemoryGetZirconHandleInfoFUCHSIA {
6029    const TYPE: StructureType = StructureType::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
6030
6031    #[inline]
6032    fn s_type(&self) -> StructureType {
6033        self.s_type
6034    }
6035
6036    #[inline]
6037    fn next(&self) -> *const c_void {
6038        self.next
6039    }
6040}
6041
6042unsafe impl InputChainStruct for MemoryHostPointerPropertiesEXT {
6043    const TYPE: StructureType = StructureType::MEMORY_HOST_POINTER_PROPERTIES_EXT;
6044
6045    #[inline]
6046    fn s_type(&self) -> StructureType {
6047        self.s_type
6048    }
6049
6050    #[inline]
6051    fn next(&self) -> *const c_void {
6052        self.next
6053    }
6054}
6055
6056unsafe impl OutputChainStruct for MemoryHostPointerPropertiesEXT {
6057    #[inline]
6058    fn next_mut(&self) -> *mut c_void {
6059        self.next
6060    }
6061}
6062
6063unsafe impl InputChainStruct for MemoryMapInfo {
6064    const TYPE: StructureType = StructureType::MEMORY_MAP_INFO;
6065
6066    #[inline]
6067    fn s_type(&self) -> StructureType {
6068        self.s_type
6069    }
6070
6071    #[inline]
6072    fn next(&self) -> *const c_void {
6073        self.next
6074    }
6075}
6076
6077unsafe impl InputChainStruct for MemoryMapPlacedInfoEXT {
6078    const TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT;
6079
6080    #[inline]
6081    fn s_type(&self) -> StructureType {
6082        self.s_type
6083    }
6084
6085    #[inline]
6086    fn next(&self) -> *const c_void {
6087        self.next
6088    }
6089}
6090
6091unsafe impl InputChainStruct for MemoryMetalHandlePropertiesEXT {
6092    const TYPE: StructureType = StructureType::MEMORY_METAL_HANDLE_PROPERTIES_EXT;
6093
6094    #[inline]
6095    fn s_type(&self) -> StructureType {
6096        self.s_type
6097    }
6098
6099    #[inline]
6100    fn next(&self) -> *const c_void {
6101        self.next
6102    }
6103}
6104
6105unsafe impl OutputChainStruct for MemoryMetalHandlePropertiesEXT {
6106    #[inline]
6107    fn next_mut(&self) -> *mut c_void {
6108        self.next
6109    }
6110}
6111
6112unsafe impl InputChainStruct for MemoryOpaqueCaptureAddressAllocateInfo {
6113    const TYPE: StructureType = StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
6114
6115    #[inline]
6116    fn s_type(&self) -> StructureType {
6117        self.s_type
6118    }
6119
6120    #[inline]
6121    fn next(&self) -> *const c_void {
6122        self.next
6123    }
6124}
6125
6126unsafe impl InputChainStruct for MemoryPriorityAllocateInfoEXT {
6127    const TYPE: StructureType = StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
6128
6129    #[inline]
6130    fn s_type(&self) -> StructureType {
6131        self.s_type
6132    }
6133
6134    #[inline]
6135    fn next(&self) -> *const c_void {
6136        self.next
6137    }
6138}
6139
6140unsafe impl InputChainStruct for MemoryRequirements2 {
6141    const TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2;
6142
6143    #[inline]
6144    fn s_type(&self) -> StructureType {
6145        self.s_type
6146    }
6147
6148    #[inline]
6149    fn next(&self) -> *const c_void {
6150        self.next
6151    }
6152}
6153
6154unsafe impl OutputChainStruct for MemoryRequirements2 {
6155    #[inline]
6156    fn next_mut(&self) -> *mut c_void {
6157        self.next
6158    }
6159}
6160
6161unsafe impl InputChainStruct for MemorySciBufPropertiesNV {
6162    const TYPE: StructureType = StructureType::MEMORY_SCI_BUF_PROPERTIES_NV;
6163
6164    #[inline]
6165    fn s_type(&self) -> StructureType {
6166        self.s_type
6167    }
6168
6169    #[inline]
6170    fn next(&self) -> *const c_void {
6171        self.next
6172    }
6173}
6174
6175unsafe impl InputChainStruct for MemoryToImageCopy {
6176    const TYPE: StructureType = StructureType::MEMORY_TO_IMAGE_COPY;
6177
6178    #[inline]
6179    fn s_type(&self) -> StructureType {
6180        self.s_type
6181    }
6182
6183    #[inline]
6184    fn next(&self) -> *const c_void {
6185        self.next
6186    }
6187}
6188
6189unsafe impl InputChainStruct for MemoryUnmapInfo {
6190    const TYPE: StructureType = StructureType::MEMORY_UNMAP_INFO;
6191
6192    #[inline]
6193    fn s_type(&self) -> StructureType {
6194        self.s_type
6195    }
6196
6197    #[inline]
6198    fn next(&self) -> *const c_void {
6199        self.next
6200    }
6201}
6202
6203unsafe impl InputChainStruct for MemoryWin32HandlePropertiesKHR {
6204    const TYPE: StructureType = StructureType::MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
6205
6206    #[inline]
6207    fn s_type(&self) -> StructureType {
6208        self.s_type
6209    }
6210
6211    #[inline]
6212    fn next(&self) -> *const c_void {
6213        self.next
6214    }
6215}
6216
6217unsafe impl OutputChainStruct for MemoryWin32HandlePropertiesKHR {
6218    #[inline]
6219    fn next_mut(&self) -> *mut c_void {
6220        self.next
6221    }
6222}
6223
6224unsafe impl InputChainStruct for MemoryZirconHandlePropertiesFUCHSIA {
6225    const TYPE: StructureType = StructureType::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
6226
6227    #[inline]
6228    fn s_type(&self) -> StructureType {
6229        self.s_type
6230    }
6231
6232    #[inline]
6233    fn next(&self) -> *const c_void {
6234        self.next
6235    }
6236}
6237
6238unsafe impl OutputChainStruct for MemoryZirconHandlePropertiesFUCHSIA {
6239    #[inline]
6240    fn next_mut(&self) -> *mut c_void {
6241        self.next
6242    }
6243}
6244
6245unsafe impl InputChainStruct for MetalSurfaceCreateInfoEXT {
6246    const TYPE: StructureType = StructureType::METAL_SURFACE_CREATE_INFO_EXT;
6247
6248    #[inline]
6249    fn s_type(&self) -> StructureType {
6250        self.s_type
6251    }
6252
6253    #[inline]
6254    fn next(&self) -> *const c_void {
6255        self.next
6256    }
6257}
6258
6259unsafe impl InputChainStruct for MicromapBuildInfoEXT {
6260    const TYPE: StructureType = StructureType::MICROMAP_BUILD_INFO_EXT;
6261
6262    #[inline]
6263    fn s_type(&self) -> StructureType {
6264        self.s_type
6265    }
6266
6267    #[inline]
6268    fn next(&self) -> *const c_void {
6269        self.next
6270    }
6271}
6272
6273unsafe impl InputChainStruct for MicromapBuildSizesInfoEXT {
6274    const TYPE: StructureType = StructureType::MICROMAP_BUILD_SIZES_INFO_EXT;
6275
6276    #[inline]
6277    fn s_type(&self) -> StructureType {
6278        self.s_type
6279    }
6280
6281    #[inline]
6282    fn next(&self) -> *const c_void {
6283        self.next
6284    }
6285}
6286
6287unsafe impl InputChainStruct for MicromapCreateInfoEXT {
6288    const TYPE: StructureType = StructureType::MICROMAP_CREATE_INFO_EXT;
6289
6290    #[inline]
6291    fn s_type(&self) -> StructureType {
6292        self.s_type
6293    }
6294
6295    #[inline]
6296    fn next(&self) -> *const c_void {
6297        self.next
6298    }
6299}
6300
6301unsafe impl InputChainStruct for MicromapVersionInfoEXT {
6302    const TYPE: StructureType = StructureType::MICROMAP_VERSION_INFO_EXT;
6303
6304    #[inline]
6305    fn s_type(&self) -> StructureType {
6306        self.s_type
6307    }
6308
6309    #[inline]
6310    fn next(&self) -> *const c_void {
6311        self.next
6312    }
6313}
6314
6315unsafe impl InputChainStruct for MultisamplePropertiesEXT {
6316    const TYPE: StructureType = StructureType::MULTISAMPLE_PROPERTIES_EXT;
6317
6318    #[inline]
6319    fn s_type(&self) -> StructureType {
6320        self.s_type
6321    }
6322
6323    #[inline]
6324    fn next(&self) -> *const c_void {
6325        self.next
6326    }
6327}
6328
6329unsafe impl OutputChainStruct for MultisamplePropertiesEXT {
6330    #[inline]
6331    fn next_mut(&self) -> *mut c_void {
6332        self.next
6333    }
6334}
6335
6336unsafe impl InputChainStruct for MultisampledRenderToSingleSampledInfoEXT {
6337    const TYPE: StructureType = StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT;
6338
6339    #[inline]
6340    fn s_type(&self) -> StructureType {
6341        self.s_type
6342    }
6343
6344    #[inline]
6345    fn next(&self) -> *const c_void {
6346        self.next
6347    }
6348}
6349
6350unsafe impl InputChainStruct for MultiviewPerViewAttributesInfoNVX {
6351    const TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX;
6352
6353    #[inline]
6354    fn s_type(&self) -> StructureType {
6355        self.s_type
6356    }
6357
6358    #[inline]
6359    fn next(&self) -> *const c_void {
6360        self.next
6361    }
6362}
6363
6364unsafe impl InputChainStruct for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
6365    const TYPE: StructureType =
6366        StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM;
6367
6368    #[inline]
6369    fn s_type(&self) -> StructureType {
6370        self.s_type
6371    }
6372
6373    #[inline]
6374    fn next(&self) -> *const c_void {
6375        self.next
6376    }
6377}
6378
6379unsafe impl InputChainStruct for MutableDescriptorTypeCreateInfoEXT {
6380    const TYPE: StructureType = StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT;
6381
6382    #[inline]
6383    fn s_type(&self) -> StructureType {
6384        self.s_type
6385    }
6386
6387    #[inline]
6388    fn next(&self) -> *const c_void {
6389        self.next
6390    }
6391}
6392
6393unsafe impl InputChainStruct for NativeBufferFormatPropertiesOHOS {
6394    const TYPE: StructureType = StructureType::NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS;
6395
6396    #[inline]
6397    fn s_type(&self) -> StructureType {
6398        self.s_type
6399    }
6400
6401    #[inline]
6402    fn next(&self) -> *const c_void {
6403        self.next
6404    }
6405}
6406
6407unsafe impl OutputChainStruct for NativeBufferFormatPropertiesOHOS {
6408    #[inline]
6409    fn next_mut(&self) -> *mut c_void {
6410        self.next
6411    }
6412}
6413
6414unsafe impl InputChainStruct for NativeBufferPropertiesOHOS {
6415    const TYPE: StructureType = StructureType::NATIVE_BUFFER_PROPERTIES_OHOS;
6416
6417    #[inline]
6418    fn s_type(&self) -> StructureType {
6419        self.s_type
6420    }
6421
6422    #[inline]
6423    fn next(&self) -> *const c_void {
6424        self.next
6425    }
6426}
6427
6428unsafe impl OutputChainStruct for NativeBufferPropertiesOHOS {
6429    #[inline]
6430    fn next_mut(&self) -> *mut c_void {
6431        self.next
6432    }
6433}
6434
6435unsafe impl InputChainStruct for NativeBufferUsageOHOS {
6436    const TYPE: StructureType = StructureType::NATIVE_BUFFER_USAGE_OHOS;
6437
6438    #[inline]
6439    fn s_type(&self) -> StructureType {
6440        self.s_type
6441    }
6442
6443    #[inline]
6444    fn next(&self) -> *const c_void {
6445        self.next
6446    }
6447}
6448
6449unsafe impl OutputChainStruct for NativeBufferUsageOHOS {
6450    #[inline]
6451    fn next_mut(&self) -> *mut c_void {
6452        self.next
6453    }
6454}
6455
6456unsafe impl InputChainStruct for OpaqueCaptureDataCreateInfoEXT {
6457    const TYPE: StructureType = StructureType::OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT;
6458
6459    #[inline]
6460    fn s_type(&self) -> StructureType {
6461        self.s_type
6462    }
6463
6464    #[inline]
6465    fn next(&self) -> *const c_void {
6466        self.next
6467    }
6468}
6469
6470unsafe impl InputChainStruct for OpaqueCaptureDescriptorDataCreateInfoEXT {
6471    const TYPE: StructureType = StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT;
6472
6473    #[inline]
6474    fn s_type(&self) -> StructureType {
6475        self.s_type
6476    }
6477
6478    #[inline]
6479    fn next(&self) -> *const c_void {
6480        self.next
6481    }
6482}
6483
6484unsafe impl InputChainStruct for OpticalFlowExecuteInfoNV {
6485    const TYPE: StructureType = StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV;
6486
6487    #[inline]
6488    fn s_type(&self) -> StructureType {
6489        self.s_type
6490    }
6491
6492    #[inline]
6493    fn next(&self) -> *const c_void {
6494        self.next
6495    }
6496}
6497
6498unsafe impl OutputChainStruct for OpticalFlowExecuteInfoNV {
6499    #[inline]
6500    fn next_mut(&self) -> *mut c_void {
6501        self.next
6502    }
6503}
6504
6505unsafe impl InputChainStruct for OpticalFlowImageFormatInfoNV {
6506    const TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV;
6507
6508    #[inline]
6509    fn s_type(&self) -> StructureType {
6510        self.s_type
6511    }
6512
6513    #[inline]
6514    fn next(&self) -> *const c_void {
6515        self.next
6516    }
6517}
6518
6519unsafe impl InputChainStruct for OpticalFlowImageFormatPropertiesNV {
6520    const TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV;
6521
6522    #[inline]
6523    fn s_type(&self) -> StructureType {
6524        self.s_type
6525    }
6526
6527    #[inline]
6528    fn next(&self) -> *const c_void {
6529        self.next
6530    }
6531}
6532
6533unsafe impl OutputChainStruct for OpticalFlowImageFormatPropertiesNV {
6534    #[inline]
6535    fn next_mut(&self) -> *mut c_void {
6536        self.next
6537    }
6538}
6539
6540unsafe impl InputChainStruct for OpticalFlowSessionCreateInfoNV {
6541    const TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV;
6542
6543    #[inline]
6544    fn s_type(&self) -> StructureType {
6545        self.s_type
6546    }
6547
6548    #[inline]
6549    fn next(&self) -> *const c_void {
6550        self.next
6551    }
6552}
6553
6554unsafe impl OutputChainStruct for OpticalFlowSessionCreateInfoNV {
6555    #[inline]
6556    fn next_mut(&self) -> *mut c_void {
6557        self.next
6558    }
6559}
6560
6561unsafe impl InputChainStruct for OpticalFlowSessionCreatePrivateDataInfoNV {
6562    const TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV;
6563
6564    #[inline]
6565    fn s_type(&self) -> StructureType {
6566        self.s_type
6567    }
6568
6569    #[inline]
6570    fn next(&self) -> *const c_void {
6571        self.next
6572    }
6573}
6574
6575unsafe impl OutputChainStruct for OpticalFlowSessionCreatePrivateDataInfoNV {
6576    #[inline]
6577    fn next_mut(&self) -> *mut c_void {
6578        self.next
6579    }
6580}
6581
6582unsafe impl InputChainStruct for OutOfBandQueueTypeInfoNV {
6583    const TYPE: StructureType = StructureType::OUT_OF_BAND_QUEUE_TYPE_INFO_NV;
6584
6585    #[inline]
6586    fn s_type(&self) -> StructureType {
6587        self.s_type
6588    }
6589
6590    #[inline]
6591    fn next(&self) -> *const c_void {
6592        self.next
6593    }
6594}
6595
6596unsafe impl InputChainStruct for PartitionedAccelerationStructureFlagsNV {
6597    const TYPE: StructureType = StructureType::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV;
6598
6599    #[inline]
6600    fn s_type(&self) -> StructureType {
6601        self.s_type
6602    }
6603
6604    #[inline]
6605    fn next(&self) -> *const c_void {
6606        self.next
6607    }
6608}
6609
6610unsafe impl OutputChainStruct for PartitionedAccelerationStructureFlagsNV {
6611    #[inline]
6612    fn next_mut(&self) -> *mut c_void {
6613        self.next
6614    }
6615}
6616
6617unsafe impl InputChainStruct for PartitionedAccelerationStructureInstancesInputNV {
6618    const TYPE: StructureType =
6619        StructureType::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV;
6620
6621    #[inline]
6622    fn s_type(&self) -> StructureType {
6623        self.s_type
6624    }
6625
6626    #[inline]
6627    fn next(&self) -> *const c_void {
6628        self.next
6629    }
6630}
6631
6632unsafe impl OutputChainStruct for PartitionedAccelerationStructureInstancesInputNV {
6633    #[inline]
6634    fn next_mut(&self) -> *mut c_void {
6635        self.next
6636    }
6637}
6638
6639unsafe impl InputChainStruct for PastPresentationTimingEXT {
6640    const TYPE: StructureType = StructureType::PAST_PRESENTATION_TIMING_EXT;
6641
6642    #[inline]
6643    fn s_type(&self) -> StructureType {
6644        self.s_type
6645    }
6646
6647    #[inline]
6648    fn next(&self) -> *const c_void {
6649        self.next
6650    }
6651}
6652
6653unsafe impl OutputChainStruct for PastPresentationTimingEXT {
6654    #[inline]
6655    fn next_mut(&self) -> *mut c_void {
6656        self.next
6657    }
6658}
6659
6660unsafe impl InputChainStruct for PastPresentationTimingInfoEXT {
6661    const TYPE: StructureType = StructureType::PAST_PRESENTATION_TIMING_INFO_EXT;
6662
6663    #[inline]
6664    fn s_type(&self) -> StructureType {
6665        self.s_type
6666    }
6667
6668    #[inline]
6669    fn next(&self) -> *const c_void {
6670        self.next
6671    }
6672}
6673
6674unsafe impl InputChainStruct for PastPresentationTimingPropertiesEXT {
6675    const TYPE: StructureType = StructureType::PAST_PRESENTATION_TIMING_PROPERTIES_EXT;
6676
6677    #[inline]
6678    fn s_type(&self) -> StructureType {
6679        self.s_type
6680    }
6681
6682    #[inline]
6683    fn next(&self) -> *const c_void {
6684        self.next
6685    }
6686}
6687
6688unsafe impl OutputChainStruct for PastPresentationTimingPropertiesEXT {
6689    #[inline]
6690    fn next_mut(&self) -> *mut c_void {
6691        self.next
6692    }
6693}
6694
6695unsafe impl InputChainStruct for PerTileBeginInfoQCOM {
6696    const TYPE: StructureType = StructureType::PER_TILE_BEGIN_INFO_QCOM;
6697
6698    #[inline]
6699    fn s_type(&self) -> StructureType {
6700        self.s_type
6701    }
6702
6703    #[inline]
6704    fn next(&self) -> *const c_void {
6705        self.next
6706    }
6707}
6708
6709unsafe impl InputChainStruct for PerTileEndInfoQCOM {
6710    const TYPE: StructureType = StructureType::PER_TILE_END_INFO_QCOM;
6711
6712    #[inline]
6713    fn s_type(&self) -> StructureType {
6714        self.s_type
6715    }
6716
6717    #[inline]
6718    fn next(&self) -> *const c_void {
6719        self.next
6720    }
6721}
6722
6723unsafe impl InputChainStruct for PerformanceConfigurationAcquireInfoINTEL {
6724    const TYPE: StructureType = StructureType::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
6725
6726    #[inline]
6727    fn s_type(&self) -> StructureType {
6728        self.s_type
6729    }
6730
6731    #[inline]
6732    fn next(&self) -> *const c_void {
6733        self.next
6734    }
6735}
6736
6737unsafe impl InputChainStruct for PerformanceCounterARM {
6738    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_ARM;
6739
6740    #[inline]
6741    fn s_type(&self) -> StructureType {
6742        self.s_type
6743    }
6744
6745    #[inline]
6746    fn next(&self) -> *const c_void {
6747        self.next
6748    }
6749}
6750
6751unsafe impl OutputChainStruct for PerformanceCounterARM {
6752    #[inline]
6753    fn next_mut(&self) -> *mut c_void {
6754        self.next
6755    }
6756}
6757
6758unsafe impl InputChainStruct for PerformanceCounterDescriptionARM {
6759    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_DESCRIPTION_ARM;
6760
6761    #[inline]
6762    fn s_type(&self) -> StructureType {
6763        self.s_type
6764    }
6765
6766    #[inline]
6767    fn next(&self) -> *const c_void {
6768        self.next
6769    }
6770}
6771
6772unsafe impl OutputChainStruct for PerformanceCounterDescriptionARM {
6773    #[inline]
6774    fn next_mut(&self) -> *mut c_void {
6775        self.next
6776    }
6777}
6778
6779unsafe impl InputChainStruct for PerformanceCounterDescriptionKHR {
6780    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_DESCRIPTION_KHR;
6781
6782    #[inline]
6783    fn s_type(&self) -> StructureType {
6784        self.s_type
6785    }
6786
6787    #[inline]
6788    fn next(&self) -> *const c_void {
6789        self.next
6790    }
6791}
6792
6793unsafe impl OutputChainStruct for PerformanceCounterDescriptionKHR {
6794    #[inline]
6795    fn next_mut(&self) -> *mut c_void {
6796        self.next
6797    }
6798}
6799
6800unsafe impl InputChainStruct for PerformanceCounterKHR {
6801    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_KHR;
6802
6803    #[inline]
6804    fn s_type(&self) -> StructureType {
6805        self.s_type
6806    }
6807
6808    #[inline]
6809    fn next(&self) -> *const c_void {
6810        self.next
6811    }
6812}
6813
6814unsafe impl OutputChainStruct for PerformanceCounterKHR {
6815    #[inline]
6816    fn next_mut(&self) -> *mut c_void {
6817        self.next
6818    }
6819}
6820
6821unsafe impl InputChainStruct for PerformanceMarkerInfoINTEL {
6822    const TYPE: StructureType = StructureType::PERFORMANCE_MARKER_INFO_INTEL;
6823
6824    #[inline]
6825    fn s_type(&self) -> StructureType {
6826        self.s_type
6827    }
6828
6829    #[inline]
6830    fn next(&self) -> *const c_void {
6831        self.next
6832    }
6833}
6834
6835unsafe impl InputChainStruct for PerformanceOverrideInfoINTEL {
6836    const TYPE: StructureType = StructureType::PERFORMANCE_OVERRIDE_INFO_INTEL;
6837
6838    #[inline]
6839    fn s_type(&self) -> StructureType {
6840        self.s_type
6841    }
6842
6843    #[inline]
6844    fn next(&self) -> *const c_void {
6845        self.next
6846    }
6847}
6848
6849unsafe impl InputChainStruct for PerformanceQueryReservationInfoKHR {
6850    const TYPE: StructureType = StructureType::PERFORMANCE_QUERY_RESERVATION_INFO_KHR;
6851
6852    #[inline]
6853    fn s_type(&self) -> StructureType {
6854        self.s_type
6855    }
6856
6857    #[inline]
6858    fn next(&self) -> *const c_void {
6859        self.next
6860    }
6861}
6862
6863unsafe impl InputChainStruct for PerformanceQuerySubmitInfoKHR {
6864    const TYPE: StructureType = StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
6865
6866    #[inline]
6867    fn s_type(&self) -> StructureType {
6868        self.s_type
6869    }
6870
6871    #[inline]
6872    fn next(&self) -> *const c_void {
6873        self.next
6874    }
6875}
6876
6877unsafe impl InputChainStruct for PerformanceStreamMarkerInfoINTEL {
6878    const TYPE: StructureType = StructureType::PERFORMANCE_STREAM_MARKER_INFO_INTEL;
6879
6880    #[inline]
6881    fn s_type(&self) -> StructureType {
6882        self.s_type
6883    }
6884
6885    #[inline]
6886    fn next(&self) -> *const c_void {
6887        self.next
6888    }
6889}
6890
6891unsafe impl InputChainStruct for PhysicalDevice16BitStorageFeatures {
6892    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
6893
6894    #[inline]
6895    fn s_type(&self) -> StructureType {
6896        self.s_type
6897    }
6898
6899    #[inline]
6900    fn next(&self) -> *const c_void {
6901        self.next
6902    }
6903}
6904
6905unsafe impl OutputChainStruct for PhysicalDevice16BitStorageFeatures {
6906    #[inline]
6907    fn next_mut(&self) -> *mut c_void {
6908        self.next
6909    }
6910}
6911
6912unsafe impl InputChainStruct for PhysicalDevice4444FormatsFeaturesEXT {
6913    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
6914
6915    #[inline]
6916    fn s_type(&self) -> StructureType {
6917        self.s_type
6918    }
6919
6920    #[inline]
6921    fn next(&self) -> *const c_void {
6922        self.next
6923    }
6924}
6925
6926unsafe impl OutputChainStruct for PhysicalDevice4444FormatsFeaturesEXT {
6927    #[inline]
6928    fn next_mut(&self) -> *mut c_void {
6929        self.next
6930    }
6931}
6932
6933unsafe impl InputChainStruct for PhysicalDevice8BitStorageFeatures {
6934    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
6935
6936    #[inline]
6937    fn s_type(&self) -> StructureType {
6938        self.s_type
6939    }
6940
6941    #[inline]
6942    fn next(&self) -> *const c_void {
6943        self.next
6944    }
6945}
6946
6947unsafe impl OutputChainStruct for PhysicalDevice8BitStorageFeatures {
6948    #[inline]
6949    fn next_mut(&self) -> *mut c_void {
6950        self.next
6951    }
6952}
6953
6954unsafe impl InputChainStruct for PhysicalDeviceASTCDecodeFeaturesEXT {
6955    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
6956
6957    #[inline]
6958    fn s_type(&self) -> StructureType {
6959        self.s_type
6960    }
6961
6962    #[inline]
6963    fn next(&self) -> *const c_void {
6964        self.next
6965    }
6966}
6967
6968unsafe impl OutputChainStruct for PhysicalDeviceASTCDecodeFeaturesEXT {
6969    #[inline]
6970    fn next_mut(&self) -> *mut c_void {
6971        self.next
6972    }
6973}
6974
6975unsafe impl InputChainStruct for PhysicalDeviceAccelerationStructureFeaturesKHR {
6976    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
6977
6978    #[inline]
6979    fn s_type(&self) -> StructureType {
6980        self.s_type
6981    }
6982
6983    #[inline]
6984    fn next(&self) -> *const c_void {
6985        self.next
6986    }
6987}
6988
6989unsafe impl OutputChainStruct for PhysicalDeviceAccelerationStructureFeaturesKHR {
6990    #[inline]
6991    fn next_mut(&self) -> *mut c_void {
6992        self.next
6993    }
6994}
6995
6996unsafe impl InputChainStruct for PhysicalDeviceAccelerationStructurePropertiesKHR {
6997    const TYPE: StructureType =
6998        StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
6999
7000    #[inline]
7001    fn s_type(&self) -> StructureType {
7002        self.s_type
7003    }
7004
7005    #[inline]
7006    fn next(&self) -> *const c_void {
7007        self.next
7008    }
7009}
7010
7011unsafe impl OutputChainStruct for PhysicalDeviceAccelerationStructurePropertiesKHR {
7012    #[inline]
7013    fn next_mut(&self) -> *mut c_void {
7014        self.next
7015    }
7016}
7017
7018unsafe impl InputChainStruct for PhysicalDeviceAddressBindingReportFeaturesEXT {
7019    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT;
7020
7021    #[inline]
7022    fn s_type(&self) -> StructureType {
7023        self.s_type
7024    }
7025
7026    #[inline]
7027    fn next(&self) -> *const c_void {
7028        self.next
7029    }
7030}
7031
7032unsafe impl OutputChainStruct for PhysicalDeviceAddressBindingReportFeaturesEXT {
7033    #[inline]
7034    fn next_mut(&self) -> *mut c_void {
7035        self.next
7036    }
7037}
7038
7039unsafe impl InputChainStruct for PhysicalDeviceAmigoProfilingFeaturesSEC {
7040    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC;
7041
7042    #[inline]
7043    fn s_type(&self) -> StructureType {
7044        self.s_type
7045    }
7046
7047    #[inline]
7048    fn next(&self) -> *const c_void {
7049        self.next
7050    }
7051}
7052
7053unsafe impl OutputChainStruct for PhysicalDeviceAmigoProfilingFeaturesSEC {
7054    #[inline]
7055    fn next_mut(&self) -> *mut c_void {
7056        self.next
7057    }
7058}
7059
7060unsafe impl InputChainStruct for PhysicalDeviceAntiLagFeaturesAMD {
7061    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD;
7062
7063    #[inline]
7064    fn s_type(&self) -> StructureType {
7065        self.s_type
7066    }
7067
7068    #[inline]
7069    fn next(&self) -> *const c_void {
7070        self.next
7071    }
7072}
7073
7074unsafe impl OutputChainStruct for PhysicalDeviceAntiLagFeaturesAMD {
7075    #[inline]
7076    fn next_mut(&self) -> *mut c_void {
7077        self.next
7078    }
7079}
7080
7081unsafe impl InputChainStruct for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
7082    const TYPE: StructureType =
7083        StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT;
7084
7085    #[inline]
7086    fn s_type(&self) -> StructureType {
7087        self.s_type
7088    }
7089
7090    #[inline]
7091    fn next(&self) -> *const c_void {
7092        self.next
7093    }
7094}
7095
7096unsafe impl OutputChainStruct for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
7097    #[inline]
7098    fn next_mut(&self) -> *mut c_void {
7099        self.next
7100    }
7101}
7102
7103unsafe impl InputChainStruct for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
7104    const TYPE: StructureType =
7105        StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT;
7106
7107    #[inline]
7108    fn s_type(&self) -> StructureType {
7109        self.s_type
7110    }
7111
7112    #[inline]
7113    fn next(&self) -> *const c_void {
7114        self.next
7115    }
7116}
7117
7118unsafe impl OutputChainStruct for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
7119    #[inline]
7120    fn next_mut(&self) -> *mut c_void {
7121        self.next
7122    }
7123}
7124
7125unsafe impl InputChainStruct for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7126    const TYPE: StructureType =
7127        StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
7128
7129    #[inline]
7130    fn s_type(&self) -> StructureType {
7131        self.s_type
7132    }
7133
7134    #[inline]
7135    fn next(&self) -> *const c_void {
7136        self.next
7137    }
7138}
7139
7140unsafe impl OutputChainStruct for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7141    #[inline]
7142    fn next_mut(&self) -> *mut c_void {
7143        self.next
7144    }
7145}
7146
7147unsafe impl InputChainStruct for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7148    const TYPE: StructureType =
7149        StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
7150
7151    #[inline]
7152    fn s_type(&self) -> StructureType {
7153        self.s_type
7154    }
7155
7156    #[inline]
7157    fn next(&self) -> *const c_void {
7158        self.next
7159    }
7160}
7161
7162unsafe impl OutputChainStruct for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7163    #[inline]
7164    fn next_mut(&self) -> *mut c_void {
7165        self.next
7166    }
7167}
7168
7169unsafe impl InputChainStruct for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
7170    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT;
7171
7172    #[inline]
7173    fn s_type(&self) -> StructureType {
7174        self.s_type
7175    }
7176
7177    #[inline]
7178    fn next(&self) -> *const c_void {
7179        self.next
7180    }
7181}
7182
7183unsafe impl OutputChainStruct for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
7184    #[inline]
7185    fn next_mut(&self) -> *mut c_void {
7186        self.next
7187    }
7188}
7189
7190unsafe impl InputChainStruct for PhysicalDeviceBufferDeviceAddressFeatures {
7191    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
7192
7193    #[inline]
7194    fn s_type(&self) -> StructureType {
7195        self.s_type
7196    }
7197
7198    #[inline]
7199    fn next(&self) -> *const c_void {
7200        self.next
7201    }
7202}
7203
7204unsafe impl OutputChainStruct for PhysicalDeviceBufferDeviceAddressFeatures {
7205    #[inline]
7206    fn next_mut(&self) -> *mut c_void {
7207        self.next
7208    }
7209}
7210
7211unsafe impl InputChainStruct for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
7212    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
7213
7214    #[inline]
7215    fn s_type(&self) -> StructureType {
7216        self.s_type
7217    }
7218
7219    #[inline]
7220    fn next(&self) -> *const c_void {
7221        self.next
7222    }
7223}
7224
7225unsafe impl OutputChainStruct for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
7226    #[inline]
7227    fn next_mut(&self) -> *mut c_void {
7228        self.next
7229    }
7230}
7231
7232unsafe impl InputChainStruct for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
7233    const TYPE: StructureType =
7234        StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV;
7235
7236    #[inline]
7237    fn s_type(&self) -> StructureType {
7238        self.s_type
7239    }
7240
7241    #[inline]
7242    fn next(&self) -> *const c_void {
7243        self.next
7244    }
7245}
7246
7247unsafe impl OutputChainStruct for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
7248    #[inline]
7249    fn next_mut(&self) -> *mut c_void {
7250        self.next
7251    }
7252}
7253
7254unsafe impl InputChainStruct for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
7255    const TYPE: StructureType =
7256        StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV;
7257
7258    #[inline]
7259    fn s_type(&self) -> StructureType {
7260        self.s_type
7261    }
7262
7263    #[inline]
7264    fn next(&self) -> *const c_void {
7265        self.next
7266    }
7267}
7268
7269unsafe impl OutputChainStruct for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
7270    #[inline]
7271    fn next_mut(&self) -> *mut c_void {
7272        self.next
7273    }
7274}
7275
7276unsafe impl InputChainStruct for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
7277    const TYPE: StructureType =
7278        StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI;
7279
7280    #[inline]
7281    fn s_type(&self) -> StructureType {
7282        self.s_type
7283    }
7284
7285    #[inline]
7286    fn next(&self) -> *const c_void {
7287        self.next
7288    }
7289}
7290
7291unsafe impl OutputChainStruct for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
7292    #[inline]
7293    fn next_mut(&self) -> *mut c_void {
7294        self.next
7295    }
7296}
7297
7298unsafe impl InputChainStruct for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
7299    const TYPE: StructureType =
7300        StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI;
7301
7302    #[inline]
7303    fn s_type(&self) -> StructureType {
7304        self.s_type
7305    }
7306
7307    #[inline]
7308    fn next(&self) -> *const c_void {
7309        self.next
7310    }
7311}
7312
7313unsafe impl OutputChainStruct for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
7314    #[inline]
7315    fn next_mut(&self) -> *mut c_void {
7316        self.next
7317    }
7318}
7319
7320unsafe impl InputChainStruct for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
7321    const TYPE: StructureType =
7322        StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI;
7323
7324    #[inline]
7325    fn s_type(&self) -> StructureType {
7326        self.s_type
7327    }
7328
7329    #[inline]
7330    fn next(&self) -> *const c_void {
7331        self.next
7332    }
7333}
7334
7335unsafe impl OutputChainStruct for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
7336    #[inline]
7337    fn next_mut(&self) -> *mut c_void {
7338        self.next
7339    }
7340}
7341
7342unsafe impl InputChainStruct for PhysicalDeviceCoherentMemoryFeaturesAMD {
7343    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
7344
7345    #[inline]
7346    fn s_type(&self) -> StructureType {
7347        self.s_type
7348    }
7349
7350    #[inline]
7351    fn next(&self) -> *const c_void {
7352        self.next
7353    }
7354}
7355
7356unsafe impl OutputChainStruct for PhysicalDeviceCoherentMemoryFeaturesAMD {
7357    #[inline]
7358    fn next_mut(&self) -> *mut c_void {
7359        self.next
7360    }
7361}
7362
7363unsafe impl InputChainStruct for PhysicalDeviceColorWriteEnableFeaturesEXT {
7364    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT;
7365
7366    #[inline]
7367    fn s_type(&self) -> StructureType {
7368        self.s_type
7369    }
7370
7371    #[inline]
7372    fn next(&self) -> *const c_void {
7373        self.next
7374    }
7375}
7376
7377unsafe impl OutputChainStruct for PhysicalDeviceColorWriteEnableFeaturesEXT {
7378    #[inline]
7379    fn next_mut(&self) -> *mut c_void {
7380        self.next
7381    }
7382}
7383
7384unsafe impl InputChainStruct for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
7385    const TYPE: StructureType =
7386        StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV;
7387
7388    #[inline]
7389    fn s_type(&self) -> StructureType {
7390        self.s_type
7391    }
7392
7393    #[inline]
7394    fn next(&self) -> *const c_void {
7395        self.next
7396    }
7397}
7398
7399unsafe impl OutputChainStruct for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
7400    #[inline]
7401    fn next_mut(&self) -> *mut c_void {
7402        self.next
7403    }
7404}
7405
7406unsafe impl InputChainStruct for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
7407    const TYPE: StructureType =
7408        StructureType::PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV;
7409
7410    #[inline]
7411    fn s_type(&self) -> StructureType {
7412        self.s_type
7413    }
7414
7415    #[inline]
7416    fn next(&self) -> *const c_void {
7417        self.next
7418    }
7419}
7420
7421unsafe impl OutputChainStruct for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
7422    #[inline]
7423    fn next_mut(&self) -> *mut c_void {
7424        self.next
7425    }
7426}
7427
7428unsafe impl InputChainStruct for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
7429    const TYPE: StructureType =
7430        StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR;
7431
7432    #[inline]
7433    fn s_type(&self) -> StructureType {
7434        self.s_type
7435    }
7436
7437    #[inline]
7438    fn next(&self) -> *const c_void {
7439        self.next
7440    }
7441}
7442
7443unsafe impl OutputChainStruct for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
7444    #[inline]
7445    fn next_mut(&self) -> *mut c_void {
7446        self.next
7447    }
7448}
7449
7450unsafe impl InputChainStruct for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
7451    const TYPE: StructureType =
7452        StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR;
7453
7454    #[inline]
7455    fn s_type(&self) -> StructureType {
7456        self.s_type
7457    }
7458
7459    #[inline]
7460    fn next(&self) -> *const c_void {
7461        self.next
7462    }
7463}
7464
7465unsafe impl OutputChainStruct for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
7466    #[inline]
7467    fn next_mut(&self) -> *mut c_void {
7468        self.next
7469    }
7470}
7471
7472unsafe impl InputChainStruct for PhysicalDeviceConditionalRenderingFeaturesEXT {
7473    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
7474
7475    #[inline]
7476    fn s_type(&self) -> StructureType {
7477        self.s_type
7478    }
7479
7480    #[inline]
7481    fn next(&self) -> *const c_void {
7482        self.next
7483    }
7484}
7485
7486unsafe impl OutputChainStruct for PhysicalDeviceConditionalRenderingFeaturesEXT {
7487    #[inline]
7488    fn next_mut(&self) -> *mut c_void {
7489        self.next
7490    }
7491}
7492
7493unsafe impl InputChainStruct for PhysicalDeviceConservativeRasterizationPropertiesEXT {
7494    const TYPE: StructureType =
7495        StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
7496
7497    #[inline]
7498    fn s_type(&self) -> StructureType {
7499        self.s_type
7500    }
7501
7502    #[inline]
7503    fn next(&self) -> *const c_void {
7504        self.next
7505    }
7506}
7507
7508unsafe impl OutputChainStruct for PhysicalDeviceConservativeRasterizationPropertiesEXT {
7509    #[inline]
7510    fn next_mut(&self) -> *mut c_void {
7511        self.next
7512    }
7513}
7514
7515unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrix2FeaturesNV {
7516    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;
7517
7518    #[inline]
7519    fn s_type(&self) -> StructureType {
7520        self.s_type
7521    }
7522
7523    #[inline]
7524    fn next(&self) -> *const c_void {
7525        self.next
7526    }
7527}
7528
7529unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrix2FeaturesNV {
7530    #[inline]
7531    fn next_mut(&self) -> *mut c_void {
7532        self.next
7533    }
7534}
7535
7536unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrix2PropertiesNV {
7537    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV;
7538
7539    #[inline]
7540    fn s_type(&self) -> StructureType {
7541        self.s_type
7542    }
7543
7544    #[inline]
7545    fn next(&self) -> *const c_void {
7546        self.next
7547    }
7548}
7549
7550unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrix2PropertiesNV {
7551    #[inline]
7552    fn next_mut(&self) -> *mut c_void {
7553        self.next
7554    }
7555}
7556
7557unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
7558    const TYPE: StructureType =
7559        StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM;
7560
7561    #[inline]
7562    fn s_type(&self) -> StructureType {
7563        self.s_type
7564    }
7565
7566    #[inline]
7567    fn next(&self) -> *const c_void {
7568        self.next
7569    }
7570}
7571
7572unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
7573    #[inline]
7574    fn next_mut(&self) -> *mut c_void {
7575        self.next
7576    }
7577}
7578
7579unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesKHR {
7580    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR;
7581
7582    #[inline]
7583    fn s_type(&self) -> StructureType {
7584        self.s_type
7585    }
7586
7587    #[inline]
7588    fn next(&self) -> *const c_void {
7589        self.next
7590    }
7591}
7592
7593unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesKHR {
7594    #[inline]
7595    fn next_mut(&self) -> *mut c_void {
7596        self.next
7597    }
7598}
7599
7600unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesNV {
7601    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
7602
7603    #[inline]
7604    fn s_type(&self) -> StructureType {
7605        self.s_type
7606    }
7607
7608    #[inline]
7609    fn next(&self) -> *const c_void {
7610        self.next
7611    }
7612}
7613
7614unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesNV {
7615    #[inline]
7616    fn next_mut(&self) -> *mut c_void {
7617        self.next
7618    }
7619}
7620
7621unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesKHR {
7622    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR;
7623
7624    #[inline]
7625    fn s_type(&self) -> StructureType {
7626        self.s_type
7627    }
7628
7629    #[inline]
7630    fn next(&self) -> *const c_void {
7631        self.next
7632    }
7633}
7634
7635unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesKHR {
7636    #[inline]
7637    fn next_mut(&self) -> *mut c_void {
7638        self.next
7639    }
7640}
7641
7642unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesNV {
7643    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
7644
7645    #[inline]
7646    fn s_type(&self) -> StructureType {
7647        self.s_type
7648    }
7649
7650    #[inline]
7651    fn next(&self) -> *const c_void {
7652        self.next
7653    }
7654}
7655
7656unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesNV {
7657    #[inline]
7658    fn next_mut(&self) -> *mut c_void {
7659        self.next
7660    }
7661}
7662
7663unsafe impl InputChainStruct for PhysicalDeviceCooperativeVectorFeaturesNV {
7664    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV;
7665
7666    #[inline]
7667    fn s_type(&self) -> StructureType {
7668        self.s_type
7669    }
7670
7671    #[inline]
7672    fn next(&self) -> *const c_void {
7673        self.next
7674    }
7675}
7676
7677unsafe impl OutputChainStruct for PhysicalDeviceCooperativeVectorFeaturesNV {
7678    #[inline]
7679    fn next_mut(&self) -> *mut c_void {
7680        self.next
7681    }
7682}
7683
7684unsafe impl InputChainStruct for PhysicalDeviceCooperativeVectorPropertiesNV {
7685    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV;
7686
7687    #[inline]
7688    fn s_type(&self) -> StructureType {
7689        self.s_type
7690    }
7691
7692    #[inline]
7693    fn next(&self) -> *const c_void {
7694        self.next
7695    }
7696}
7697
7698unsafe impl OutputChainStruct for PhysicalDeviceCooperativeVectorPropertiesNV {
7699    #[inline]
7700    fn next_mut(&self) -> *mut c_void {
7701        self.next
7702    }
7703}
7704
7705unsafe impl InputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
7706    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR;
7707
7708    #[inline]
7709    fn s_type(&self) -> StructureType {
7710        self.s_type
7711    }
7712
7713    #[inline]
7714    fn next(&self) -> *const c_void {
7715        self.next
7716    }
7717}
7718
7719unsafe impl OutputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
7720    #[inline]
7721    fn next_mut(&self) -> *mut c_void {
7722        self.next
7723    }
7724}
7725
7726unsafe impl InputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
7727    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV;
7728
7729    #[inline]
7730    fn s_type(&self) -> StructureType {
7731        self.s_type
7732    }
7733
7734    #[inline]
7735    fn next(&self) -> *const c_void {
7736        self.next
7737    }
7738}
7739
7740unsafe impl OutputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
7741    #[inline]
7742    fn next_mut(&self) -> *mut c_void {
7743        self.next
7744    }
7745}
7746
7747unsafe impl InputChainStruct for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
7748    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR;
7749
7750    #[inline]
7751    fn s_type(&self) -> StructureType {
7752        self.s_type
7753    }
7754
7755    #[inline]
7756    fn next(&self) -> *const c_void {
7757        self.next
7758    }
7759}
7760
7761unsafe impl OutputChainStruct for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
7762    #[inline]
7763    fn next_mut(&self) -> *mut c_void {
7764        self.next
7765    }
7766}
7767
7768unsafe impl InputChainStruct for PhysicalDeviceCornerSampledImageFeaturesNV {
7769    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
7770
7771    #[inline]
7772    fn s_type(&self) -> StructureType {
7773        self.s_type
7774    }
7775
7776    #[inline]
7777    fn next(&self) -> *const c_void {
7778        self.next
7779    }
7780}
7781
7782unsafe impl OutputChainStruct for PhysicalDeviceCornerSampledImageFeaturesNV {
7783    #[inline]
7784    fn next_mut(&self) -> *mut c_void {
7785        self.next
7786    }
7787}
7788
7789unsafe impl InputChainStruct for PhysicalDeviceCoverageReductionModeFeaturesNV {
7790    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
7791
7792    #[inline]
7793    fn s_type(&self) -> StructureType {
7794        self.s_type
7795    }
7796
7797    #[inline]
7798    fn next(&self) -> *const c_void {
7799        self.next
7800    }
7801}
7802
7803unsafe impl OutputChainStruct for PhysicalDeviceCoverageReductionModeFeaturesNV {
7804    #[inline]
7805    fn next_mut(&self) -> *mut c_void {
7806        self.next
7807    }
7808}
7809
7810unsafe impl InputChainStruct for PhysicalDeviceCubicClampFeaturesQCOM {
7811    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM;
7812
7813    #[inline]
7814    fn s_type(&self) -> StructureType {
7815        self.s_type
7816    }
7817
7818    #[inline]
7819    fn next(&self) -> *const c_void {
7820        self.next
7821    }
7822}
7823
7824unsafe impl OutputChainStruct for PhysicalDeviceCubicClampFeaturesQCOM {
7825    #[inline]
7826    fn next_mut(&self) -> *mut c_void {
7827        self.next
7828    }
7829}
7830
7831unsafe impl InputChainStruct for PhysicalDeviceCubicWeightsFeaturesQCOM {
7832    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM;
7833
7834    #[inline]
7835    fn s_type(&self) -> StructureType {
7836        self.s_type
7837    }
7838
7839    #[inline]
7840    fn next(&self) -> *const c_void {
7841        self.next
7842    }
7843}
7844
7845unsafe impl OutputChainStruct for PhysicalDeviceCubicWeightsFeaturesQCOM {
7846    #[inline]
7847    fn next_mut(&self) -> *mut c_void {
7848        self.next
7849    }
7850}
7851
7852unsafe impl InputChainStruct for PhysicalDeviceCudaKernelLaunchFeaturesNV {
7853    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV;
7854
7855    #[inline]
7856    fn s_type(&self) -> StructureType {
7857        self.s_type
7858    }
7859
7860    #[inline]
7861    fn next(&self) -> *const c_void {
7862        self.next
7863    }
7864}
7865
7866unsafe impl OutputChainStruct for PhysicalDeviceCudaKernelLaunchFeaturesNV {
7867    #[inline]
7868    fn next_mut(&self) -> *mut c_void {
7869        self.next
7870    }
7871}
7872
7873unsafe impl InputChainStruct for PhysicalDeviceCudaKernelLaunchPropertiesNV {
7874    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV;
7875
7876    #[inline]
7877    fn s_type(&self) -> StructureType {
7878        self.s_type
7879    }
7880
7881    #[inline]
7882    fn next(&self) -> *const c_void {
7883        self.next
7884    }
7885}
7886
7887unsafe impl OutputChainStruct for PhysicalDeviceCudaKernelLaunchPropertiesNV {
7888    #[inline]
7889    fn next_mut(&self) -> *mut c_void {
7890        self.next
7891    }
7892}
7893
7894unsafe impl InputChainStruct for PhysicalDeviceCustomBorderColorFeaturesEXT {
7895    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
7896
7897    #[inline]
7898    fn s_type(&self) -> StructureType {
7899        self.s_type
7900    }
7901
7902    #[inline]
7903    fn next(&self) -> *const c_void {
7904        self.next
7905    }
7906}
7907
7908unsafe impl OutputChainStruct for PhysicalDeviceCustomBorderColorFeaturesEXT {
7909    #[inline]
7910    fn next_mut(&self) -> *mut c_void {
7911        self.next
7912    }
7913}
7914
7915unsafe impl InputChainStruct for PhysicalDeviceCustomBorderColorPropertiesEXT {
7916    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
7917
7918    #[inline]
7919    fn s_type(&self) -> StructureType {
7920        self.s_type
7921    }
7922
7923    #[inline]
7924    fn next(&self) -> *const c_void {
7925        self.next
7926    }
7927}
7928
7929unsafe impl OutputChainStruct for PhysicalDeviceCustomBorderColorPropertiesEXT {
7930    #[inline]
7931    fn next_mut(&self) -> *mut c_void {
7932        self.next
7933    }
7934}
7935
7936unsafe impl InputChainStruct for PhysicalDeviceCustomResolveFeaturesEXT {
7937    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT;
7938
7939    #[inline]
7940    fn s_type(&self) -> StructureType {
7941        self.s_type
7942    }
7943
7944    #[inline]
7945    fn next(&self) -> *const c_void {
7946        self.next
7947    }
7948}
7949
7950unsafe impl OutputChainStruct for PhysicalDeviceCustomResolveFeaturesEXT {
7951    #[inline]
7952    fn next_mut(&self) -> *mut c_void {
7953        self.next
7954    }
7955}
7956
7957unsafe impl InputChainStruct for PhysicalDeviceDataGraphFeaturesARM {
7958    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM;
7959
7960    #[inline]
7961    fn s_type(&self) -> StructureType {
7962        self.s_type
7963    }
7964
7965    #[inline]
7966    fn next(&self) -> *const c_void {
7967        self.next
7968    }
7969}
7970
7971unsafe impl OutputChainStruct for PhysicalDeviceDataGraphFeaturesARM {
7972    #[inline]
7973    fn next_mut(&self) -> *mut c_void {
7974        self.next
7975    }
7976}
7977
7978unsafe impl InputChainStruct for PhysicalDeviceDataGraphModelFeaturesQCOM {
7979    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM;
7980
7981    #[inline]
7982    fn s_type(&self) -> StructureType {
7983        self.s_type
7984    }
7985
7986    #[inline]
7987    fn next(&self) -> *const c_void {
7988        self.next
7989    }
7990}
7991
7992unsafe impl OutputChainStruct for PhysicalDeviceDataGraphModelFeaturesQCOM {
7993    #[inline]
7994    fn next_mut(&self) -> *mut c_void {
7995        self.next
7996    }
7997}
7998
7999unsafe impl InputChainStruct for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
8000    const TYPE: StructureType =
8001        StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
8002
8003    #[inline]
8004    fn s_type(&self) -> StructureType {
8005        self.s_type
8006    }
8007
8008    #[inline]
8009    fn next(&self) -> *const c_void {
8010        self.next
8011    }
8012}
8013
8014unsafe impl OutputChainStruct for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
8015    #[inline]
8016    fn next_mut(&self) -> *mut c_void {
8017        self.next
8018    }
8019}
8020
8021unsafe impl InputChainStruct for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
8022    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX;
8023
8024    #[inline]
8025    fn s_type(&self) -> StructureType {
8026        self.s_type
8027    }
8028
8029    #[inline]
8030    fn next(&self) -> *const c_void {
8031        self.next
8032    }
8033}
8034
8035unsafe impl OutputChainStruct for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
8036    #[inline]
8037    fn next_mut(&self) -> *mut c_void {
8038        self.next
8039    }
8040}
8041
8042unsafe impl InputChainStruct for PhysicalDeviceDepthBiasControlFeaturesEXT {
8043    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT;
8044
8045    #[inline]
8046    fn s_type(&self) -> StructureType {
8047        self.s_type
8048    }
8049
8050    #[inline]
8051    fn next(&self) -> *const c_void {
8052        self.next
8053    }
8054}
8055
8056unsafe impl OutputChainStruct for PhysicalDeviceDepthBiasControlFeaturesEXT {
8057    #[inline]
8058    fn next_mut(&self) -> *mut c_void {
8059        self.next
8060    }
8061}
8062
8063unsafe impl InputChainStruct for PhysicalDeviceDepthClampControlFeaturesEXT {
8064    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT;
8065
8066    #[inline]
8067    fn s_type(&self) -> StructureType {
8068        self.s_type
8069    }
8070
8071    #[inline]
8072    fn next(&self) -> *const c_void {
8073        self.next
8074    }
8075}
8076
8077unsafe impl OutputChainStruct for PhysicalDeviceDepthClampControlFeaturesEXT {
8078    #[inline]
8079    fn next_mut(&self) -> *mut c_void {
8080        self.next
8081    }
8082}
8083
8084unsafe impl InputChainStruct for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
8085    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR;
8086
8087    #[inline]
8088    fn s_type(&self) -> StructureType {
8089        self.s_type
8090    }
8091
8092    #[inline]
8093    fn next(&self) -> *const c_void {
8094        self.next
8095    }
8096}
8097
8098unsafe impl OutputChainStruct for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
8099    #[inline]
8100    fn next_mut(&self) -> *mut c_void {
8101        self.next
8102    }
8103}
8104
8105unsafe impl InputChainStruct for PhysicalDeviceDepthClipControlFeaturesEXT {
8106    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT;
8107
8108    #[inline]
8109    fn s_type(&self) -> StructureType {
8110        self.s_type
8111    }
8112
8113    #[inline]
8114    fn next(&self) -> *const c_void {
8115        self.next
8116    }
8117}
8118
8119unsafe impl OutputChainStruct for PhysicalDeviceDepthClipControlFeaturesEXT {
8120    #[inline]
8121    fn next_mut(&self) -> *mut c_void {
8122        self.next
8123    }
8124}
8125
8126unsafe impl InputChainStruct for PhysicalDeviceDepthClipEnableFeaturesEXT {
8127    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
8128
8129    #[inline]
8130    fn s_type(&self) -> StructureType {
8131        self.s_type
8132    }
8133
8134    #[inline]
8135    fn next(&self) -> *const c_void {
8136        self.next
8137    }
8138}
8139
8140unsafe impl OutputChainStruct for PhysicalDeviceDepthClipEnableFeaturesEXT {
8141    #[inline]
8142    fn next_mut(&self) -> *mut c_void {
8143        self.next
8144    }
8145}
8146
8147unsafe impl InputChainStruct for PhysicalDeviceDepthStencilResolveProperties {
8148    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
8149
8150    #[inline]
8151    fn s_type(&self) -> StructureType {
8152        self.s_type
8153    }
8154
8155    #[inline]
8156    fn next(&self) -> *const c_void {
8157        self.next
8158    }
8159}
8160
8161unsafe impl OutputChainStruct for PhysicalDeviceDepthStencilResolveProperties {
8162    #[inline]
8163    fn next_mut(&self) -> *mut c_void {
8164        self.next
8165    }
8166}
8167
8168unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
8169    const TYPE: StructureType =
8170        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT;
8171
8172    #[inline]
8173    fn s_type(&self) -> StructureType {
8174        self.s_type
8175    }
8176
8177    #[inline]
8178    fn next(&self) -> *const c_void {
8179        self.next
8180    }
8181}
8182
8183unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
8184    #[inline]
8185    fn next_mut(&self) -> *mut c_void {
8186        self.next
8187    }
8188}
8189
8190unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferFeaturesEXT {
8191    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT;
8192
8193    #[inline]
8194    fn s_type(&self) -> StructureType {
8195        self.s_type
8196    }
8197
8198    #[inline]
8199    fn next(&self) -> *const c_void {
8200        self.next
8201    }
8202}
8203
8204unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferFeaturesEXT {
8205    #[inline]
8206    fn next_mut(&self) -> *mut c_void {
8207        self.next
8208    }
8209}
8210
8211unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferPropertiesEXT {
8212    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT;
8213
8214    #[inline]
8215    fn s_type(&self) -> StructureType {
8216        self.s_type
8217    }
8218
8219    #[inline]
8220    fn next(&self) -> *const c_void {
8221        self.next
8222    }
8223}
8224
8225unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferPropertiesEXT {
8226    #[inline]
8227    fn next_mut(&self) -> *mut c_void {
8228        self.next
8229    }
8230}
8231
8232unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferTensorFeaturesARM {
8233    const TYPE: StructureType =
8234        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM;
8235
8236    #[inline]
8237    fn s_type(&self) -> StructureType {
8238        self.s_type
8239    }
8240
8241    #[inline]
8242    fn next(&self) -> *const c_void {
8243        self.next
8244    }
8245}
8246
8247unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferTensorFeaturesARM {
8248    #[inline]
8249    fn next_mut(&self) -> *mut c_void {
8250        self.next
8251    }
8252}
8253
8254unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferTensorPropertiesARM {
8255    const TYPE: StructureType =
8256        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM;
8257
8258    #[inline]
8259    fn s_type(&self) -> StructureType {
8260        self.s_type
8261    }
8262
8263    #[inline]
8264    fn next(&self) -> *const c_void {
8265        self.next
8266    }
8267}
8268
8269unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferTensorPropertiesARM {
8270    #[inline]
8271    fn next_mut(&self) -> *mut c_void {
8272        self.next
8273    }
8274}
8275
8276unsafe impl InputChainStruct for PhysicalDeviceDescriptorHeapFeaturesEXT {
8277    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT;
8278
8279    #[inline]
8280    fn s_type(&self) -> StructureType {
8281        self.s_type
8282    }
8283
8284    #[inline]
8285    fn next(&self) -> *const c_void {
8286        self.next
8287    }
8288}
8289
8290unsafe impl OutputChainStruct for PhysicalDeviceDescriptorHeapFeaturesEXT {
8291    #[inline]
8292    fn next_mut(&self) -> *mut c_void {
8293        self.next
8294    }
8295}
8296
8297unsafe impl InputChainStruct for PhysicalDeviceDescriptorHeapPropertiesEXT {
8298    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT;
8299
8300    #[inline]
8301    fn s_type(&self) -> StructureType {
8302        self.s_type
8303    }
8304
8305    #[inline]
8306    fn next(&self) -> *const c_void {
8307        self.next
8308    }
8309}
8310
8311unsafe impl OutputChainStruct for PhysicalDeviceDescriptorHeapPropertiesEXT {
8312    #[inline]
8313    fn next_mut(&self) -> *mut c_void {
8314        self.next
8315    }
8316}
8317
8318unsafe impl InputChainStruct for PhysicalDeviceDescriptorHeapTensorPropertiesARM {
8319    const TYPE: StructureType =
8320        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM;
8321
8322    #[inline]
8323    fn s_type(&self) -> StructureType {
8324        self.s_type
8325    }
8326
8327    #[inline]
8328    fn next(&self) -> *const c_void {
8329        self.next
8330    }
8331}
8332
8333unsafe impl OutputChainStruct for PhysicalDeviceDescriptorHeapTensorPropertiesARM {
8334    #[inline]
8335    fn next_mut(&self) -> *mut c_void {
8336        self.next
8337    }
8338}
8339
8340unsafe impl InputChainStruct for PhysicalDeviceDescriptorIndexingFeatures {
8341    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
8342
8343    #[inline]
8344    fn s_type(&self) -> StructureType {
8345        self.s_type
8346    }
8347
8348    #[inline]
8349    fn next(&self) -> *const c_void {
8350        self.next
8351    }
8352}
8353
8354unsafe impl OutputChainStruct for PhysicalDeviceDescriptorIndexingFeatures {
8355    #[inline]
8356    fn next_mut(&self) -> *mut c_void {
8357        self.next
8358    }
8359}
8360
8361unsafe impl InputChainStruct for PhysicalDeviceDescriptorIndexingProperties {
8362    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
8363
8364    #[inline]
8365    fn s_type(&self) -> StructureType {
8366        self.s_type
8367    }
8368
8369    #[inline]
8370    fn next(&self) -> *const c_void {
8371        self.next
8372    }
8373}
8374
8375unsafe impl OutputChainStruct for PhysicalDeviceDescriptorIndexingProperties {
8376    #[inline]
8377    fn next_mut(&self) -> *mut c_void {
8378        self.next
8379    }
8380}
8381
8382unsafe impl InputChainStruct for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
8383    const TYPE: StructureType =
8384        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV;
8385
8386    #[inline]
8387    fn s_type(&self) -> StructureType {
8388        self.s_type
8389    }
8390
8391    #[inline]
8392    fn next(&self) -> *const c_void {
8393        self.next
8394    }
8395}
8396
8397unsafe impl OutputChainStruct for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
8398    #[inline]
8399    fn next_mut(&self) -> *mut c_void {
8400        self.next
8401    }
8402}
8403
8404unsafe impl InputChainStruct for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
8405    const TYPE: StructureType =
8406        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE;
8407
8408    #[inline]
8409    fn s_type(&self) -> StructureType {
8410        self.s_type
8411    }
8412
8413    #[inline]
8414    fn next(&self) -> *const c_void {
8415        self.next
8416    }
8417}
8418
8419unsafe impl OutputChainStruct for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
8420    #[inline]
8421    fn next_mut(&self) -> *mut c_void {
8422        self.next
8423    }
8424}
8425
8426unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
8427    const TYPE: StructureType =
8428        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV;
8429
8430    #[inline]
8431    fn s_type(&self) -> StructureType {
8432        self.s_type
8433    }
8434
8435    #[inline]
8436    fn next(&self) -> *const c_void {
8437        self.next
8438    }
8439}
8440
8441unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
8442    #[inline]
8443    fn next_mut(&self) -> *mut c_void {
8444        self.next
8445    }
8446}
8447
8448unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
8449    const TYPE: StructureType =
8450        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT;
8451
8452    #[inline]
8453    fn s_type(&self) -> StructureType {
8454        self.s_type
8455    }
8456
8457    #[inline]
8458    fn next(&self) -> *const c_void {
8459        self.next
8460    }
8461}
8462
8463unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
8464    #[inline]
8465    fn next_mut(&self) -> *mut c_void {
8466        self.next
8467    }
8468}
8469
8470unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
8471    const TYPE: StructureType =
8472        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
8473
8474    #[inline]
8475    fn s_type(&self) -> StructureType {
8476        self.s_type
8477    }
8478
8479    #[inline]
8480    fn next(&self) -> *const c_void {
8481        self.next
8482    }
8483}
8484
8485unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
8486    #[inline]
8487    fn next_mut(&self) -> *mut c_void {
8488        self.next
8489    }
8490}
8491
8492unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
8493    const TYPE: StructureType =
8494        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT;
8495
8496    #[inline]
8497    fn s_type(&self) -> StructureType {
8498        self.s_type
8499    }
8500
8501    #[inline]
8502    fn next(&self) -> *const c_void {
8503        self.next
8504    }
8505}
8506
8507unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
8508    #[inline]
8509    fn next_mut(&self) -> *mut c_void {
8510        self.next
8511    }
8512}
8513
8514unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
8515    const TYPE: StructureType =
8516        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
8517
8518    #[inline]
8519    fn s_type(&self) -> StructureType {
8520        self.s_type
8521    }
8522
8523    #[inline]
8524    fn next(&self) -> *const c_void {
8525        self.next
8526    }
8527}
8528
8529unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
8530    #[inline]
8531    fn next_mut(&self) -> *mut c_void {
8532        self.next
8533    }
8534}
8535
8536unsafe impl InputChainStruct for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
8537    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
8538
8539    #[inline]
8540    fn s_type(&self) -> StructureType {
8541        self.s_type
8542    }
8543
8544    #[inline]
8545    fn next(&self) -> *const c_void {
8546        self.next
8547    }
8548}
8549
8550unsafe impl OutputChainStruct for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
8551    #[inline]
8552    fn next_mut(&self) -> *mut c_void {
8553        self.next
8554    }
8555}
8556
8557unsafe impl InputChainStruct for PhysicalDeviceDiagnosticsConfigFeaturesNV {
8558    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV;
8559
8560    #[inline]
8561    fn s_type(&self) -> StructureType {
8562        self.s_type
8563    }
8564
8565    #[inline]
8566    fn next(&self) -> *const c_void {
8567        self.next
8568    }
8569}
8570
8571unsafe impl OutputChainStruct for PhysicalDeviceDiagnosticsConfigFeaturesNV {
8572    #[inline]
8573    fn next_mut(&self) -> *mut c_void {
8574        self.next
8575    }
8576}
8577
8578unsafe impl InputChainStruct for PhysicalDeviceDiscardRectanglePropertiesEXT {
8579    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
8580
8581    #[inline]
8582    fn s_type(&self) -> StructureType {
8583        self.s_type
8584    }
8585
8586    #[inline]
8587    fn next(&self) -> *const c_void {
8588        self.next
8589    }
8590}
8591
8592unsafe impl OutputChainStruct for PhysicalDeviceDiscardRectanglePropertiesEXT {
8593    #[inline]
8594    fn next_mut(&self) -> *mut c_void {
8595        self.next
8596    }
8597}
8598
8599unsafe impl InputChainStruct for PhysicalDeviceDisplacementMicromapFeaturesNV {
8600    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV;
8601
8602    #[inline]
8603    fn s_type(&self) -> StructureType {
8604        self.s_type
8605    }
8606
8607    #[inline]
8608    fn next(&self) -> *const c_void {
8609        self.next
8610    }
8611}
8612
8613unsafe impl OutputChainStruct for PhysicalDeviceDisplacementMicromapFeaturesNV {
8614    #[inline]
8615    fn next_mut(&self) -> *mut c_void {
8616        self.next
8617    }
8618}
8619
8620unsafe impl InputChainStruct for PhysicalDeviceDisplacementMicromapPropertiesNV {
8621    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV;
8622
8623    #[inline]
8624    fn s_type(&self) -> StructureType {
8625        self.s_type
8626    }
8627
8628    #[inline]
8629    fn next(&self) -> *const c_void {
8630        self.next
8631    }
8632}
8633
8634unsafe impl OutputChainStruct for PhysicalDeviceDisplacementMicromapPropertiesNV {
8635    #[inline]
8636    fn next_mut(&self) -> *mut c_void {
8637        self.next
8638    }
8639}
8640
8641unsafe impl InputChainStruct for PhysicalDeviceDriverProperties {
8642    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES;
8643
8644    #[inline]
8645    fn s_type(&self) -> StructureType {
8646        self.s_type
8647    }
8648
8649    #[inline]
8650    fn next(&self) -> *const c_void {
8651        self.next
8652    }
8653}
8654
8655unsafe impl OutputChainStruct for PhysicalDeviceDriverProperties {
8656    #[inline]
8657    fn next_mut(&self) -> *mut c_void {
8658        self.next
8659    }
8660}
8661
8662unsafe impl InputChainStruct for PhysicalDeviceDrmPropertiesEXT {
8663    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
8664
8665    #[inline]
8666    fn s_type(&self) -> StructureType {
8667        self.s_type
8668    }
8669
8670    #[inline]
8671    fn next(&self) -> *const c_void {
8672        self.next
8673    }
8674}
8675
8676unsafe impl OutputChainStruct for PhysicalDeviceDrmPropertiesEXT {
8677    #[inline]
8678    fn next_mut(&self) -> *mut c_void {
8679        self.next
8680    }
8681}
8682
8683unsafe impl InputChainStruct for PhysicalDeviceDynamicRenderingFeatures {
8684    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
8685
8686    #[inline]
8687    fn s_type(&self) -> StructureType {
8688        self.s_type
8689    }
8690
8691    #[inline]
8692    fn next(&self) -> *const c_void {
8693        self.next
8694    }
8695}
8696
8697unsafe impl OutputChainStruct for PhysicalDeviceDynamicRenderingFeatures {
8698    #[inline]
8699    fn next_mut(&self) -> *mut c_void {
8700        self.next
8701    }
8702}
8703
8704unsafe impl InputChainStruct for PhysicalDeviceDynamicRenderingLocalReadFeatures {
8705    const TYPE: StructureType =
8706        StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES;
8707
8708    #[inline]
8709    fn s_type(&self) -> StructureType {
8710        self.s_type
8711    }
8712
8713    #[inline]
8714    fn next(&self) -> *const c_void {
8715        self.next
8716    }
8717}
8718
8719unsafe impl OutputChainStruct for PhysicalDeviceDynamicRenderingLocalReadFeatures {
8720    #[inline]
8721    fn next_mut(&self) -> *mut c_void {
8722        self.next
8723    }
8724}
8725
8726unsafe impl InputChainStruct for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
8727    const TYPE: StructureType =
8728        StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT;
8729
8730    #[inline]
8731    fn s_type(&self) -> StructureType {
8732        self.s_type
8733    }
8734
8735    #[inline]
8736    fn next(&self) -> *const c_void {
8737        self.next
8738    }
8739}
8740
8741unsafe impl OutputChainStruct for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
8742    #[inline]
8743    fn next_mut(&self) -> *mut c_void {
8744        self.next
8745    }
8746}
8747
8748unsafe impl InputChainStruct for PhysicalDeviceExclusiveScissorFeaturesNV {
8749    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
8750
8751    #[inline]
8752    fn s_type(&self) -> StructureType {
8753        self.s_type
8754    }
8755
8756    #[inline]
8757    fn next(&self) -> *const c_void {
8758        self.next
8759    }
8760}
8761
8762unsafe impl OutputChainStruct for PhysicalDeviceExclusiveScissorFeaturesNV {
8763    #[inline]
8764    fn next_mut(&self) -> *mut c_void {
8765        self.next
8766    }
8767}
8768
8769unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
8770    const TYPE: StructureType =
8771        StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
8772
8773    #[inline]
8774    fn s_type(&self) -> StructureType {
8775        self.s_type
8776    }
8777
8778    #[inline]
8779    fn next(&self) -> *const c_void {
8780        self.next
8781    }
8782}
8783
8784unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
8785    #[inline]
8786    fn next_mut(&self) -> *mut c_void {
8787        self.next
8788    }
8789}
8790
8791unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
8792    const TYPE: StructureType =
8793        StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
8794
8795    #[inline]
8796    fn s_type(&self) -> StructureType {
8797        self.s_type
8798    }
8799
8800    #[inline]
8801    fn next(&self) -> *const c_void {
8802        self.next
8803    }
8804}
8805
8806unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
8807    #[inline]
8808    fn next_mut(&self) -> *mut c_void {
8809        self.next
8810    }
8811}
8812
8813unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
8814    const TYPE: StructureType =
8815        StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT;
8816
8817    #[inline]
8818    fn s_type(&self) -> StructureType {
8819        self.s_type
8820    }
8821
8822    #[inline]
8823    fn next(&self) -> *const c_void {
8824        self.next
8825    }
8826}
8827
8828unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
8829    #[inline]
8830    fn next_mut(&self) -> *mut c_void {
8831        self.next
8832    }
8833}
8834
8835unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
8836    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
8837
8838    #[inline]
8839    fn s_type(&self) -> StructureType {
8840        self.s_type
8841    }
8842
8843    #[inline]
8844    fn next(&self) -> *const c_void {
8845        self.next
8846    }
8847}
8848
8849unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
8850    #[inline]
8851    fn next_mut(&self) -> *mut c_void {
8852        self.next
8853    }
8854}
8855
8856unsafe impl InputChainStruct for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
8857    const TYPE: StructureType =
8858        StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV;
8859
8860    #[inline]
8861    fn s_type(&self) -> StructureType {
8862        self.s_type
8863    }
8864
8865    #[inline]
8866    fn next(&self) -> *const c_void {
8867        self.next
8868    }
8869}
8870
8871unsafe impl OutputChainStruct for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
8872    #[inline]
8873    fn next_mut(&self) -> *mut c_void {
8874        self.next
8875    }
8876}
8877
8878unsafe impl InputChainStruct for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
8879    const TYPE: StructureType =
8880        StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV;
8881
8882    #[inline]
8883    fn s_type(&self) -> StructureType {
8884        self.s_type
8885    }
8886
8887    #[inline]
8888    fn next(&self) -> *const c_void {
8889        self.next
8890    }
8891}
8892
8893unsafe impl OutputChainStruct for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
8894    #[inline]
8895    fn next_mut(&self) -> *mut c_void {
8896        self.next
8897    }
8898}
8899
8900unsafe impl InputChainStruct for PhysicalDeviceExternalBufferInfo {
8901    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
8902
8903    #[inline]
8904    fn s_type(&self) -> StructureType {
8905        self.s_type
8906    }
8907
8908    #[inline]
8909    fn next(&self) -> *const c_void {
8910        self.next
8911    }
8912}
8913
8914unsafe impl InputChainStruct for PhysicalDeviceExternalComputeQueuePropertiesNV {
8915    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV;
8916
8917    #[inline]
8918    fn s_type(&self) -> StructureType {
8919        self.s_type
8920    }
8921
8922    #[inline]
8923    fn next(&self) -> *const c_void {
8924        self.next
8925    }
8926}
8927
8928unsafe impl OutputChainStruct for PhysicalDeviceExternalComputeQueuePropertiesNV {
8929    #[inline]
8930    fn next_mut(&self) -> *mut c_void {
8931        self.next
8932    }
8933}
8934
8935unsafe impl InputChainStruct for PhysicalDeviceExternalFenceInfo {
8936    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
8937
8938    #[inline]
8939    fn s_type(&self) -> StructureType {
8940        self.s_type
8941    }
8942
8943    #[inline]
8944    fn next(&self) -> *const c_void {
8945        self.next
8946    }
8947}
8948
8949unsafe impl InputChainStruct for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
8950    const TYPE: StructureType =
8951        StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID;
8952
8953    #[inline]
8954    fn s_type(&self) -> StructureType {
8955        self.s_type
8956    }
8957
8958    #[inline]
8959    fn next(&self) -> *const c_void {
8960        self.next
8961    }
8962}
8963
8964unsafe impl OutputChainStruct for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
8965    #[inline]
8966    fn next_mut(&self) -> *mut c_void {
8967        self.next
8968    }
8969}
8970
8971unsafe impl InputChainStruct for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
8972    const TYPE: StructureType =
8973        StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID;
8974
8975    #[inline]
8976    fn s_type(&self) -> StructureType {
8977        self.s_type
8978    }
8979
8980    #[inline]
8981    fn next(&self) -> *const c_void {
8982        self.next
8983    }
8984}
8985
8986unsafe impl OutputChainStruct for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
8987    #[inline]
8988    fn next_mut(&self) -> *mut c_void {
8989        self.next
8990    }
8991}
8992
8993unsafe impl InputChainStruct for PhysicalDeviceExternalImageFormatInfo {
8994    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
8995
8996    #[inline]
8997    fn s_type(&self) -> StructureType {
8998        self.s_type
8999    }
9000
9001    #[inline]
9002    fn next(&self) -> *const c_void {
9003        self.next
9004    }
9005}
9006
9007unsafe impl InputChainStruct for PhysicalDeviceExternalMemoryHostPropertiesEXT {
9008    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
9009
9010    #[inline]
9011    fn s_type(&self) -> StructureType {
9012        self.s_type
9013    }
9014
9015    #[inline]
9016    fn next(&self) -> *const c_void {
9017        self.next
9018    }
9019}
9020
9021unsafe impl OutputChainStruct for PhysicalDeviceExternalMemoryHostPropertiesEXT {
9022    #[inline]
9023    fn next_mut(&self) -> *mut c_void {
9024        self.next
9025    }
9026}
9027
9028unsafe impl InputChainStruct for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
9029    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
9030
9031    #[inline]
9032    fn s_type(&self) -> StructureType {
9033        self.s_type
9034    }
9035
9036    #[inline]
9037    fn next(&self) -> *const c_void {
9038        self.next
9039    }
9040}
9041
9042unsafe impl OutputChainStruct for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
9043    #[inline]
9044    fn next_mut(&self) -> *mut c_void {
9045        self.next
9046    }
9047}
9048
9049unsafe impl InputChainStruct for PhysicalDeviceExternalMemorySciBufFeaturesNV {
9050    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV;
9051
9052    #[inline]
9053    fn s_type(&self) -> StructureType {
9054        self.s_type
9055    }
9056
9057    #[inline]
9058    fn next(&self) -> *const c_void {
9059        self.next
9060    }
9061}
9062
9063unsafe impl OutputChainStruct for PhysicalDeviceExternalMemorySciBufFeaturesNV {
9064    #[inline]
9065    fn next_mut(&self) -> *mut c_void {
9066        self.next
9067    }
9068}
9069
9070unsafe impl InputChainStruct for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
9071    const TYPE: StructureType =
9072        StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX;
9073
9074    #[inline]
9075    fn s_type(&self) -> StructureType {
9076        self.s_type
9077    }
9078
9079    #[inline]
9080    fn next(&self) -> *const c_void {
9081        self.next
9082    }
9083}
9084
9085unsafe impl OutputChainStruct for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
9086    #[inline]
9087    fn next_mut(&self) -> *mut c_void {
9088        self.next
9089    }
9090}
9091
9092unsafe impl InputChainStruct for PhysicalDeviceExternalSciSync2FeaturesNV {
9093    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV;
9094
9095    #[inline]
9096    fn s_type(&self) -> StructureType {
9097        self.s_type
9098    }
9099
9100    #[inline]
9101    fn next(&self) -> *const c_void {
9102        self.next
9103    }
9104}
9105
9106unsafe impl OutputChainStruct for PhysicalDeviceExternalSciSync2FeaturesNV {
9107    #[inline]
9108    fn next_mut(&self) -> *mut c_void {
9109        self.next
9110    }
9111}
9112
9113unsafe impl InputChainStruct for PhysicalDeviceExternalSciSyncFeaturesNV {
9114    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV;
9115
9116    #[inline]
9117    fn s_type(&self) -> StructureType {
9118        self.s_type
9119    }
9120
9121    #[inline]
9122    fn next(&self) -> *const c_void {
9123        self.next
9124    }
9125}
9126
9127unsafe impl OutputChainStruct for PhysicalDeviceExternalSciSyncFeaturesNV {
9128    #[inline]
9129    fn next_mut(&self) -> *mut c_void {
9130        self.next
9131    }
9132}
9133
9134unsafe impl InputChainStruct for PhysicalDeviceExternalSemaphoreInfo {
9135    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
9136
9137    #[inline]
9138    fn s_type(&self) -> StructureType {
9139        self.s_type
9140    }
9141
9142    #[inline]
9143    fn next(&self) -> *const c_void {
9144        self.next
9145    }
9146}
9147
9148unsafe impl InputChainStruct for PhysicalDeviceExternalTensorInfoARM {
9149    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM;
9150
9151    #[inline]
9152    fn s_type(&self) -> StructureType {
9153        self.s_type
9154    }
9155
9156    #[inline]
9157    fn next(&self) -> *const c_void {
9158        self.next
9159    }
9160}
9161
9162unsafe impl InputChainStruct for PhysicalDeviceFaultFeaturesEXT {
9163    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT;
9164
9165    #[inline]
9166    fn s_type(&self) -> StructureType {
9167        self.s_type
9168    }
9169
9170    #[inline]
9171    fn next(&self) -> *const c_void {
9172        self.next
9173    }
9174}
9175
9176unsafe impl OutputChainStruct for PhysicalDeviceFaultFeaturesEXT {
9177    #[inline]
9178    fn next_mut(&self) -> *mut c_void {
9179        self.next
9180    }
9181}
9182
9183unsafe impl InputChainStruct for PhysicalDeviceFeatures2 {
9184    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2;
9185
9186    #[inline]
9187    fn s_type(&self) -> StructureType {
9188        self.s_type
9189    }
9190
9191    #[inline]
9192    fn next(&self) -> *const c_void {
9193        self.next
9194    }
9195}
9196
9197unsafe impl OutputChainStruct for PhysicalDeviceFeatures2 {
9198    #[inline]
9199    fn next_mut(&self) -> *mut c_void {
9200        self.next
9201    }
9202}
9203
9204unsafe impl InputChainStruct for PhysicalDeviceFloatControlsProperties {
9205    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
9206
9207    #[inline]
9208    fn s_type(&self) -> StructureType {
9209        self.s_type
9210    }
9211
9212    #[inline]
9213    fn next(&self) -> *const c_void {
9214        self.next
9215    }
9216}
9217
9218unsafe impl OutputChainStruct for PhysicalDeviceFloatControlsProperties {
9219    #[inline]
9220    fn next_mut(&self) -> *mut c_void {
9221        self.next
9222    }
9223}
9224
9225unsafe impl InputChainStruct for PhysicalDeviceFormatPackFeaturesARM {
9226    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM;
9227
9228    #[inline]
9229    fn s_type(&self) -> StructureType {
9230        self.s_type
9231    }
9232
9233    #[inline]
9234    fn next(&self) -> *const c_void {
9235        self.next
9236    }
9237}
9238
9239unsafe impl OutputChainStruct for PhysicalDeviceFormatPackFeaturesARM {
9240    #[inline]
9241    fn next_mut(&self) -> *mut c_void {
9242        self.next
9243    }
9244}
9245
9246unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
9247    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
9248
9249    #[inline]
9250    fn s_type(&self) -> StructureType {
9251        self.s_type
9252    }
9253
9254    #[inline]
9255    fn next(&self) -> *const c_void {
9256        self.next
9257    }
9258}
9259
9260unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
9261    #[inline]
9262    fn next_mut(&self) -> *mut c_void {
9263        self.next
9264    }
9265}
9266
9267unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
9268    const TYPE: StructureType =
9269        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
9270
9271    #[inline]
9272    fn s_type(&self) -> StructureType {
9273        self.s_type
9274    }
9275
9276    #[inline]
9277    fn next(&self) -> *const c_void {
9278        self.next
9279    }
9280}
9281
9282unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
9283    #[inline]
9284    fn next_mut(&self) -> *mut c_void {
9285        self.next
9286    }
9287}
9288
9289unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapFeaturesEXT {
9290    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
9291
9292    #[inline]
9293    fn s_type(&self) -> StructureType {
9294        self.s_type
9295    }
9296
9297    #[inline]
9298    fn next(&self) -> *const c_void {
9299        self.next
9300    }
9301}
9302
9303unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapFeaturesEXT {
9304    #[inline]
9305    fn next_mut(&self) -> *mut c_void {
9306        self.next
9307    }
9308}
9309
9310unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
9311    const TYPE: StructureType =
9312        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE;
9313
9314    #[inline]
9315    fn s_type(&self) -> StructureType {
9316        self.s_type
9317    }
9318
9319    #[inline]
9320    fn next(&self) -> *const c_void {
9321        self.next
9322    }
9323}
9324
9325unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
9326    #[inline]
9327    fn next_mut(&self) -> *mut c_void {
9328        self.next
9329    }
9330}
9331
9332unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
9333    const TYPE: StructureType =
9334        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE;
9335
9336    #[inline]
9337    fn s_type(&self) -> StructureType {
9338        self.s_type
9339    }
9340
9341    #[inline]
9342    fn next(&self) -> *const c_void {
9343        self.next
9344    }
9345}
9346
9347unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
9348    #[inline]
9349    fn next_mut(&self) -> *mut c_void {
9350        self.next
9351    }
9352}
9353
9354unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
9355    const TYPE: StructureType =
9356        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT;
9357
9358    #[inline]
9359    fn s_type(&self) -> StructureType {
9360        self.s_type
9361    }
9362
9363    #[inline]
9364    fn next(&self) -> *const c_void {
9365        self.next
9366    }
9367}
9368
9369unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
9370    #[inline]
9371    fn next_mut(&self) -> *mut c_void {
9372        self.next
9373    }
9374}
9375
9376unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
9377    const TYPE: StructureType =
9378        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT;
9379
9380    #[inline]
9381    fn s_type(&self) -> StructureType {
9382        self.s_type
9383    }
9384
9385    #[inline]
9386    fn next(&self) -> *const c_void {
9387        self.next
9388    }
9389}
9390
9391unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
9392    #[inline]
9393    fn next_mut(&self) -> *mut c_void {
9394        self.next
9395    }
9396}
9397
9398unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapPropertiesEXT {
9399    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
9400
9401    #[inline]
9402    fn s_type(&self) -> StructureType {
9403        self.s_type
9404    }
9405
9406    #[inline]
9407    fn next(&self) -> *const c_void {
9408        self.next
9409    }
9410}
9411
9412unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapPropertiesEXT {
9413    #[inline]
9414    fn next_mut(&self) -> *mut c_void {
9415        self.next
9416    }
9417}
9418
9419unsafe impl InputChainStruct for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
9420    const TYPE: StructureType =
9421        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
9422
9423    #[inline]
9424    fn s_type(&self) -> StructureType {
9425        self.s_type
9426    }
9427
9428    #[inline]
9429    fn next(&self) -> *const c_void {
9430        self.next
9431    }
9432}
9433
9434unsafe impl OutputChainStruct for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
9435    #[inline]
9436    fn next_mut(&self) -> *mut c_void {
9437        self.next
9438    }
9439}
9440
9441unsafe impl InputChainStruct for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
9442    const TYPE: StructureType =
9443        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR;
9444
9445    #[inline]
9446    fn s_type(&self) -> StructureType {
9447        self.s_type
9448    }
9449
9450    #[inline]
9451    fn next(&self) -> *const c_void {
9452        self.next
9453    }
9454}
9455
9456unsafe impl OutputChainStruct for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
9457    #[inline]
9458    fn next_mut(&self) -> *mut c_void {
9459        self.next
9460    }
9461}
9462
9463unsafe impl InputChainStruct for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
9464    const TYPE: StructureType =
9465        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
9466
9467    #[inline]
9468    fn s_type(&self) -> StructureType {
9469        self.s_type
9470    }
9471
9472    #[inline]
9473    fn next(&self) -> *const c_void {
9474        self.next
9475    }
9476}
9477
9478unsafe impl OutputChainStruct for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
9479    #[inline]
9480    fn next_mut(&self) -> *mut c_void {
9481        self.next
9482    }
9483}
9484
9485unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
9486    const TYPE: StructureType =
9487        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
9488
9489    #[inline]
9490    fn s_type(&self) -> StructureType {
9491        self.s_type
9492    }
9493
9494    #[inline]
9495    fn next(&self) -> *const c_void {
9496        self.next
9497    }
9498}
9499
9500unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
9501    #[inline]
9502    fn next_mut(&self) -> *mut c_void {
9503        self.next
9504    }
9505}
9506
9507unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
9508    const TYPE: StructureType =
9509        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
9510
9511    #[inline]
9512    fn s_type(&self) -> StructureType {
9513        self.s_type
9514    }
9515
9516    #[inline]
9517    fn next(&self) -> *const c_void {
9518        self.next
9519    }
9520}
9521
9522unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
9523    #[inline]
9524    fn next_mut(&self) -> *mut c_void {
9525        self.next
9526    }
9527}
9528
9529unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateFeaturesKHR {
9530    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
9531
9532    #[inline]
9533    fn s_type(&self) -> StructureType {
9534        self.s_type
9535    }
9536
9537    #[inline]
9538    fn next(&self) -> *const c_void {
9539        self.next
9540    }
9541}
9542
9543unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateFeaturesKHR {
9544    #[inline]
9545    fn next_mut(&self) -> *mut c_void {
9546        self.next
9547    }
9548}
9549
9550unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateKHR {
9551    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
9552
9553    #[inline]
9554    fn s_type(&self) -> StructureType {
9555        self.s_type
9556    }
9557
9558    #[inline]
9559    fn next(&self) -> *const c_void {
9560        self.next
9561    }
9562}
9563
9564unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateKHR {
9565    #[inline]
9566    fn next_mut(&self) -> *mut c_void {
9567        self.next
9568    }
9569}
9570
9571unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRatePropertiesKHR {
9572    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
9573
9574    #[inline]
9575    fn s_type(&self) -> StructureType {
9576        self.s_type
9577    }
9578
9579    #[inline]
9580    fn next(&self) -> *const c_void {
9581        self.next
9582    }
9583}
9584
9585unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRatePropertiesKHR {
9586    #[inline]
9587    fn next_mut(&self) -> *mut c_void {
9588        self.next
9589    }
9590}
9591
9592unsafe impl InputChainStruct for PhysicalDeviceFrameBoundaryFeaturesEXT {
9593    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT;
9594
9595    #[inline]
9596    fn s_type(&self) -> StructureType {
9597        self.s_type
9598    }
9599
9600    #[inline]
9601    fn next(&self) -> *const c_void {
9602        self.next
9603    }
9604}
9605
9606unsafe impl OutputChainStruct for PhysicalDeviceFrameBoundaryFeaturesEXT {
9607    #[inline]
9608    fn next_mut(&self) -> *mut c_void {
9609        self.next
9610    }
9611}
9612
9613unsafe impl InputChainStruct for PhysicalDeviceGlobalPriorityQueryFeatures {
9614    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES;
9615
9616    #[inline]
9617    fn s_type(&self) -> StructureType {
9618        self.s_type
9619    }
9620
9621    #[inline]
9622    fn next(&self) -> *const c_void {
9623        self.next
9624    }
9625}
9626
9627unsafe impl OutputChainStruct for PhysicalDeviceGlobalPriorityQueryFeatures {
9628    #[inline]
9629    fn next_mut(&self) -> *mut c_void {
9630        self.next
9631    }
9632}
9633
9634unsafe impl InputChainStruct for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
9635    const TYPE: StructureType =
9636        StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
9637
9638    #[inline]
9639    fn s_type(&self) -> StructureType {
9640        self.s_type
9641    }
9642
9643    #[inline]
9644    fn next(&self) -> *const c_void {
9645        self.next
9646    }
9647}
9648
9649unsafe impl OutputChainStruct for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
9650    #[inline]
9651    fn next_mut(&self) -> *mut c_void {
9652        self.next
9653    }
9654}
9655
9656unsafe impl InputChainStruct for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
9657    const TYPE: StructureType =
9658        StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT;
9659
9660    #[inline]
9661    fn s_type(&self) -> StructureType {
9662        self.s_type
9663    }
9664
9665    #[inline]
9666    fn next(&self) -> *const c_void {
9667        self.next
9668    }
9669}
9670
9671unsafe impl OutputChainStruct for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
9672    #[inline]
9673    fn next_mut(&self) -> *mut c_void {
9674        self.next
9675    }
9676}
9677
9678unsafe impl InputChainStruct for PhysicalDeviceGroupProperties {
9679    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GROUP_PROPERTIES;
9680
9681    #[inline]
9682    fn s_type(&self) -> StructureType {
9683        self.s_type
9684    }
9685
9686    #[inline]
9687    fn next(&self) -> *const c_void {
9688        self.next
9689    }
9690}
9691
9692unsafe impl OutputChainStruct for PhysicalDeviceGroupProperties {
9693    #[inline]
9694    fn next_mut(&self) -> *mut c_void {
9695        self.next
9696    }
9697}
9698
9699unsafe impl InputChainStruct for PhysicalDeviceHdrVividFeaturesHUAWEI {
9700    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI;
9701
9702    #[inline]
9703    fn s_type(&self) -> StructureType {
9704        self.s_type
9705    }
9706
9707    #[inline]
9708    fn next(&self) -> *const c_void {
9709        self.next
9710    }
9711}
9712
9713unsafe impl OutputChainStruct for PhysicalDeviceHdrVividFeaturesHUAWEI {
9714    #[inline]
9715    fn next_mut(&self) -> *mut c_void {
9716        self.next
9717    }
9718}
9719
9720unsafe impl InputChainStruct for PhysicalDeviceHostImageCopyFeatures {
9721    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES;
9722
9723    #[inline]
9724    fn s_type(&self) -> StructureType {
9725        self.s_type
9726    }
9727
9728    #[inline]
9729    fn next(&self) -> *const c_void {
9730        self.next
9731    }
9732}
9733
9734unsafe impl OutputChainStruct for PhysicalDeviceHostImageCopyFeatures {
9735    #[inline]
9736    fn next_mut(&self) -> *mut c_void {
9737        self.next
9738    }
9739}
9740
9741unsafe impl InputChainStruct for PhysicalDeviceHostImageCopyProperties {
9742    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES;
9743
9744    #[inline]
9745    fn s_type(&self) -> StructureType {
9746        self.s_type
9747    }
9748
9749    #[inline]
9750    fn next(&self) -> *const c_void {
9751        self.next
9752    }
9753}
9754
9755unsafe impl OutputChainStruct for PhysicalDeviceHostImageCopyProperties {
9756    #[inline]
9757    fn next_mut(&self) -> *mut c_void {
9758        self.next
9759    }
9760}
9761
9762unsafe impl InputChainStruct for PhysicalDeviceHostQueryResetFeatures {
9763    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
9764
9765    #[inline]
9766    fn s_type(&self) -> StructureType {
9767        self.s_type
9768    }
9769
9770    #[inline]
9771    fn next(&self) -> *const c_void {
9772        self.next
9773    }
9774}
9775
9776unsafe impl OutputChainStruct for PhysicalDeviceHostQueryResetFeatures {
9777    #[inline]
9778    fn next_mut(&self) -> *mut c_void {
9779        self.next
9780    }
9781}
9782
9783unsafe impl InputChainStruct for PhysicalDeviceIDProperties {
9784    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ID_PROPERTIES;
9785
9786    #[inline]
9787    fn s_type(&self) -> StructureType {
9788        self.s_type
9789    }
9790
9791    #[inline]
9792    fn next(&self) -> *const c_void {
9793        self.next
9794    }
9795}
9796
9797unsafe impl OutputChainStruct for PhysicalDeviceIDProperties {
9798    #[inline]
9799    fn next_mut(&self) -> *mut c_void {
9800        self.next
9801    }
9802}
9803
9804unsafe impl InputChainStruct for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
9805    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT;
9806
9807    #[inline]
9808    fn s_type(&self) -> StructureType {
9809        self.s_type
9810    }
9811
9812    #[inline]
9813    fn next(&self) -> *const c_void {
9814        self.next
9815    }
9816}
9817
9818unsafe impl OutputChainStruct for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
9819    #[inline]
9820    fn next_mut(&self) -> *mut c_void {
9821        self.next
9822    }
9823}
9824
9825unsafe impl InputChainStruct for PhysicalDeviceImageAlignmentControlFeaturesMESA {
9826    const TYPE: StructureType =
9827        StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA;
9828
9829    #[inline]
9830    fn s_type(&self) -> StructureType {
9831        self.s_type
9832    }
9833
9834    #[inline]
9835    fn next(&self) -> *const c_void {
9836        self.next
9837    }
9838}
9839
9840unsafe impl OutputChainStruct for PhysicalDeviceImageAlignmentControlFeaturesMESA {
9841    #[inline]
9842    fn next_mut(&self) -> *mut c_void {
9843        self.next
9844    }
9845}
9846
9847unsafe impl InputChainStruct for PhysicalDeviceImageAlignmentControlPropertiesMESA {
9848    const TYPE: StructureType =
9849        StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA;
9850
9851    #[inline]
9852    fn s_type(&self) -> StructureType {
9853        self.s_type
9854    }
9855
9856    #[inline]
9857    fn next(&self) -> *const c_void {
9858        self.next
9859    }
9860}
9861
9862unsafe impl OutputChainStruct for PhysicalDeviceImageAlignmentControlPropertiesMESA {
9863    #[inline]
9864    fn next_mut(&self) -> *mut c_void {
9865        self.next
9866    }
9867}
9868
9869unsafe impl InputChainStruct for PhysicalDeviceImageCompressionControlFeaturesEXT {
9870    const TYPE: StructureType =
9871        StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT;
9872
9873    #[inline]
9874    fn s_type(&self) -> StructureType {
9875        self.s_type
9876    }
9877
9878    #[inline]
9879    fn next(&self) -> *const c_void {
9880        self.next
9881    }
9882}
9883
9884unsafe impl OutputChainStruct for PhysicalDeviceImageCompressionControlFeaturesEXT {
9885    #[inline]
9886    fn next_mut(&self) -> *mut c_void {
9887        self.next
9888    }
9889}
9890
9891unsafe impl InputChainStruct for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
9892    const TYPE: StructureType =
9893        StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT;
9894
9895    #[inline]
9896    fn s_type(&self) -> StructureType {
9897        self.s_type
9898    }
9899
9900    #[inline]
9901    fn next(&self) -> *const c_void {
9902        self.next
9903    }
9904}
9905
9906unsafe impl OutputChainStruct for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
9907    #[inline]
9908    fn next_mut(&self) -> *mut c_void {
9909        self.next
9910    }
9911}
9912
9913unsafe impl InputChainStruct for PhysicalDeviceImageDrmFormatModifierInfoEXT {
9914    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
9915
9916    #[inline]
9917    fn s_type(&self) -> StructureType {
9918        self.s_type
9919    }
9920
9921    #[inline]
9922    fn next(&self) -> *const c_void {
9923        self.next
9924    }
9925}
9926
9927unsafe impl InputChainStruct for PhysicalDeviceImageFormatInfo2 {
9928    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
9929
9930    #[inline]
9931    fn s_type(&self) -> StructureType {
9932        self.s_type
9933    }
9934
9935    #[inline]
9936    fn next(&self) -> *const c_void {
9937        self.next
9938    }
9939}
9940
9941unsafe impl InputChainStruct for PhysicalDeviceImageProcessing2FeaturesQCOM {
9942    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM;
9943
9944    #[inline]
9945    fn s_type(&self) -> StructureType {
9946        self.s_type
9947    }
9948
9949    #[inline]
9950    fn next(&self) -> *const c_void {
9951        self.next
9952    }
9953}
9954
9955unsafe impl OutputChainStruct for PhysicalDeviceImageProcessing2FeaturesQCOM {
9956    #[inline]
9957    fn next_mut(&self) -> *mut c_void {
9958        self.next
9959    }
9960}
9961
9962unsafe impl InputChainStruct for PhysicalDeviceImageProcessing2PropertiesQCOM {
9963    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM;
9964
9965    #[inline]
9966    fn s_type(&self) -> StructureType {
9967        self.s_type
9968    }
9969
9970    #[inline]
9971    fn next(&self) -> *const c_void {
9972        self.next
9973    }
9974}
9975
9976unsafe impl OutputChainStruct for PhysicalDeviceImageProcessing2PropertiesQCOM {
9977    #[inline]
9978    fn next_mut(&self) -> *mut c_void {
9979        self.next
9980    }
9981}
9982
9983unsafe impl InputChainStruct for PhysicalDeviceImageProcessingFeaturesQCOM {
9984    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM;
9985
9986    #[inline]
9987    fn s_type(&self) -> StructureType {
9988        self.s_type
9989    }
9990
9991    #[inline]
9992    fn next(&self) -> *const c_void {
9993        self.next
9994    }
9995}
9996
9997unsafe impl OutputChainStruct for PhysicalDeviceImageProcessingFeaturesQCOM {
9998    #[inline]
9999    fn next_mut(&self) -> *mut c_void {
10000        self.next
10001    }
10002}
10003
10004unsafe impl InputChainStruct for PhysicalDeviceImageProcessingPropertiesQCOM {
10005    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM;
10006
10007    #[inline]
10008    fn s_type(&self) -> StructureType {
10009        self.s_type
10010    }
10011
10012    #[inline]
10013    fn next(&self) -> *const c_void {
10014        self.next
10015    }
10016}
10017
10018unsafe impl OutputChainStruct for PhysicalDeviceImageProcessingPropertiesQCOM {
10019    #[inline]
10020    fn next_mut(&self) -> *mut c_void {
10021        self.next
10022    }
10023}
10024
10025unsafe impl InputChainStruct for PhysicalDeviceImageRobustnessFeatures {
10026    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
10027
10028    #[inline]
10029    fn s_type(&self) -> StructureType {
10030        self.s_type
10031    }
10032
10033    #[inline]
10034    fn next(&self) -> *const c_void {
10035        self.next
10036    }
10037}
10038
10039unsafe impl OutputChainStruct for PhysicalDeviceImageRobustnessFeatures {
10040    #[inline]
10041    fn next_mut(&self) -> *mut c_void {
10042        self.next
10043    }
10044}
10045
10046unsafe impl InputChainStruct for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
10047    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT;
10048
10049    #[inline]
10050    fn s_type(&self) -> StructureType {
10051        self.s_type
10052    }
10053
10054    #[inline]
10055    fn next(&self) -> *const c_void {
10056        self.next
10057    }
10058}
10059
10060unsafe impl OutputChainStruct for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
10061    #[inline]
10062    fn next_mut(&self) -> *mut c_void {
10063        self.next
10064    }
10065}
10066
10067unsafe impl InputChainStruct for PhysicalDeviceImageViewImageFormatInfoEXT {
10068    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
10069
10070    #[inline]
10071    fn s_type(&self) -> StructureType {
10072        self.s_type
10073    }
10074
10075    #[inline]
10076    fn next(&self) -> *const c_void {
10077        self.next
10078    }
10079}
10080
10081unsafe impl OutputChainStruct for PhysicalDeviceImageViewImageFormatInfoEXT {
10082    #[inline]
10083    fn next_mut(&self) -> *mut c_void {
10084        self.next
10085    }
10086}
10087
10088unsafe impl InputChainStruct for PhysicalDeviceImageViewMinLodFeaturesEXT {
10089    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT;
10090
10091    #[inline]
10092    fn s_type(&self) -> StructureType {
10093        self.s_type
10094    }
10095
10096    #[inline]
10097    fn next(&self) -> *const c_void {
10098        self.next
10099    }
10100}
10101
10102unsafe impl OutputChainStruct for PhysicalDeviceImageViewMinLodFeaturesEXT {
10103    #[inline]
10104    fn next_mut(&self) -> *mut c_void {
10105        self.next
10106    }
10107}
10108
10109unsafe impl InputChainStruct for PhysicalDeviceImagelessFramebufferFeatures {
10110    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
10111
10112    #[inline]
10113    fn s_type(&self) -> StructureType {
10114        self.s_type
10115    }
10116
10117    #[inline]
10118    fn next(&self) -> *const c_void {
10119        self.next
10120    }
10121}
10122
10123unsafe impl OutputChainStruct for PhysicalDeviceImagelessFramebufferFeatures {
10124    #[inline]
10125    fn next_mut(&self) -> *mut c_void {
10126        self.next
10127    }
10128}
10129
10130unsafe impl InputChainStruct for PhysicalDeviceIndexTypeUint8Features {
10131    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES;
10132
10133    #[inline]
10134    fn s_type(&self) -> StructureType {
10135        self.s_type
10136    }
10137
10138    #[inline]
10139    fn next(&self) -> *const c_void {
10140        self.next
10141    }
10142}
10143
10144unsafe impl OutputChainStruct for PhysicalDeviceIndexTypeUint8Features {
10145    #[inline]
10146    fn next_mut(&self) -> *mut c_void {
10147        self.next
10148    }
10149}
10150
10151unsafe impl InputChainStruct for PhysicalDeviceInheritedViewportScissorFeaturesNV {
10152    const TYPE: StructureType =
10153        StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
10154
10155    #[inline]
10156    fn s_type(&self) -> StructureType {
10157        self.s_type
10158    }
10159
10160    #[inline]
10161    fn next(&self) -> *const c_void {
10162        self.next
10163    }
10164}
10165
10166unsafe impl OutputChainStruct for PhysicalDeviceInheritedViewportScissorFeaturesNV {
10167    #[inline]
10168    fn next_mut(&self) -> *mut c_void {
10169        self.next
10170    }
10171}
10172
10173unsafe impl InputChainStruct for PhysicalDeviceInlineUniformBlockFeatures {
10174    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
10175
10176    #[inline]
10177    fn s_type(&self) -> StructureType {
10178        self.s_type
10179    }
10180
10181    #[inline]
10182    fn next(&self) -> *const c_void {
10183        self.next
10184    }
10185}
10186
10187unsafe impl OutputChainStruct for PhysicalDeviceInlineUniformBlockFeatures {
10188    #[inline]
10189    fn next_mut(&self) -> *mut c_void {
10190        self.next
10191    }
10192}
10193
10194unsafe impl InputChainStruct for PhysicalDeviceInlineUniformBlockProperties {
10195    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
10196
10197    #[inline]
10198    fn s_type(&self) -> StructureType {
10199        self.s_type
10200    }
10201
10202    #[inline]
10203    fn next(&self) -> *const c_void {
10204        self.next
10205    }
10206}
10207
10208unsafe impl OutputChainStruct for PhysicalDeviceInlineUniformBlockProperties {
10209    #[inline]
10210    fn next_mut(&self) -> *mut c_void {
10211        self.next
10212    }
10213}
10214
10215unsafe impl InputChainStruct for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
10216    const TYPE: StructureType =
10217        StructureType::PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR;
10218
10219    #[inline]
10220    fn s_type(&self) -> StructureType {
10221        self.s_type
10222    }
10223
10224    #[inline]
10225    fn next(&self) -> *const c_void {
10226        self.next
10227    }
10228}
10229
10230unsafe impl OutputChainStruct for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
10231    #[inline]
10232    fn next_mut(&self) -> *mut c_void {
10233        self.next
10234    }
10235}
10236
10237unsafe impl InputChainStruct for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
10238    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI;
10239
10240    #[inline]
10241    fn s_type(&self) -> StructureType {
10242        self.s_type
10243    }
10244
10245    #[inline]
10246    fn next(&self) -> *const c_void {
10247        self.next
10248    }
10249}
10250
10251unsafe impl OutputChainStruct for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
10252    #[inline]
10253    fn next_mut(&self) -> *mut c_void {
10254        self.next
10255    }
10256}
10257
10258unsafe impl InputChainStruct for PhysicalDeviceLayeredApiPropertiesKHR {
10259    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR;
10260
10261    #[inline]
10262    fn s_type(&self) -> StructureType {
10263        self.s_type
10264    }
10265
10266    #[inline]
10267    fn next(&self) -> *const c_void {
10268        self.next
10269    }
10270}
10271
10272unsafe impl OutputChainStruct for PhysicalDeviceLayeredApiPropertiesKHR {
10273    #[inline]
10274    fn next_mut(&self) -> *mut c_void {
10275        self.next
10276    }
10277}
10278
10279unsafe impl InputChainStruct for PhysicalDeviceLayeredApiPropertiesListKHR {
10280    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR;
10281
10282    #[inline]
10283    fn s_type(&self) -> StructureType {
10284        self.s_type
10285    }
10286
10287    #[inline]
10288    fn next(&self) -> *const c_void {
10289        self.next
10290    }
10291}
10292
10293unsafe impl OutputChainStruct for PhysicalDeviceLayeredApiPropertiesListKHR {
10294    #[inline]
10295    fn next_mut(&self) -> *mut c_void {
10296        self.next
10297    }
10298}
10299
10300unsafe impl InputChainStruct for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
10301    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR;
10302
10303    #[inline]
10304    fn s_type(&self) -> StructureType {
10305        self.s_type
10306    }
10307
10308    #[inline]
10309    fn next(&self) -> *const c_void {
10310        self.next
10311    }
10312}
10313
10314unsafe impl OutputChainStruct for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
10315    #[inline]
10316    fn next_mut(&self) -> *mut c_void {
10317        self.next
10318    }
10319}
10320
10321unsafe impl InputChainStruct for PhysicalDeviceLayeredDriverPropertiesMSFT {
10322    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT;
10323
10324    #[inline]
10325    fn s_type(&self) -> StructureType {
10326        self.s_type
10327    }
10328
10329    #[inline]
10330    fn next(&self) -> *const c_void {
10331        self.next
10332    }
10333}
10334
10335unsafe impl OutputChainStruct for PhysicalDeviceLayeredDriverPropertiesMSFT {
10336    #[inline]
10337    fn next_mut(&self) -> *mut c_void {
10338        self.next
10339    }
10340}
10341
10342unsafe impl InputChainStruct for PhysicalDeviceLegacyDitheringFeaturesEXT {
10343    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT;
10344
10345    #[inline]
10346    fn s_type(&self) -> StructureType {
10347        self.s_type
10348    }
10349
10350    #[inline]
10351    fn next(&self) -> *const c_void {
10352        self.next
10353    }
10354}
10355
10356unsafe impl OutputChainStruct for PhysicalDeviceLegacyDitheringFeaturesEXT {
10357    #[inline]
10358    fn next_mut(&self) -> *mut c_void {
10359        self.next
10360    }
10361}
10362
10363unsafe impl InputChainStruct for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
10364    const TYPE: StructureType =
10365        StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT;
10366
10367    #[inline]
10368    fn s_type(&self) -> StructureType {
10369        self.s_type
10370    }
10371
10372    #[inline]
10373    fn next(&self) -> *const c_void {
10374        self.next
10375    }
10376}
10377
10378unsafe impl OutputChainStruct for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
10379    #[inline]
10380    fn next_mut(&self) -> *mut c_void {
10381        self.next
10382    }
10383}
10384
10385unsafe impl InputChainStruct for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
10386    const TYPE: StructureType =
10387        StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT;
10388
10389    #[inline]
10390    fn s_type(&self) -> StructureType {
10391        self.s_type
10392    }
10393
10394    #[inline]
10395    fn next(&self) -> *const c_void {
10396        self.next
10397    }
10398}
10399
10400unsafe impl OutputChainStruct for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
10401    #[inline]
10402    fn next_mut(&self) -> *mut c_void {
10403        self.next
10404    }
10405}
10406
10407unsafe impl InputChainStruct for PhysicalDeviceLineRasterizationFeatures {
10408    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES;
10409
10410    #[inline]
10411    fn s_type(&self) -> StructureType {
10412        self.s_type
10413    }
10414
10415    #[inline]
10416    fn next(&self) -> *const c_void {
10417        self.next
10418    }
10419}
10420
10421unsafe impl OutputChainStruct for PhysicalDeviceLineRasterizationFeatures {
10422    #[inline]
10423    fn next_mut(&self) -> *mut c_void {
10424        self.next
10425    }
10426}
10427
10428unsafe impl InputChainStruct for PhysicalDeviceLineRasterizationProperties {
10429    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES;
10430
10431    #[inline]
10432    fn s_type(&self) -> StructureType {
10433        self.s_type
10434    }
10435
10436    #[inline]
10437    fn next(&self) -> *const c_void {
10438        self.next
10439    }
10440}
10441
10442unsafe impl OutputChainStruct for PhysicalDeviceLineRasterizationProperties {
10443    #[inline]
10444    fn next_mut(&self) -> *mut c_void {
10445        self.next
10446    }
10447}
10448
10449unsafe impl InputChainStruct for PhysicalDeviceLinearColorAttachmentFeaturesNV {
10450    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV;
10451
10452    #[inline]
10453    fn s_type(&self) -> StructureType {
10454        self.s_type
10455    }
10456
10457    #[inline]
10458    fn next(&self) -> *const c_void {
10459        self.next
10460    }
10461}
10462
10463unsafe impl OutputChainStruct for PhysicalDeviceLinearColorAttachmentFeaturesNV {
10464    #[inline]
10465    fn next_mut(&self) -> *mut c_void {
10466        self.next
10467    }
10468}
10469
10470unsafe impl InputChainStruct for PhysicalDeviceMaintenance10FeaturesKHR {
10471    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR;
10472
10473    #[inline]
10474    fn s_type(&self) -> StructureType {
10475        self.s_type
10476    }
10477
10478    #[inline]
10479    fn next(&self) -> *const c_void {
10480        self.next
10481    }
10482}
10483
10484unsafe impl OutputChainStruct for PhysicalDeviceMaintenance10FeaturesKHR {
10485    #[inline]
10486    fn next_mut(&self) -> *mut c_void {
10487        self.next
10488    }
10489}
10490
10491unsafe impl InputChainStruct for PhysicalDeviceMaintenance10PropertiesKHR {
10492    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR;
10493
10494    #[inline]
10495    fn s_type(&self) -> StructureType {
10496        self.s_type
10497    }
10498
10499    #[inline]
10500    fn next(&self) -> *const c_void {
10501        self.next
10502    }
10503}
10504
10505unsafe impl OutputChainStruct for PhysicalDeviceMaintenance10PropertiesKHR {
10506    #[inline]
10507    fn next_mut(&self) -> *mut c_void {
10508        self.next
10509    }
10510}
10511
10512unsafe impl InputChainStruct for PhysicalDeviceMaintenance3Properties {
10513    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
10514
10515    #[inline]
10516    fn s_type(&self) -> StructureType {
10517        self.s_type
10518    }
10519
10520    #[inline]
10521    fn next(&self) -> *const c_void {
10522        self.next
10523    }
10524}
10525
10526unsafe impl OutputChainStruct for PhysicalDeviceMaintenance3Properties {
10527    #[inline]
10528    fn next_mut(&self) -> *mut c_void {
10529        self.next
10530    }
10531}
10532
10533unsafe impl InputChainStruct for PhysicalDeviceMaintenance4Features {
10534    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
10535
10536    #[inline]
10537    fn s_type(&self) -> StructureType {
10538        self.s_type
10539    }
10540
10541    #[inline]
10542    fn next(&self) -> *const c_void {
10543        self.next
10544    }
10545}
10546
10547unsafe impl OutputChainStruct for PhysicalDeviceMaintenance4Features {
10548    #[inline]
10549    fn next_mut(&self) -> *mut c_void {
10550        self.next
10551    }
10552}
10553
10554unsafe impl InputChainStruct for PhysicalDeviceMaintenance4Properties {
10555    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
10556
10557    #[inline]
10558    fn s_type(&self) -> StructureType {
10559        self.s_type
10560    }
10561
10562    #[inline]
10563    fn next(&self) -> *const c_void {
10564        self.next
10565    }
10566}
10567
10568unsafe impl OutputChainStruct for PhysicalDeviceMaintenance4Properties {
10569    #[inline]
10570    fn next_mut(&self) -> *mut c_void {
10571        self.next
10572    }
10573}
10574
10575unsafe impl InputChainStruct for PhysicalDeviceMaintenance5Features {
10576    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES;
10577
10578    #[inline]
10579    fn s_type(&self) -> StructureType {
10580        self.s_type
10581    }
10582
10583    #[inline]
10584    fn next(&self) -> *const c_void {
10585        self.next
10586    }
10587}
10588
10589unsafe impl OutputChainStruct for PhysicalDeviceMaintenance5Features {
10590    #[inline]
10591    fn next_mut(&self) -> *mut c_void {
10592        self.next
10593    }
10594}
10595
10596unsafe impl InputChainStruct for PhysicalDeviceMaintenance5Properties {
10597    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES;
10598
10599    #[inline]
10600    fn s_type(&self) -> StructureType {
10601        self.s_type
10602    }
10603
10604    #[inline]
10605    fn next(&self) -> *const c_void {
10606        self.next
10607    }
10608}
10609
10610unsafe impl OutputChainStruct for PhysicalDeviceMaintenance5Properties {
10611    #[inline]
10612    fn next_mut(&self) -> *mut c_void {
10613        self.next
10614    }
10615}
10616
10617unsafe impl InputChainStruct for PhysicalDeviceMaintenance6Features {
10618    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES;
10619
10620    #[inline]
10621    fn s_type(&self) -> StructureType {
10622        self.s_type
10623    }
10624
10625    #[inline]
10626    fn next(&self) -> *const c_void {
10627        self.next
10628    }
10629}
10630
10631unsafe impl OutputChainStruct for PhysicalDeviceMaintenance6Features {
10632    #[inline]
10633    fn next_mut(&self) -> *mut c_void {
10634        self.next
10635    }
10636}
10637
10638unsafe impl InputChainStruct for PhysicalDeviceMaintenance6Properties {
10639    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES;
10640
10641    #[inline]
10642    fn s_type(&self) -> StructureType {
10643        self.s_type
10644    }
10645
10646    #[inline]
10647    fn next(&self) -> *const c_void {
10648        self.next
10649    }
10650}
10651
10652unsafe impl OutputChainStruct for PhysicalDeviceMaintenance6Properties {
10653    #[inline]
10654    fn next_mut(&self) -> *mut c_void {
10655        self.next
10656    }
10657}
10658
10659unsafe impl InputChainStruct for PhysicalDeviceMaintenance7FeaturesKHR {
10660    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR;
10661
10662    #[inline]
10663    fn s_type(&self) -> StructureType {
10664        self.s_type
10665    }
10666
10667    #[inline]
10668    fn next(&self) -> *const c_void {
10669        self.next
10670    }
10671}
10672
10673unsafe impl OutputChainStruct for PhysicalDeviceMaintenance7FeaturesKHR {
10674    #[inline]
10675    fn next_mut(&self) -> *mut c_void {
10676        self.next
10677    }
10678}
10679
10680unsafe impl InputChainStruct for PhysicalDeviceMaintenance7PropertiesKHR {
10681    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR;
10682
10683    #[inline]
10684    fn s_type(&self) -> StructureType {
10685        self.s_type
10686    }
10687
10688    #[inline]
10689    fn next(&self) -> *const c_void {
10690        self.next
10691    }
10692}
10693
10694unsafe impl OutputChainStruct for PhysicalDeviceMaintenance7PropertiesKHR {
10695    #[inline]
10696    fn next_mut(&self) -> *mut c_void {
10697        self.next
10698    }
10699}
10700
10701unsafe impl InputChainStruct for PhysicalDeviceMaintenance8FeaturesKHR {
10702    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR;
10703
10704    #[inline]
10705    fn s_type(&self) -> StructureType {
10706        self.s_type
10707    }
10708
10709    #[inline]
10710    fn next(&self) -> *const c_void {
10711        self.next
10712    }
10713}
10714
10715unsafe impl OutputChainStruct for PhysicalDeviceMaintenance8FeaturesKHR {
10716    #[inline]
10717    fn next_mut(&self) -> *mut c_void {
10718        self.next
10719    }
10720}
10721
10722unsafe impl InputChainStruct for PhysicalDeviceMaintenance9FeaturesKHR {
10723    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR;
10724
10725    #[inline]
10726    fn s_type(&self) -> StructureType {
10727        self.s_type
10728    }
10729
10730    #[inline]
10731    fn next(&self) -> *const c_void {
10732        self.next
10733    }
10734}
10735
10736unsafe impl OutputChainStruct for PhysicalDeviceMaintenance9FeaturesKHR {
10737    #[inline]
10738    fn next_mut(&self) -> *mut c_void {
10739        self.next
10740    }
10741}
10742
10743unsafe impl InputChainStruct for PhysicalDeviceMaintenance9PropertiesKHR {
10744    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR;
10745
10746    #[inline]
10747    fn s_type(&self) -> StructureType {
10748        self.s_type
10749    }
10750
10751    #[inline]
10752    fn next(&self) -> *const c_void {
10753        self.next
10754    }
10755}
10756
10757unsafe impl OutputChainStruct for PhysicalDeviceMaintenance9PropertiesKHR {
10758    #[inline]
10759    fn next_mut(&self) -> *mut c_void {
10760        self.next
10761    }
10762}
10763
10764unsafe impl InputChainStruct for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
10765    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT;
10766
10767    #[inline]
10768    fn s_type(&self) -> StructureType {
10769        self.s_type
10770    }
10771
10772    #[inline]
10773    fn next(&self) -> *const c_void {
10774        self.next
10775    }
10776}
10777
10778unsafe impl OutputChainStruct for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
10779    #[inline]
10780    fn next_mut(&self) -> *mut c_void {
10781        self.next
10782    }
10783}
10784
10785unsafe impl InputChainStruct for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
10786    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT;
10787
10788    #[inline]
10789    fn s_type(&self) -> StructureType {
10790        self.s_type
10791    }
10792
10793    #[inline]
10794    fn next(&self) -> *const c_void {
10795        self.next
10796    }
10797}
10798
10799unsafe impl OutputChainStruct for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
10800    #[inline]
10801    fn next_mut(&self) -> *mut c_void {
10802        self.next
10803    }
10804}
10805
10806unsafe impl InputChainStruct for PhysicalDeviceMemoryBudgetPropertiesEXT {
10807    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
10808
10809    #[inline]
10810    fn s_type(&self) -> StructureType {
10811        self.s_type
10812    }
10813
10814    #[inline]
10815    fn next(&self) -> *const c_void {
10816        self.next
10817    }
10818}
10819
10820unsafe impl OutputChainStruct for PhysicalDeviceMemoryBudgetPropertiesEXT {
10821    #[inline]
10822    fn next_mut(&self) -> *mut c_void {
10823        self.next
10824    }
10825}
10826
10827unsafe impl InputChainStruct for PhysicalDeviceMemoryDecompressionFeaturesEXT {
10828    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT;
10829
10830    #[inline]
10831    fn s_type(&self) -> StructureType {
10832        self.s_type
10833    }
10834
10835    #[inline]
10836    fn next(&self) -> *const c_void {
10837        self.next
10838    }
10839}
10840
10841unsafe impl OutputChainStruct for PhysicalDeviceMemoryDecompressionFeaturesEXT {
10842    #[inline]
10843    fn next_mut(&self) -> *mut c_void {
10844        self.next
10845    }
10846}
10847
10848unsafe impl InputChainStruct for PhysicalDeviceMemoryDecompressionPropertiesEXT {
10849    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT;
10850
10851    #[inline]
10852    fn s_type(&self) -> StructureType {
10853        self.s_type
10854    }
10855
10856    #[inline]
10857    fn next(&self) -> *const c_void {
10858        self.next
10859    }
10860}
10861
10862unsafe impl OutputChainStruct for PhysicalDeviceMemoryDecompressionPropertiesEXT {
10863    #[inline]
10864    fn next_mut(&self) -> *mut c_void {
10865        self.next
10866    }
10867}
10868
10869unsafe impl InputChainStruct for PhysicalDeviceMemoryPriorityFeaturesEXT {
10870    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
10871
10872    #[inline]
10873    fn s_type(&self) -> StructureType {
10874        self.s_type
10875    }
10876
10877    #[inline]
10878    fn next(&self) -> *const c_void {
10879        self.next
10880    }
10881}
10882
10883unsafe impl OutputChainStruct for PhysicalDeviceMemoryPriorityFeaturesEXT {
10884    #[inline]
10885    fn next_mut(&self) -> *mut c_void {
10886        self.next
10887    }
10888}
10889
10890unsafe impl InputChainStruct for PhysicalDeviceMemoryProperties2 {
10891    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
10892
10893    #[inline]
10894    fn s_type(&self) -> StructureType {
10895        self.s_type
10896    }
10897
10898    #[inline]
10899    fn next(&self) -> *const c_void {
10900        self.next
10901    }
10902}
10903
10904unsafe impl OutputChainStruct for PhysicalDeviceMemoryProperties2 {
10905    #[inline]
10906    fn next_mut(&self) -> *mut c_void {
10907        self.next
10908    }
10909}
10910
10911unsafe impl InputChainStruct for PhysicalDeviceMeshShaderFeaturesEXT {
10912    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT;
10913
10914    #[inline]
10915    fn s_type(&self) -> StructureType {
10916        self.s_type
10917    }
10918
10919    #[inline]
10920    fn next(&self) -> *const c_void {
10921        self.next
10922    }
10923}
10924
10925unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderFeaturesEXT {
10926    #[inline]
10927    fn next_mut(&self) -> *mut c_void {
10928        self.next
10929    }
10930}
10931
10932unsafe impl InputChainStruct for PhysicalDeviceMeshShaderFeaturesNV {
10933    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
10934
10935    #[inline]
10936    fn s_type(&self) -> StructureType {
10937        self.s_type
10938    }
10939
10940    #[inline]
10941    fn next(&self) -> *const c_void {
10942        self.next
10943    }
10944}
10945
10946unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderFeaturesNV {
10947    #[inline]
10948    fn next_mut(&self) -> *mut c_void {
10949        self.next
10950    }
10951}
10952
10953unsafe impl InputChainStruct for PhysicalDeviceMeshShaderPropertiesEXT {
10954    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT;
10955
10956    #[inline]
10957    fn s_type(&self) -> StructureType {
10958        self.s_type
10959    }
10960
10961    #[inline]
10962    fn next(&self) -> *const c_void {
10963        self.next
10964    }
10965}
10966
10967unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderPropertiesEXT {
10968    #[inline]
10969    fn next_mut(&self) -> *mut c_void {
10970        self.next
10971    }
10972}
10973
10974unsafe impl InputChainStruct for PhysicalDeviceMeshShaderPropertiesNV {
10975    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
10976
10977    #[inline]
10978    fn s_type(&self) -> StructureType {
10979        self.s_type
10980    }
10981
10982    #[inline]
10983    fn next(&self) -> *const c_void {
10984        self.next
10985    }
10986}
10987
10988unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderPropertiesNV {
10989    #[inline]
10990    fn next_mut(&self) -> *mut c_void {
10991        self.next
10992    }
10993}
10994
10995unsafe impl InputChainStruct for PhysicalDeviceMultiDrawFeaturesEXT {
10996    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
10997
10998    #[inline]
10999    fn s_type(&self) -> StructureType {
11000        self.s_type
11001    }
11002
11003    #[inline]
11004    fn next(&self) -> *const c_void {
11005        self.next
11006    }
11007}
11008
11009unsafe impl OutputChainStruct for PhysicalDeviceMultiDrawFeaturesEXT {
11010    #[inline]
11011    fn next_mut(&self) -> *mut c_void {
11012        self.next
11013    }
11014}
11015
11016unsafe impl InputChainStruct for PhysicalDeviceMultiDrawPropertiesEXT {
11017    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
11018
11019    #[inline]
11020    fn s_type(&self) -> StructureType {
11021        self.s_type
11022    }
11023
11024    #[inline]
11025    fn next(&self) -> *const c_void {
11026        self.next
11027    }
11028}
11029
11030unsafe impl OutputChainStruct for PhysicalDeviceMultiDrawPropertiesEXT {
11031    #[inline]
11032    fn next_mut(&self) -> *mut c_void {
11033        self.next
11034    }
11035}
11036
11037unsafe impl InputChainStruct for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
11038    const TYPE: StructureType =
11039        StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT;
11040
11041    #[inline]
11042    fn s_type(&self) -> StructureType {
11043        self.s_type
11044    }
11045
11046    #[inline]
11047    fn next(&self) -> *const c_void {
11048        self.next
11049    }
11050}
11051
11052unsafe impl OutputChainStruct for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
11053    #[inline]
11054    fn next_mut(&self) -> *mut c_void {
11055        self.next
11056    }
11057}
11058
11059unsafe impl InputChainStruct for PhysicalDeviceMultiviewFeatures {
11060    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
11061
11062    #[inline]
11063    fn s_type(&self) -> StructureType {
11064        self.s_type
11065    }
11066
11067    #[inline]
11068    fn next(&self) -> *const c_void {
11069        self.next
11070    }
11071}
11072
11073unsafe impl OutputChainStruct for PhysicalDeviceMultiviewFeatures {
11074    #[inline]
11075    fn next_mut(&self) -> *mut c_void {
11076        self.next
11077    }
11078}
11079
11080unsafe impl InputChainStruct for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11081    const TYPE: StructureType =
11082        StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
11083
11084    #[inline]
11085    fn s_type(&self) -> StructureType {
11086        self.s_type
11087    }
11088
11089    #[inline]
11090    fn next(&self) -> *const c_void {
11091        self.next
11092    }
11093}
11094
11095unsafe impl OutputChainStruct for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11096    #[inline]
11097    fn next_mut(&self) -> *mut c_void {
11098        self.next
11099    }
11100}
11101
11102unsafe impl InputChainStruct for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
11103    const TYPE: StructureType =
11104        StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM;
11105
11106    #[inline]
11107    fn s_type(&self) -> StructureType {
11108        self.s_type
11109    }
11110
11111    #[inline]
11112    fn next(&self) -> *const c_void {
11113        self.next
11114    }
11115}
11116
11117unsafe impl OutputChainStruct for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
11118    #[inline]
11119    fn next_mut(&self) -> *mut c_void {
11120        self.next
11121    }
11122}
11123
11124unsafe impl InputChainStruct for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
11125    const TYPE: StructureType =
11126        StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM;
11127
11128    #[inline]
11129    fn s_type(&self) -> StructureType {
11130        self.s_type
11131    }
11132
11133    #[inline]
11134    fn next(&self) -> *const c_void {
11135        self.next
11136    }
11137}
11138
11139unsafe impl OutputChainStruct for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
11140    #[inline]
11141    fn next_mut(&self) -> *mut c_void {
11142        self.next
11143    }
11144}
11145
11146unsafe impl InputChainStruct for PhysicalDeviceMultiviewProperties {
11147    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
11148
11149    #[inline]
11150    fn s_type(&self) -> StructureType {
11151        self.s_type
11152    }
11153
11154    #[inline]
11155    fn next(&self) -> *const c_void {
11156        self.next
11157    }
11158}
11159
11160unsafe impl OutputChainStruct for PhysicalDeviceMultiviewProperties {
11161    #[inline]
11162    fn next_mut(&self) -> *mut c_void {
11163        self.next
11164    }
11165}
11166
11167unsafe impl InputChainStruct for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
11168    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT;
11169
11170    #[inline]
11171    fn s_type(&self) -> StructureType {
11172        self.s_type
11173    }
11174
11175    #[inline]
11176    fn next(&self) -> *const c_void {
11177        self.next
11178    }
11179}
11180
11181unsafe impl OutputChainStruct for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
11182    #[inline]
11183    fn next_mut(&self) -> *mut c_void {
11184        self.next
11185    }
11186}
11187
11188unsafe impl InputChainStruct for PhysicalDeviceNestedCommandBufferFeaturesEXT {
11189    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT;
11190
11191    #[inline]
11192    fn s_type(&self) -> StructureType {
11193        self.s_type
11194    }
11195
11196    #[inline]
11197    fn next(&self) -> *const c_void {
11198        self.next
11199    }
11200}
11201
11202unsafe impl OutputChainStruct for PhysicalDeviceNestedCommandBufferFeaturesEXT {
11203    #[inline]
11204    fn next_mut(&self) -> *mut c_void {
11205        self.next
11206    }
11207}
11208
11209unsafe impl InputChainStruct for PhysicalDeviceNestedCommandBufferPropertiesEXT {
11210    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT;
11211
11212    #[inline]
11213    fn s_type(&self) -> StructureType {
11214        self.s_type
11215    }
11216
11217    #[inline]
11218    fn next(&self) -> *const c_void {
11219        self.next
11220    }
11221}
11222
11223unsafe impl OutputChainStruct for PhysicalDeviceNestedCommandBufferPropertiesEXT {
11224    #[inline]
11225    fn next_mut(&self) -> *mut c_void {
11226        self.next
11227    }
11228}
11229
11230unsafe impl InputChainStruct for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
11231    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT;
11232
11233    #[inline]
11234    fn s_type(&self) -> StructureType {
11235        self.s_type
11236    }
11237
11238    #[inline]
11239    fn next(&self) -> *const c_void {
11240        self.next
11241    }
11242}
11243
11244unsafe impl OutputChainStruct for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
11245    #[inline]
11246    fn next_mut(&self) -> *mut c_void {
11247        self.next
11248    }
11249}
11250
11251unsafe impl InputChainStruct for PhysicalDeviceOpacityMicromapFeaturesEXT {
11252    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT;
11253
11254    #[inline]
11255    fn s_type(&self) -> StructureType {
11256        self.s_type
11257    }
11258
11259    #[inline]
11260    fn next(&self) -> *const c_void {
11261        self.next
11262    }
11263}
11264
11265unsafe impl OutputChainStruct for PhysicalDeviceOpacityMicromapFeaturesEXT {
11266    #[inline]
11267    fn next_mut(&self) -> *mut c_void {
11268        self.next
11269    }
11270}
11271
11272unsafe impl InputChainStruct for PhysicalDeviceOpacityMicromapPropertiesEXT {
11273    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT;
11274
11275    #[inline]
11276    fn s_type(&self) -> StructureType {
11277        self.s_type
11278    }
11279
11280    #[inline]
11281    fn next(&self) -> *const c_void {
11282        self.next
11283    }
11284}
11285
11286unsafe impl OutputChainStruct for PhysicalDeviceOpacityMicromapPropertiesEXT {
11287    #[inline]
11288    fn next_mut(&self) -> *mut c_void {
11289        self.next
11290    }
11291}
11292
11293unsafe impl InputChainStruct for PhysicalDeviceOpticalFlowFeaturesNV {
11294    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV;
11295
11296    #[inline]
11297    fn s_type(&self) -> StructureType {
11298        self.s_type
11299    }
11300
11301    #[inline]
11302    fn next(&self) -> *const c_void {
11303        self.next
11304    }
11305}
11306
11307unsafe impl OutputChainStruct for PhysicalDeviceOpticalFlowFeaturesNV {
11308    #[inline]
11309    fn next_mut(&self) -> *mut c_void {
11310        self.next
11311    }
11312}
11313
11314unsafe impl InputChainStruct for PhysicalDeviceOpticalFlowPropertiesNV {
11315    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV;
11316
11317    #[inline]
11318    fn s_type(&self) -> StructureType {
11319        self.s_type
11320    }
11321
11322    #[inline]
11323    fn next(&self) -> *const c_void {
11324        self.next
11325    }
11326}
11327
11328unsafe impl OutputChainStruct for PhysicalDeviceOpticalFlowPropertiesNV {
11329    #[inline]
11330    fn next_mut(&self) -> *mut c_void {
11331        self.next
11332    }
11333}
11334
11335unsafe impl InputChainStruct for PhysicalDevicePCIBusInfoPropertiesEXT {
11336    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
11337
11338    #[inline]
11339    fn s_type(&self) -> StructureType {
11340        self.s_type
11341    }
11342
11343    #[inline]
11344    fn next(&self) -> *const c_void {
11345        self.next
11346    }
11347}
11348
11349unsafe impl OutputChainStruct for PhysicalDevicePCIBusInfoPropertiesEXT {
11350    #[inline]
11351    fn next_mut(&self) -> *mut c_void {
11352        self.next
11353    }
11354}
11355
11356unsafe impl InputChainStruct for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
11357    const TYPE: StructureType =
11358        StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT;
11359
11360    #[inline]
11361    fn s_type(&self) -> StructureType {
11362        self.s_type
11363    }
11364
11365    #[inline]
11366    fn next(&self) -> *const c_void {
11367        self.next
11368    }
11369}
11370
11371unsafe impl OutputChainStruct for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
11372    #[inline]
11373    fn next_mut(&self) -> *mut c_void {
11374        self.next
11375    }
11376}
11377
11378unsafe impl InputChainStruct for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
11379    const TYPE: StructureType =
11380        StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV;
11381
11382    #[inline]
11383    fn s_type(&self) -> StructureType {
11384        self.s_type
11385    }
11386
11387    #[inline]
11388    fn next(&self) -> *const c_void {
11389        self.next
11390    }
11391}
11392
11393unsafe impl OutputChainStruct for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
11394    #[inline]
11395    fn next_mut(&self) -> *mut c_void {
11396        self.next
11397    }
11398}
11399
11400unsafe impl InputChainStruct for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
11401    const TYPE: StructureType =
11402        StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV;
11403
11404    #[inline]
11405    fn s_type(&self) -> StructureType {
11406        self.s_type
11407    }
11408
11409    #[inline]
11410    fn next(&self) -> *const c_void {
11411        self.next
11412    }
11413}
11414
11415unsafe impl OutputChainStruct for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
11416    #[inline]
11417    fn next_mut(&self) -> *mut c_void {
11418        self.next
11419    }
11420}
11421
11422unsafe impl InputChainStruct for PhysicalDevicePerStageDescriptorSetFeaturesNV {
11423    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV;
11424
11425    #[inline]
11426    fn s_type(&self) -> StructureType {
11427        self.s_type
11428    }
11429
11430    #[inline]
11431    fn next(&self) -> *const c_void {
11432        self.next
11433    }
11434}
11435
11436unsafe impl OutputChainStruct for PhysicalDevicePerStageDescriptorSetFeaturesNV {
11437    #[inline]
11438    fn next_mut(&self) -> *mut c_void {
11439        self.next
11440    }
11441}
11442
11443unsafe impl InputChainStruct for PhysicalDevicePerformanceCountersByRegionFeaturesARM {
11444    const TYPE: StructureType =
11445        StructureType::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM;
11446
11447    #[inline]
11448    fn s_type(&self) -> StructureType {
11449        self.s_type
11450    }
11451
11452    #[inline]
11453    fn next(&self) -> *const c_void {
11454        self.next
11455    }
11456}
11457
11458unsafe impl OutputChainStruct for PhysicalDevicePerformanceCountersByRegionFeaturesARM {
11459    #[inline]
11460    fn next_mut(&self) -> *mut c_void {
11461        self.next
11462    }
11463}
11464
11465unsafe impl InputChainStruct for PhysicalDevicePerformanceCountersByRegionPropertiesARM {
11466    const TYPE: StructureType =
11467        StructureType::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM;
11468
11469    #[inline]
11470    fn s_type(&self) -> StructureType {
11471        self.s_type
11472    }
11473
11474    #[inline]
11475    fn next(&self) -> *const c_void {
11476        self.next
11477    }
11478}
11479
11480unsafe impl OutputChainStruct for PhysicalDevicePerformanceCountersByRegionPropertiesARM {
11481    #[inline]
11482    fn next_mut(&self) -> *mut c_void {
11483        self.next
11484    }
11485}
11486
11487unsafe impl InputChainStruct for PhysicalDevicePerformanceQueryFeaturesKHR {
11488    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
11489
11490    #[inline]
11491    fn s_type(&self) -> StructureType {
11492        self.s_type
11493    }
11494
11495    #[inline]
11496    fn next(&self) -> *const c_void {
11497        self.next
11498    }
11499}
11500
11501unsafe impl OutputChainStruct for PhysicalDevicePerformanceQueryFeaturesKHR {
11502    #[inline]
11503    fn next_mut(&self) -> *mut c_void {
11504        self.next
11505    }
11506}
11507
11508unsafe impl InputChainStruct for PhysicalDevicePerformanceQueryPropertiesKHR {
11509    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
11510
11511    #[inline]
11512    fn s_type(&self) -> StructureType {
11513        self.s_type
11514    }
11515
11516    #[inline]
11517    fn next(&self) -> *const c_void {
11518        self.next
11519    }
11520}
11521
11522unsafe impl OutputChainStruct for PhysicalDevicePerformanceQueryPropertiesKHR {
11523    #[inline]
11524    fn next_mut(&self) -> *mut c_void {
11525        self.next
11526    }
11527}
11528
11529unsafe impl InputChainStruct for PhysicalDevicePipelineBinaryFeaturesKHR {
11530    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR;
11531
11532    #[inline]
11533    fn s_type(&self) -> StructureType {
11534        self.s_type
11535    }
11536
11537    #[inline]
11538    fn next(&self) -> *const c_void {
11539        self.next
11540    }
11541}
11542
11543unsafe impl OutputChainStruct for PhysicalDevicePipelineBinaryFeaturesKHR {
11544    #[inline]
11545    fn next_mut(&self) -> *mut c_void {
11546        self.next
11547    }
11548}
11549
11550unsafe impl InputChainStruct for PhysicalDevicePipelineBinaryPropertiesKHR {
11551    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR;
11552
11553    #[inline]
11554    fn s_type(&self) -> StructureType {
11555        self.s_type
11556    }
11557
11558    #[inline]
11559    fn next(&self) -> *const c_void {
11560        self.next
11561    }
11562}
11563
11564unsafe impl OutputChainStruct for PhysicalDevicePipelineBinaryPropertiesKHR {
11565    #[inline]
11566    fn next_mut(&self) -> *mut c_void {
11567        self.next
11568    }
11569}
11570
11571unsafe impl InputChainStruct for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
11572    const TYPE: StructureType =
11573        StructureType::PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC;
11574
11575    #[inline]
11576    fn s_type(&self) -> StructureType {
11577        self.s_type
11578    }
11579
11580    #[inline]
11581    fn next(&self) -> *const c_void {
11582        self.next
11583    }
11584}
11585
11586unsafe impl OutputChainStruct for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
11587    #[inline]
11588    fn next_mut(&self) -> *mut c_void {
11589        self.next
11590    }
11591}
11592
11593unsafe impl InputChainStruct for PhysicalDevicePipelineCreationCacheControlFeatures {
11594    const TYPE: StructureType =
11595        StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
11596
11597    #[inline]
11598    fn s_type(&self) -> StructureType {
11599        self.s_type
11600    }
11601
11602    #[inline]
11603    fn next(&self) -> *const c_void {
11604        self.next
11605    }
11606}
11607
11608unsafe impl OutputChainStruct for PhysicalDevicePipelineCreationCacheControlFeatures {
11609    #[inline]
11610    fn next_mut(&self) -> *mut c_void {
11611        self.next
11612    }
11613}
11614
11615unsafe impl InputChainStruct for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11616    const TYPE: StructureType =
11617        StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
11618
11619    #[inline]
11620    fn s_type(&self) -> StructureType {
11621        self.s_type
11622    }
11623
11624    #[inline]
11625    fn next(&self) -> *const c_void {
11626        self.next
11627    }
11628}
11629
11630unsafe impl OutputChainStruct for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11631    #[inline]
11632    fn next_mut(&self) -> *mut c_void {
11633        self.next
11634    }
11635}
11636
11637unsafe impl InputChainStruct for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
11638    const TYPE: StructureType =
11639        StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT;
11640
11641    #[inline]
11642    fn s_type(&self) -> StructureType {
11643        self.s_type
11644    }
11645
11646    #[inline]
11647    fn next(&self) -> *const c_void {
11648        self.next
11649    }
11650}
11651
11652unsafe impl OutputChainStruct for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
11653    #[inline]
11654    fn next_mut(&self) -> *mut c_void {
11655        self.next
11656    }
11657}
11658
11659unsafe impl InputChainStruct for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
11660    const TYPE: StructureType =
11661        StructureType::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM;
11662
11663    #[inline]
11664    fn s_type(&self) -> StructureType {
11665        self.s_type
11666    }
11667
11668    #[inline]
11669    fn next(&self) -> *const c_void {
11670        self.next
11671    }
11672}
11673
11674unsafe impl OutputChainStruct for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
11675    #[inline]
11676    fn next_mut(&self) -> *mut c_void {
11677        self.next
11678    }
11679}
11680
11681unsafe impl InputChainStruct for PhysicalDevicePipelinePropertiesFeaturesEXT {
11682    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT;
11683
11684    #[inline]
11685    fn s_type(&self) -> StructureType {
11686        self.s_type
11687    }
11688
11689    #[inline]
11690    fn next(&self) -> *const c_void {
11691        self.next
11692    }
11693}
11694
11695unsafe impl OutputChainStruct for PhysicalDevicePipelinePropertiesFeaturesEXT {
11696    #[inline]
11697    fn next_mut(&self) -> *mut c_void {
11698        self.next
11699    }
11700}
11701
11702unsafe impl InputChainStruct for PhysicalDevicePipelineProtectedAccessFeatures {
11703    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES;
11704
11705    #[inline]
11706    fn s_type(&self) -> StructureType {
11707        self.s_type
11708    }
11709
11710    #[inline]
11711    fn next(&self) -> *const c_void {
11712        self.next
11713    }
11714}
11715
11716unsafe impl OutputChainStruct for PhysicalDevicePipelineProtectedAccessFeatures {
11717    #[inline]
11718    fn next_mut(&self) -> *mut c_void {
11719        self.next
11720    }
11721}
11722
11723unsafe impl InputChainStruct for PhysicalDevicePipelineRobustnessFeatures {
11724    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES;
11725
11726    #[inline]
11727    fn s_type(&self) -> StructureType {
11728        self.s_type
11729    }
11730
11731    #[inline]
11732    fn next(&self) -> *const c_void {
11733        self.next
11734    }
11735}
11736
11737unsafe impl OutputChainStruct for PhysicalDevicePipelineRobustnessFeatures {
11738    #[inline]
11739    fn next_mut(&self) -> *mut c_void {
11740        self.next
11741    }
11742}
11743
11744unsafe impl InputChainStruct for PhysicalDevicePipelineRobustnessProperties {
11745    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES;
11746
11747    #[inline]
11748    fn s_type(&self) -> StructureType {
11749        self.s_type
11750    }
11751
11752    #[inline]
11753    fn next(&self) -> *const c_void {
11754        self.next
11755    }
11756}
11757
11758unsafe impl OutputChainStruct for PhysicalDevicePipelineRobustnessProperties {
11759    #[inline]
11760    fn next_mut(&self) -> *mut c_void {
11761        self.next
11762    }
11763}
11764
11765unsafe impl InputChainStruct for PhysicalDevicePointClippingProperties {
11766    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
11767
11768    #[inline]
11769    fn s_type(&self) -> StructureType {
11770        self.s_type
11771    }
11772
11773    #[inline]
11774    fn next(&self) -> *const c_void {
11775        self.next
11776    }
11777}
11778
11779unsafe impl OutputChainStruct for PhysicalDevicePointClippingProperties {
11780    #[inline]
11781    fn next_mut(&self) -> *mut c_void {
11782        self.next
11783    }
11784}
11785
11786unsafe impl InputChainStruct for PhysicalDevicePortabilitySubsetFeaturesKHR {
11787    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
11788
11789    #[inline]
11790    fn s_type(&self) -> StructureType {
11791        self.s_type
11792    }
11793
11794    #[inline]
11795    fn next(&self) -> *const c_void {
11796        self.next
11797    }
11798}
11799
11800unsafe impl OutputChainStruct for PhysicalDevicePortabilitySubsetFeaturesKHR {
11801    #[inline]
11802    fn next_mut(&self) -> *mut c_void {
11803        self.next
11804    }
11805}
11806
11807unsafe impl InputChainStruct for PhysicalDevicePortabilitySubsetPropertiesKHR {
11808    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
11809
11810    #[inline]
11811    fn s_type(&self) -> StructureType {
11812        self.s_type
11813    }
11814
11815    #[inline]
11816    fn next(&self) -> *const c_void {
11817        self.next
11818    }
11819}
11820
11821unsafe impl OutputChainStruct for PhysicalDevicePortabilitySubsetPropertiesKHR {
11822    #[inline]
11823    fn next_mut(&self) -> *mut c_void {
11824        self.next
11825    }
11826}
11827
11828unsafe impl InputChainStruct for PhysicalDevicePresentBarrierFeaturesNV {
11829    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV;
11830
11831    #[inline]
11832    fn s_type(&self) -> StructureType {
11833        self.s_type
11834    }
11835
11836    #[inline]
11837    fn next(&self) -> *const c_void {
11838        self.next
11839    }
11840}
11841
11842unsafe impl OutputChainStruct for PhysicalDevicePresentBarrierFeaturesNV {
11843    #[inline]
11844    fn next_mut(&self) -> *mut c_void {
11845        self.next
11846    }
11847}
11848
11849unsafe impl InputChainStruct for PhysicalDevicePresentId2FeaturesKHR {
11850    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR;
11851
11852    #[inline]
11853    fn s_type(&self) -> StructureType {
11854        self.s_type
11855    }
11856
11857    #[inline]
11858    fn next(&self) -> *const c_void {
11859        self.next
11860    }
11861}
11862
11863unsafe impl OutputChainStruct for PhysicalDevicePresentId2FeaturesKHR {
11864    #[inline]
11865    fn next_mut(&self) -> *mut c_void {
11866        self.next
11867    }
11868}
11869
11870unsafe impl InputChainStruct for PhysicalDevicePresentIdFeaturesKHR {
11871    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR;
11872
11873    #[inline]
11874    fn s_type(&self) -> StructureType {
11875        self.s_type
11876    }
11877
11878    #[inline]
11879    fn next(&self) -> *const c_void {
11880        self.next
11881    }
11882}
11883
11884unsafe impl OutputChainStruct for PhysicalDevicePresentIdFeaturesKHR {
11885    #[inline]
11886    fn next_mut(&self) -> *mut c_void {
11887        self.next
11888    }
11889}
11890
11891unsafe impl InputChainStruct for PhysicalDevicePresentMeteringFeaturesNV {
11892    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV;
11893
11894    #[inline]
11895    fn s_type(&self) -> StructureType {
11896        self.s_type
11897    }
11898
11899    #[inline]
11900    fn next(&self) -> *const c_void {
11901        self.next
11902    }
11903}
11904
11905unsafe impl OutputChainStruct for PhysicalDevicePresentMeteringFeaturesNV {
11906    #[inline]
11907    fn next_mut(&self) -> *mut c_void {
11908        self.next
11909    }
11910}
11911
11912unsafe impl InputChainStruct for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
11913    const TYPE: StructureType =
11914        StructureType::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR;
11915
11916    #[inline]
11917    fn s_type(&self) -> StructureType {
11918        self.s_type
11919    }
11920
11921    #[inline]
11922    fn next(&self) -> *const c_void {
11923        self.next
11924    }
11925}
11926
11927unsafe impl OutputChainStruct for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
11928    #[inline]
11929    fn next_mut(&self) -> *mut c_void {
11930        self.next
11931    }
11932}
11933
11934unsafe impl InputChainStruct for PhysicalDevicePresentTimingFeaturesEXT {
11935    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT;
11936
11937    #[inline]
11938    fn s_type(&self) -> StructureType {
11939        self.s_type
11940    }
11941
11942    #[inline]
11943    fn next(&self) -> *const c_void {
11944        self.next
11945    }
11946}
11947
11948unsafe impl OutputChainStruct for PhysicalDevicePresentTimingFeaturesEXT {
11949    #[inline]
11950    fn next_mut(&self) -> *mut c_void {
11951        self.next
11952    }
11953}
11954
11955unsafe impl InputChainStruct for PhysicalDevicePresentWait2FeaturesKHR {
11956    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR;
11957
11958    #[inline]
11959    fn s_type(&self) -> StructureType {
11960        self.s_type
11961    }
11962
11963    #[inline]
11964    fn next(&self) -> *const c_void {
11965        self.next
11966    }
11967}
11968
11969unsafe impl OutputChainStruct for PhysicalDevicePresentWait2FeaturesKHR {
11970    #[inline]
11971    fn next_mut(&self) -> *mut c_void {
11972        self.next
11973    }
11974}
11975
11976unsafe impl InputChainStruct for PhysicalDevicePresentWaitFeaturesKHR {
11977    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR;
11978
11979    #[inline]
11980    fn s_type(&self) -> StructureType {
11981        self.s_type
11982    }
11983
11984    #[inline]
11985    fn next(&self) -> *const c_void {
11986        self.next
11987    }
11988}
11989
11990unsafe impl OutputChainStruct for PhysicalDevicePresentWaitFeaturesKHR {
11991    #[inline]
11992    fn next_mut(&self) -> *mut c_void {
11993        self.next
11994    }
11995}
11996
11997unsafe impl InputChainStruct for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
11998    const TYPE: StructureType =
11999        StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT;
12000
12001    #[inline]
12002    fn s_type(&self) -> StructureType {
12003        self.s_type
12004    }
12005
12006    #[inline]
12007    fn next(&self) -> *const c_void {
12008        self.next
12009    }
12010}
12011
12012unsafe impl OutputChainStruct for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
12013    #[inline]
12014    fn next_mut(&self) -> *mut c_void {
12015        self.next
12016    }
12017}
12018
12019unsafe impl InputChainStruct for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
12020    const TYPE: StructureType =
12021        StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT;
12022
12023    #[inline]
12024    fn s_type(&self) -> StructureType {
12025        self.s_type
12026    }
12027
12028    #[inline]
12029    fn next(&self) -> *const c_void {
12030        self.next
12031    }
12032}
12033
12034unsafe impl OutputChainStruct for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
12035    #[inline]
12036    fn next_mut(&self) -> *mut c_void {
12037        self.next
12038    }
12039}
12040
12041unsafe impl InputChainStruct for PhysicalDevicePrivateDataFeatures {
12042    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
12043
12044    #[inline]
12045    fn s_type(&self) -> StructureType {
12046        self.s_type
12047    }
12048
12049    #[inline]
12050    fn next(&self) -> *const c_void {
12051        self.next
12052    }
12053}
12054
12055unsafe impl OutputChainStruct for PhysicalDevicePrivateDataFeatures {
12056    #[inline]
12057    fn next_mut(&self) -> *mut c_void {
12058        self.next
12059    }
12060}
12061
12062unsafe impl InputChainStruct for PhysicalDeviceProperties2 {
12063    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROPERTIES_2;
12064
12065    #[inline]
12066    fn s_type(&self) -> StructureType {
12067        self.s_type
12068    }
12069
12070    #[inline]
12071    fn next(&self) -> *const c_void {
12072        self.next
12073    }
12074}
12075
12076unsafe impl OutputChainStruct for PhysicalDeviceProperties2 {
12077    #[inline]
12078    fn next_mut(&self) -> *mut c_void {
12079        self.next
12080    }
12081}
12082
12083unsafe impl InputChainStruct for PhysicalDeviceProtectedMemoryFeatures {
12084    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
12085
12086    #[inline]
12087    fn s_type(&self) -> StructureType {
12088        self.s_type
12089    }
12090
12091    #[inline]
12092    fn next(&self) -> *const c_void {
12093        self.next
12094    }
12095}
12096
12097unsafe impl OutputChainStruct for PhysicalDeviceProtectedMemoryFeatures {
12098    #[inline]
12099    fn next_mut(&self) -> *mut c_void {
12100        self.next
12101    }
12102}
12103
12104unsafe impl InputChainStruct for PhysicalDeviceProtectedMemoryProperties {
12105    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
12106
12107    #[inline]
12108    fn s_type(&self) -> StructureType {
12109        self.s_type
12110    }
12111
12112    #[inline]
12113    fn next(&self) -> *const c_void {
12114        self.next
12115    }
12116}
12117
12118unsafe impl OutputChainStruct for PhysicalDeviceProtectedMemoryProperties {
12119    #[inline]
12120    fn next_mut(&self) -> *mut c_void {
12121        self.next
12122    }
12123}
12124
12125unsafe impl InputChainStruct for PhysicalDeviceProvokingVertexFeaturesEXT {
12126    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
12127
12128    #[inline]
12129    fn s_type(&self) -> StructureType {
12130        self.s_type
12131    }
12132
12133    #[inline]
12134    fn next(&self) -> *const c_void {
12135        self.next
12136    }
12137}
12138
12139unsafe impl OutputChainStruct for PhysicalDeviceProvokingVertexFeaturesEXT {
12140    #[inline]
12141    fn next_mut(&self) -> *mut c_void {
12142        self.next
12143    }
12144}
12145
12146unsafe impl InputChainStruct for PhysicalDeviceProvokingVertexPropertiesEXT {
12147    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
12148
12149    #[inline]
12150    fn s_type(&self) -> StructureType {
12151        self.s_type
12152    }
12153
12154    #[inline]
12155    fn next(&self) -> *const c_void {
12156        self.next
12157    }
12158}
12159
12160unsafe impl OutputChainStruct for PhysicalDeviceProvokingVertexPropertiesEXT {
12161    #[inline]
12162    fn next_mut(&self) -> *mut c_void {
12163        self.next
12164    }
12165}
12166
12167unsafe impl InputChainStruct for PhysicalDevicePushConstantBankFeaturesNV {
12168    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV;
12169
12170    #[inline]
12171    fn s_type(&self) -> StructureType {
12172        self.s_type
12173    }
12174
12175    #[inline]
12176    fn next(&self) -> *const c_void {
12177        self.next
12178    }
12179}
12180
12181unsafe impl OutputChainStruct for PhysicalDevicePushConstantBankFeaturesNV {
12182    #[inline]
12183    fn next_mut(&self) -> *mut c_void {
12184        self.next
12185    }
12186}
12187
12188unsafe impl InputChainStruct for PhysicalDevicePushConstantBankPropertiesNV {
12189    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV;
12190
12191    #[inline]
12192    fn s_type(&self) -> StructureType {
12193        self.s_type
12194    }
12195
12196    #[inline]
12197    fn next(&self) -> *const c_void {
12198        self.next
12199    }
12200}
12201
12202unsafe impl OutputChainStruct for PhysicalDevicePushConstantBankPropertiesNV {
12203    #[inline]
12204    fn next_mut(&self) -> *mut c_void {
12205        self.next
12206    }
12207}
12208
12209unsafe impl InputChainStruct for PhysicalDevicePushDescriptorProperties {
12210    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES;
12211
12212    #[inline]
12213    fn s_type(&self) -> StructureType {
12214        self.s_type
12215    }
12216
12217    #[inline]
12218    fn next(&self) -> *const c_void {
12219        self.next
12220    }
12221}
12222
12223unsafe impl OutputChainStruct for PhysicalDevicePushDescriptorProperties {
12224    #[inline]
12225    fn next_mut(&self) -> *mut c_void {
12226        self.next
12227    }
12228}
12229
12230unsafe impl InputChainStruct for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
12231    const TYPE: StructureType =
12232        StructureType::PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM;
12233
12234    #[inline]
12235    fn s_type(&self) -> StructureType {
12236        self.s_type
12237    }
12238
12239    #[inline]
12240    fn next(&self) -> *const c_void {
12241        self.next
12242    }
12243}
12244
12245unsafe impl InputChainStruct for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
12246    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT;
12247
12248    #[inline]
12249    fn s_type(&self) -> StructureType {
12250        self.s_type
12251    }
12252
12253    #[inline]
12254    fn next(&self) -> *const c_void {
12255        self.next
12256    }
12257}
12258
12259unsafe impl OutputChainStruct for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
12260    #[inline]
12261    fn next_mut(&self) -> *mut c_void {
12262        self.next
12263    }
12264}
12265
12266unsafe impl InputChainStruct for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
12267    const TYPE: StructureType =
12268        StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT;
12269
12270    #[inline]
12271    fn s_type(&self) -> StructureType {
12272        self.s_type
12273    }
12274
12275    #[inline]
12276    fn next(&self) -> *const c_void {
12277        self.next
12278    }
12279}
12280
12281unsafe impl OutputChainStruct for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
12282    #[inline]
12283    fn next_mut(&self) -> *mut c_void {
12284        self.next
12285    }
12286}
12287
12288unsafe impl InputChainStruct for PhysicalDeviceRawAccessChainsFeaturesNV {
12289    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
12290
12291    #[inline]
12292    fn s_type(&self) -> StructureType {
12293        self.s_type
12294    }
12295
12296    #[inline]
12297    fn next(&self) -> *const c_void {
12298        self.next
12299    }
12300}
12301
12302unsafe impl OutputChainStruct for PhysicalDeviceRawAccessChainsFeaturesNV {
12303    #[inline]
12304    fn next_mut(&self) -> *mut c_void {
12305        self.next
12306    }
12307}
12308
12309unsafe impl InputChainStruct for PhysicalDeviceRayQueryFeaturesKHR {
12310    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
12311
12312    #[inline]
12313    fn s_type(&self) -> StructureType {
12314        self.s_type
12315    }
12316
12317    #[inline]
12318    fn next(&self) -> *const c_void {
12319        self.next
12320    }
12321}
12322
12323unsafe impl OutputChainStruct for PhysicalDeviceRayQueryFeaturesKHR {
12324    #[inline]
12325    fn next_mut(&self) -> *mut c_void {
12326        self.next
12327    }
12328}
12329
12330unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
12331    const TYPE: StructureType =
12332        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT;
12333
12334    #[inline]
12335    fn s_type(&self) -> StructureType {
12336        self.s_type
12337    }
12338
12339    #[inline]
12340    fn next(&self) -> *const c_void {
12341        self.next
12342    }
12343}
12344
12345unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
12346    #[inline]
12347    fn next_mut(&self) -> *mut c_void {
12348        self.next
12349    }
12350}
12351
12352unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
12353    const TYPE: StructureType =
12354        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV;
12355
12356    #[inline]
12357    fn s_type(&self) -> StructureType {
12358        self.s_type
12359    }
12360
12361    #[inline]
12362    fn next(&self) -> *const c_void {
12363        self.next
12364    }
12365}
12366
12367unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
12368    #[inline]
12369    fn next_mut(&self) -> *mut c_void {
12370        self.next
12371    }
12372}
12373
12374unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
12375    const TYPE: StructureType =
12376        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT;
12377
12378    #[inline]
12379    fn s_type(&self) -> StructureType {
12380        self.s_type
12381    }
12382
12383    #[inline]
12384    fn next(&self) -> *const c_void {
12385        self.next
12386    }
12387}
12388
12389unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
12390    #[inline]
12391    fn next_mut(&self) -> *mut c_void {
12392        self.next
12393    }
12394}
12395
12396unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
12397    const TYPE: StructureType =
12398        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV;
12399
12400    #[inline]
12401    fn s_type(&self) -> StructureType {
12402        self.s_type
12403    }
12404
12405    #[inline]
12406    fn next(&self) -> *const c_void {
12407        self.next
12408    }
12409}
12410
12411unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
12412    #[inline]
12413    fn next_mut(&self) -> *mut c_void {
12414        self.next
12415    }
12416}
12417
12418unsafe impl InputChainStruct for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
12419    const TYPE: StructureType =
12420        StructureType::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV;
12421
12422    #[inline]
12423    fn s_type(&self) -> StructureType {
12424        self.s_type
12425    }
12426
12427    #[inline]
12428    fn next(&self) -> *const c_void {
12429        self.next
12430    }
12431}
12432
12433unsafe impl OutputChainStruct for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
12434    #[inline]
12435    fn next_mut(&self) -> *mut c_void {
12436        self.next
12437    }
12438}
12439
12440unsafe impl InputChainStruct for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12441    const TYPE: StructureType =
12442        StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR;
12443
12444    #[inline]
12445    fn s_type(&self) -> StructureType {
12446        self.s_type
12447    }
12448
12449    #[inline]
12450    fn next(&self) -> *const c_void {
12451        self.next
12452    }
12453}
12454
12455unsafe impl OutputChainStruct for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12456    #[inline]
12457    fn next_mut(&self) -> *mut c_void {
12458        self.next
12459    }
12460}
12461
12462unsafe impl InputChainStruct for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
12463    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
12464
12465    #[inline]
12466    fn s_type(&self) -> StructureType {
12467        self.s_type
12468    }
12469
12470    #[inline]
12471    fn next(&self) -> *const c_void {
12472        self.next
12473    }
12474}
12475
12476unsafe impl OutputChainStruct for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
12477    #[inline]
12478    fn next_mut(&self) -> *mut c_void {
12479        self.next
12480    }
12481}
12482
12483unsafe impl InputChainStruct for PhysicalDeviceRayTracingPipelineFeaturesKHR {
12484    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
12485
12486    #[inline]
12487    fn s_type(&self) -> StructureType {
12488        self.s_type
12489    }
12490
12491    #[inline]
12492    fn next(&self) -> *const c_void {
12493        self.next
12494    }
12495}
12496
12497unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPipelineFeaturesKHR {
12498    #[inline]
12499    fn next_mut(&self) -> *mut c_void {
12500        self.next
12501    }
12502}
12503
12504unsafe impl InputChainStruct for PhysicalDeviceRayTracingPipelinePropertiesKHR {
12505    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
12506
12507    #[inline]
12508    fn s_type(&self) -> StructureType {
12509        self.s_type
12510    }
12511
12512    #[inline]
12513    fn next(&self) -> *const c_void {
12514        self.next
12515    }
12516}
12517
12518unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPipelinePropertiesKHR {
12519    #[inline]
12520    fn next_mut(&self) -> *mut c_void {
12521        self.next
12522    }
12523}
12524
12525unsafe impl InputChainStruct for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12526    const TYPE: StructureType =
12527        StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR;
12528
12529    #[inline]
12530    fn s_type(&self) -> StructureType {
12531        self.s_type
12532    }
12533
12534    #[inline]
12535    fn next(&self) -> *const c_void {
12536        self.next
12537    }
12538}
12539
12540unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12541    #[inline]
12542    fn next_mut(&self) -> *mut c_void {
12543        self.next
12544    }
12545}
12546
12547unsafe impl InputChainStruct for PhysicalDeviceRayTracingPropertiesNV {
12548    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
12549
12550    #[inline]
12551    fn s_type(&self) -> StructureType {
12552        self.s_type
12553    }
12554
12555    #[inline]
12556    fn next(&self) -> *const c_void {
12557        self.next
12558    }
12559}
12560
12561unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPropertiesNV {
12562    #[inline]
12563    fn next_mut(&self) -> *mut c_void {
12564        self.next
12565    }
12566}
12567
12568unsafe impl InputChainStruct for PhysicalDeviceRayTracingValidationFeaturesNV {
12569    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV;
12570
12571    #[inline]
12572    fn s_type(&self) -> StructureType {
12573        self.s_type
12574    }
12575
12576    #[inline]
12577    fn next(&self) -> *const c_void {
12578        self.next
12579    }
12580}
12581
12582unsafe impl OutputChainStruct for PhysicalDeviceRayTracingValidationFeaturesNV {
12583    #[inline]
12584    fn next_mut(&self) -> *mut c_void {
12585        self.next
12586    }
12587}
12588
12589unsafe impl InputChainStruct for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
12590    const TYPE: StructureType =
12591        StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG;
12592
12593    #[inline]
12594    fn s_type(&self) -> StructureType {
12595        self.s_type
12596    }
12597
12598    #[inline]
12599    fn next(&self) -> *const c_void {
12600        self.next
12601    }
12602}
12603
12604unsafe impl OutputChainStruct for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
12605    #[inline]
12606    fn next_mut(&self) -> *mut c_void {
12607        self.next
12608    }
12609}
12610
12611unsafe impl InputChainStruct for PhysicalDeviceRenderPassStripedFeaturesARM {
12612    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM;
12613
12614    #[inline]
12615    fn s_type(&self) -> StructureType {
12616        self.s_type
12617    }
12618
12619    #[inline]
12620    fn next(&self) -> *const c_void {
12621        self.next
12622    }
12623}
12624
12625unsafe impl OutputChainStruct for PhysicalDeviceRenderPassStripedFeaturesARM {
12626    #[inline]
12627    fn next_mut(&self) -> *mut c_void {
12628        self.next
12629    }
12630}
12631
12632unsafe impl InputChainStruct for PhysicalDeviceRenderPassStripedPropertiesARM {
12633    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM;
12634
12635    #[inline]
12636    fn s_type(&self) -> StructureType {
12637        self.s_type
12638    }
12639
12640    #[inline]
12641    fn next(&self) -> *const c_void {
12642        self.next
12643    }
12644}
12645
12646unsafe impl OutputChainStruct for PhysicalDeviceRenderPassStripedPropertiesARM {
12647    #[inline]
12648    fn next_mut(&self) -> *mut c_void {
12649        self.next
12650    }
12651}
12652
12653unsafe impl InputChainStruct for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12654    const TYPE: StructureType =
12655        StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
12656
12657    #[inline]
12658    fn s_type(&self) -> StructureType {
12659        self.s_type
12660    }
12661
12662    #[inline]
12663    fn next(&self) -> *const c_void {
12664        self.next
12665    }
12666}
12667
12668unsafe impl OutputChainStruct for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12669    #[inline]
12670    fn next_mut(&self) -> *mut c_void {
12671        self.next
12672    }
12673}
12674
12675unsafe impl InputChainStruct for PhysicalDeviceRobustness2FeaturesKHR {
12676    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR;
12677
12678    #[inline]
12679    fn s_type(&self) -> StructureType {
12680        self.s_type
12681    }
12682
12683    #[inline]
12684    fn next(&self) -> *const c_void {
12685        self.next
12686    }
12687}
12688
12689unsafe impl OutputChainStruct for PhysicalDeviceRobustness2FeaturesKHR {
12690    #[inline]
12691    fn next_mut(&self) -> *mut c_void {
12692        self.next
12693    }
12694}
12695
12696unsafe impl InputChainStruct for PhysicalDeviceRobustness2PropertiesKHR {
12697    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR;
12698
12699    #[inline]
12700    fn s_type(&self) -> StructureType {
12701        self.s_type
12702    }
12703
12704    #[inline]
12705    fn next(&self) -> *const c_void {
12706        self.next
12707    }
12708}
12709
12710unsafe impl OutputChainStruct for PhysicalDeviceRobustness2PropertiesKHR {
12711    #[inline]
12712    fn next_mut(&self) -> *mut c_void {
12713        self.next
12714    }
12715}
12716
12717unsafe impl InputChainStruct for PhysicalDeviceSampleLocationsPropertiesEXT {
12718    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
12719
12720    #[inline]
12721    fn s_type(&self) -> StructureType {
12722        self.s_type
12723    }
12724
12725    #[inline]
12726    fn next(&self) -> *const c_void {
12727        self.next
12728    }
12729}
12730
12731unsafe impl OutputChainStruct for PhysicalDeviceSampleLocationsPropertiesEXT {
12732    #[inline]
12733    fn next_mut(&self) -> *mut c_void {
12734        self.next
12735    }
12736}
12737
12738unsafe impl InputChainStruct for PhysicalDeviceSamplerFilterMinmaxProperties {
12739    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
12740
12741    #[inline]
12742    fn s_type(&self) -> StructureType {
12743        self.s_type
12744    }
12745
12746    #[inline]
12747    fn next(&self) -> *const c_void {
12748        self.next
12749    }
12750}
12751
12752unsafe impl OutputChainStruct for PhysicalDeviceSamplerFilterMinmaxProperties {
12753    #[inline]
12754    fn next_mut(&self) -> *mut c_void {
12755        self.next
12756    }
12757}
12758
12759unsafe impl InputChainStruct for PhysicalDeviceSamplerYcbcrConversionFeatures {
12760    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
12761
12762    #[inline]
12763    fn s_type(&self) -> StructureType {
12764        self.s_type
12765    }
12766
12767    #[inline]
12768    fn next(&self) -> *const c_void {
12769        self.next
12770    }
12771}
12772
12773unsafe impl OutputChainStruct for PhysicalDeviceSamplerYcbcrConversionFeatures {
12774    #[inline]
12775    fn next_mut(&self) -> *mut c_void {
12776        self.next
12777    }
12778}
12779
12780unsafe impl InputChainStruct for PhysicalDeviceScalarBlockLayoutFeatures {
12781    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
12782
12783    #[inline]
12784    fn s_type(&self) -> StructureType {
12785        self.s_type
12786    }
12787
12788    #[inline]
12789    fn next(&self) -> *const c_void {
12790        self.next
12791    }
12792}
12793
12794unsafe impl OutputChainStruct for PhysicalDeviceScalarBlockLayoutFeatures {
12795    #[inline]
12796    fn next_mut(&self) -> *mut c_void {
12797        self.next
12798    }
12799}
12800
12801unsafe impl InputChainStruct for PhysicalDeviceSchedulingControlsFeaturesARM {
12802    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM;
12803
12804    #[inline]
12805    fn s_type(&self) -> StructureType {
12806        self.s_type
12807    }
12808
12809    #[inline]
12810    fn next(&self) -> *const c_void {
12811        self.next
12812    }
12813}
12814
12815unsafe impl OutputChainStruct for PhysicalDeviceSchedulingControlsFeaturesARM {
12816    #[inline]
12817    fn next_mut(&self) -> *mut c_void {
12818        self.next
12819    }
12820}
12821
12822unsafe impl InputChainStruct for PhysicalDeviceSchedulingControlsPropertiesARM {
12823    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM;
12824
12825    #[inline]
12826    fn s_type(&self) -> StructureType {
12827        self.s_type
12828    }
12829
12830    #[inline]
12831    fn next(&self) -> *const c_void {
12832        self.next
12833    }
12834}
12835
12836unsafe impl OutputChainStruct for PhysicalDeviceSchedulingControlsPropertiesARM {
12837    #[inline]
12838    fn next_mut(&self) -> *mut c_void {
12839        self.next
12840    }
12841}
12842
12843unsafe impl InputChainStruct for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
12844    const TYPE: StructureType =
12845        StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
12846
12847    #[inline]
12848    fn s_type(&self) -> StructureType {
12849        self.s_type
12850    }
12851
12852    #[inline]
12853    fn next(&self) -> *const c_void {
12854        self.next
12855    }
12856}
12857
12858unsafe impl OutputChainStruct for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
12859    #[inline]
12860    fn next_mut(&self) -> *mut c_void {
12861        self.next
12862    }
12863}
12864
12865unsafe impl InputChainStruct for PhysicalDeviceShader64BitIndexingFeaturesEXT {
12866    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT;
12867
12868    #[inline]
12869    fn s_type(&self) -> StructureType {
12870        self.s_type
12871    }
12872
12873    #[inline]
12874    fn next(&self) -> *const c_void {
12875        self.next
12876    }
12877}
12878
12879unsafe impl OutputChainStruct for PhysicalDeviceShader64BitIndexingFeaturesEXT {
12880    #[inline]
12881    fn next_mut(&self) -> *mut c_void {
12882        self.next
12883    }
12884}
12885
12886unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
12887    const TYPE: StructureType =
12888        StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV;
12889
12890    #[inline]
12891    fn s_type(&self) -> StructureType {
12892        self.s_type
12893    }
12894
12895    #[inline]
12896    fn next(&self) -> *const c_void {
12897        self.next
12898    }
12899}
12900
12901unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
12902    #[inline]
12903    fn next_mut(&self) -> *mut c_void {
12904        self.next
12905    }
12906}
12907
12908unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
12909    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
12910
12911    #[inline]
12912    fn s_type(&self) -> StructureType {
12913        self.s_type
12914    }
12915
12916    #[inline]
12917    fn next(&self) -> *const c_void {
12918        self.next
12919    }
12920}
12921
12922unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
12923    #[inline]
12924    fn next_mut(&self) -> *mut c_void {
12925        self.next
12926    }
12927}
12928
12929unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
12930    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
12931
12932    #[inline]
12933    fn s_type(&self) -> StructureType {
12934        self.s_type
12935    }
12936
12937    #[inline]
12938    fn next(&self) -> *const c_void {
12939        self.next
12940    }
12941}
12942
12943unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
12944    #[inline]
12945    fn next_mut(&self) -> *mut c_void {
12946        self.next
12947    }
12948}
12949
12950unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicInt64Features {
12951    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
12952
12953    #[inline]
12954    fn s_type(&self) -> StructureType {
12955        self.s_type
12956    }
12957
12958    #[inline]
12959    fn next(&self) -> *const c_void {
12960        self.next
12961    }
12962}
12963
12964unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicInt64Features {
12965    #[inline]
12966    fn next_mut(&self) -> *mut c_void {
12967        self.next
12968    }
12969}
12970
12971unsafe impl InputChainStruct for PhysicalDeviceShaderBfloat16FeaturesKHR {
12972    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR;
12973
12974    #[inline]
12975    fn s_type(&self) -> StructureType {
12976        self.s_type
12977    }
12978
12979    #[inline]
12980    fn next(&self) -> *const c_void {
12981        self.next
12982    }
12983}
12984
12985unsafe impl OutputChainStruct for PhysicalDeviceShaderBfloat16FeaturesKHR {
12986    #[inline]
12987    fn next_mut(&self) -> *mut c_void {
12988        self.next
12989    }
12990}
12991
12992unsafe impl InputChainStruct for PhysicalDeviceShaderClockFeaturesKHR {
12993    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
12994
12995    #[inline]
12996    fn s_type(&self) -> StructureType {
12997        self.s_type
12998    }
12999
13000    #[inline]
13001    fn next(&self) -> *const c_void {
13002        self.next
13003    }
13004}
13005
13006unsafe impl OutputChainStruct for PhysicalDeviceShaderClockFeaturesKHR {
13007    #[inline]
13008    fn next_mut(&self) -> *mut c_void {
13009        self.next
13010    }
13011}
13012
13013unsafe impl InputChainStruct for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
13014    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM;
13015
13016    #[inline]
13017    fn s_type(&self) -> StructureType {
13018        self.s_type
13019    }
13020
13021    #[inline]
13022    fn next(&self) -> *const c_void {
13023        self.next
13024    }
13025}
13026
13027unsafe impl OutputChainStruct for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
13028    #[inline]
13029    fn next_mut(&self) -> *mut c_void {
13030        self.next
13031    }
13032}
13033
13034unsafe impl InputChainStruct for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
13035    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM;
13036
13037    #[inline]
13038    fn s_type(&self) -> StructureType {
13039        self.s_type
13040    }
13041
13042    #[inline]
13043    fn next(&self) -> *const c_void {
13044        self.next
13045    }
13046}
13047
13048unsafe impl OutputChainStruct for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
13049    #[inline]
13050    fn next_mut(&self) -> *mut c_void {
13051        self.next
13052    }
13053}
13054
13055unsafe impl InputChainStruct for PhysicalDeviceShaderCoreProperties2AMD {
13056    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
13057
13058    #[inline]
13059    fn s_type(&self) -> StructureType {
13060        self.s_type
13061    }
13062
13063    #[inline]
13064    fn next(&self) -> *const c_void {
13065        self.next
13066    }
13067}
13068
13069unsafe impl OutputChainStruct for PhysicalDeviceShaderCoreProperties2AMD {
13070    #[inline]
13071    fn next_mut(&self) -> *mut c_void {
13072        self.next
13073    }
13074}
13075
13076unsafe impl InputChainStruct for PhysicalDeviceShaderCorePropertiesAMD {
13077    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
13078
13079    #[inline]
13080    fn s_type(&self) -> StructureType {
13081        self.s_type
13082    }
13083
13084    #[inline]
13085    fn next(&self) -> *const c_void {
13086        self.next
13087    }
13088}
13089
13090unsafe impl OutputChainStruct for PhysicalDeviceShaderCorePropertiesAMD {
13091    #[inline]
13092    fn next_mut(&self) -> *mut c_void {
13093        self.next
13094    }
13095}
13096
13097unsafe impl InputChainStruct for PhysicalDeviceShaderCorePropertiesARM {
13098    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM;
13099
13100    #[inline]
13101    fn s_type(&self) -> StructureType {
13102        self.s_type
13103    }
13104
13105    #[inline]
13106    fn next(&self) -> *const c_void {
13107        self.next
13108    }
13109}
13110
13111unsafe impl OutputChainStruct for PhysicalDeviceShaderCorePropertiesARM {
13112    #[inline]
13113    fn next_mut(&self) -> *mut c_void {
13114        self.next
13115    }
13116}
13117
13118unsafe impl InputChainStruct for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
13119    const TYPE: StructureType =
13120        StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
13121
13122    #[inline]
13123    fn s_type(&self) -> StructureType {
13124        self.s_type
13125    }
13126
13127    #[inline]
13128    fn next(&self) -> *const c_void {
13129        self.next
13130    }
13131}
13132
13133unsafe impl OutputChainStruct for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
13134    #[inline]
13135    fn next_mut(&self) -> *mut c_void {
13136        self.next
13137    }
13138}
13139
13140unsafe impl InputChainStruct for PhysicalDeviceShaderDrawParametersFeatures {
13141    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
13142
13143    #[inline]
13144    fn s_type(&self) -> StructureType {
13145        self.s_type
13146    }
13147
13148    #[inline]
13149    fn next(&self) -> *const c_void {
13150        self.next
13151    }
13152}
13153
13154unsafe impl OutputChainStruct for PhysicalDeviceShaderDrawParametersFeatures {
13155    #[inline]
13156    fn next_mut(&self) -> *mut c_void {
13157        self.next
13158    }
13159}
13160
13161unsafe impl InputChainStruct for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
13162    const TYPE: StructureType =
13163        StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD;
13164
13165    #[inline]
13166    fn s_type(&self) -> StructureType {
13167        self.s_type
13168    }
13169
13170    #[inline]
13171    fn next(&self) -> *const c_void {
13172        self.next
13173    }
13174}
13175
13176unsafe impl OutputChainStruct for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
13177    #[inline]
13178    fn next_mut(&self) -> *mut c_void {
13179        self.next
13180    }
13181}
13182
13183unsafe impl InputChainStruct for PhysicalDeviceShaderEnqueueFeaturesAMDX {
13184    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX;
13185
13186    #[inline]
13187    fn s_type(&self) -> StructureType {
13188        self.s_type
13189    }
13190
13191    #[inline]
13192    fn next(&self) -> *const c_void {
13193        self.next
13194    }
13195}
13196
13197unsafe impl OutputChainStruct for PhysicalDeviceShaderEnqueueFeaturesAMDX {
13198    #[inline]
13199    fn next_mut(&self) -> *mut c_void {
13200        self.next
13201    }
13202}
13203
13204unsafe impl InputChainStruct for PhysicalDeviceShaderEnqueuePropertiesAMDX {
13205    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX;
13206
13207    #[inline]
13208    fn s_type(&self) -> StructureType {
13209        self.s_type
13210    }
13211
13212    #[inline]
13213    fn next(&self) -> *const c_void {
13214        self.next
13215    }
13216}
13217
13218unsafe impl OutputChainStruct for PhysicalDeviceShaderEnqueuePropertiesAMDX {
13219    #[inline]
13220    fn next_mut(&self) -> *mut c_void {
13221        self.next
13222    }
13223}
13224
13225unsafe impl InputChainStruct for PhysicalDeviceShaderExpectAssumeFeatures {
13226    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES;
13227
13228    #[inline]
13229    fn s_type(&self) -> StructureType {
13230        self.s_type
13231    }
13232
13233    #[inline]
13234    fn next(&self) -> *const c_void {
13235        self.next
13236    }
13237}
13238
13239unsafe impl OutputChainStruct for PhysicalDeviceShaderExpectAssumeFeatures {
13240    #[inline]
13241    fn next_mut(&self) -> *mut c_void {
13242        self.next
13243    }
13244}
13245
13246unsafe impl InputChainStruct for PhysicalDeviceShaderFloat16Int8Features {
13247    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
13248
13249    #[inline]
13250    fn s_type(&self) -> StructureType {
13251        self.s_type
13252    }
13253
13254    #[inline]
13255    fn next(&self) -> *const c_void {
13256        self.next
13257    }
13258}
13259
13260unsafe impl OutputChainStruct for PhysicalDeviceShaderFloat16Int8Features {
13261    #[inline]
13262    fn next_mut(&self) -> *mut c_void {
13263        self.next
13264    }
13265}
13266
13267unsafe impl InputChainStruct for PhysicalDeviceShaderFloat8FeaturesEXT {
13268    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT;
13269
13270    #[inline]
13271    fn s_type(&self) -> StructureType {
13272        self.s_type
13273    }
13274
13275    #[inline]
13276    fn next(&self) -> *const c_void {
13277        self.next
13278    }
13279}
13280
13281unsafe impl OutputChainStruct for PhysicalDeviceShaderFloat8FeaturesEXT {
13282    #[inline]
13283    fn next_mut(&self) -> *mut c_void {
13284        self.next
13285    }
13286}
13287
13288unsafe impl InputChainStruct for PhysicalDeviceShaderFloatControls2Features {
13289    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES;
13290
13291    #[inline]
13292    fn s_type(&self) -> StructureType {
13293        self.s_type
13294    }
13295
13296    #[inline]
13297    fn next(&self) -> *const c_void {
13298        self.next
13299    }
13300}
13301
13302unsafe impl OutputChainStruct for PhysicalDeviceShaderFloatControls2Features {
13303    #[inline]
13304    fn next_mut(&self) -> *mut c_void {
13305        self.next
13306    }
13307}
13308
13309unsafe impl InputChainStruct for PhysicalDeviceShaderFmaFeaturesKHR {
13310    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR;
13311
13312    #[inline]
13313    fn s_type(&self) -> StructureType {
13314        self.s_type
13315    }
13316
13317    #[inline]
13318    fn next(&self) -> *const c_void {
13319        self.next
13320    }
13321}
13322
13323unsafe impl OutputChainStruct for PhysicalDeviceShaderFmaFeaturesKHR {
13324    #[inline]
13325    fn next_mut(&self) -> *mut c_void {
13326        self.next
13327    }
13328}
13329
13330unsafe impl InputChainStruct for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
13331    const TYPE: StructureType =
13332        StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
13333
13334    #[inline]
13335    fn s_type(&self) -> StructureType {
13336        self.s_type
13337    }
13338
13339    #[inline]
13340    fn next(&self) -> *const c_void {
13341        self.next
13342    }
13343}
13344
13345unsafe impl OutputChainStruct for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
13346    #[inline]
13347    fn next_mut(&self) -> *mut c_void {
13348        self.next
13349    }
13350}
13351
13352unsafe impl InputChainStruct for PhysicalDeviceShaderImageFootprintFeaturesNV {
13353    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
13354
13355    #[inline]
13356    fn s_type(&self) -> StructureType {
13357        self.s_type
13358    }
13359
13360    #[inline]
13361    fn next(&self) -> *const c_void {
13362        self.next
13363    }
13364}
13365
13366unsafe impl OutputChainStruct for PhysicalDeviceShaderImageFootprintFeaturesNV {
13367    #[inline]
13368    fn next_mut(&self) -> *mut c_void {
13369        self.next
13370    }
13371}
13372
13373unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerDotProductFeatures {
13374    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
13375
13376    #[inline]
13377    fn s_type(&self) -> StructureType {
13378        self.s_type
13379    }
13380
13381    #[inline]
13382    fn next(&self) -> *const c_void {
13383        self.next
13384    }
13385}
13386
13387unsafe impl OutputChainStruct for PhysicalDeviceShaderIntegerDotProductFeatures {
13388    #[inline]
13389    fn next_mut(&self) -> *mut c_void {
13390        self.next
13391    }
13392}
13393
13394unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerDotProductProperties {
13395    const TYPE: StructureType =
13396        StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
13397
13398    #[inline]
13399    fn s_type(&self) -> StructureType {
13400        self.s_type
13401    }
13402
13403    #[inline]
13404    fn next(&self) -> *const c_void {
13405        self.next
13406    }
13407}
13408
13409unsafe impl OutputChainStruct for PhysicalDeviceShaderIntegerDotProductProperties {
13410    #[inline]
13411    fn next_mut(&self) -> *mut c_void {
13412        self.next
13413    }
13414}
13415
13416unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
13417    const TYPE: StructureType =
13418        StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL;
13419
13420    #[inline]
13421    fn s_type(&self) -> StructureType {
13422        self.s_type
13423    }
13424
13425    #[inline]
13426    fn next(&self) -> *const c_void {
13427        self.next
13428    }
13429}
13430
13431unsafe impl OutputChainStruct for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
13432    #[inline]
13433    fn next_mut(&self) -> *mut c_void {
13434        self.next
13435    }
13436}
13437
13438unsafe impl InputChainStruct for PhysicalDeviceShaderLongVectorFeaturesEXT {
13439    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT;
13440
13441    #[inline]
13442    fn s_type(&self) -> StructureType {
13443        self.s_type
13444    }
13445
13446    #[inline]
13447    fn next(&self) -> *const c_void {
13448        self.next
13449    }
13450}
13451
13452unsafe impl OutputChainStruct for PhysicalDeviceShaderLongVectorFeaturesEXT {
13453    #[inline]
13454    fn next_mut(&self) -> *mut c_void {
13455        self.next
13456    }
13457}
13458
13459unsafe impl InputChainStruct for PhysicalDeviceShaderLongVectorPropertiesEXT {
13460    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT;
13461
13462    #[inline]
13463    fn s_type(&self) -> StructureType {
13464        self.s_type
13465    }
13466
13467    #[inline]
13468    fn next(&self) -> *const c_void {
13469        self.next
13470    }
13471}
13472
13473unsafe impl OutputChainStruct for PhysicalDeviceShaderLongVectorPropertiesEXT {
13474    #[inline]
13475    fn next_mut(&self) -> *mut c_void {
13476        self.next
13477    }
13478}
13479
13480unsafe impl InputChainStruct for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
13481    const TYPE: StructureType =
13482        StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR;
13483
13484    #[inline]
13485    fn s_type(&self) -> StructureType {
13486        self.s_type
13487    }
13488
13489    #[inline]
13490    fn next(&self) -> *const c_void {
13491        self.next
13492    }
13493}
13494
13495unsafe impl OutputChainStruct for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
13496    #[inline]
13497    fn next_mut(&self) -> *mut c_void {
13498        self.next
13499    }
13500}
13501
13502unsafe impl InputChainStruct for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
13503    const TYPE: StructureType =
13504        StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
13505
13506    #[inline]
13507    fn s_type(&self) -> StructureType {
13508        self.s_type
13509    }
13510
13511    #[inline]
13512    fn next(&self) -> *const c_void {
13513        self.next
13514    }
13515}
13516
13517unsafe impl OutputChainStruct for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
13518    #[inline]
13519    fn next_mut(&self) -> *mut c_void {
13520        self.next
13521    }
13522}
13523
13524unsafe impl InputChainStruct for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
13525    const TYPE: StructureType =
13526        StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT;
13527
13528    #[inline]
13529    fn s_type(&self) -> StructureType {
13530        self.s_type
13531    }
13532
13533    #[inline]
13534    fn next(&self) -> *const c_void {
13535        self.next
13536    }
13537}
13538
13539unsafe impl OutputChainStruct for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
13540    #[inline]
13541    fn next_mut(&self) -> *mut c_void {
13542        self.next
13543    }
13544}
13545
13546unsafe impl InputChainStruct for PhysicalDeviceShaderObjectFeaturesEXT {
13547    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
13548
13549    #[inline]
13550    fn s_type(&self) -> StructureType {
13551        self.s_type
13552    }
13553
13554    #[inline]
13555    fn next(&self) -> *const c_void {
13556        self.next
13557    }
13558}
13559
13560unsafe impl OutputChainStruct for PhysicalDeviceShaderObjectFeaturesEXT {
13561    #[inline]
13562    fn next_mut(&self) -> *mut c_void {
13563        self.next
13564    }
13565}
13566
13567unsafe impl InputChainStruct for PhysicalDeviceShaderObjectPropertiesEXT {
13568    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT;
13569
13570    #[inline]
13571    fn s_type(&self) -> StructureType {
13572        self.s_type
13573    }
13574
13575    #[inline]
13576    fn next(&self) -> *const c_void {
13577        self.next
13578    }
13579}
13580
13581unsafe impl OutputChainStruct for PhysicalDeviceShaderObjectPropertiesEXT {
13582    #[inline]
13583    fn next_mut(&self) -> *mut c_void {
13584        self.next
13585    }
13586}
13587
13588unsafe impl InputChainStruct for PhysicalDeviceShaderQuadControlFeaturesKHR {
13589    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR;
13590
13591    #[inline]
13592    fn s_type(&self) -> StructureType {
13593        self.s_type
13594    }
13595
13596    #[inline]
13597    fn next(&self) -> *const c_void {
13598        self.next
13599    }
13600}
13601
13602unsafe impl OutputChainStruct for PhysicalDeviceShaderQuadControlFeaturesKHR {
13603    #[inline]
13604    fn next_mut(&self) -> *mut c_void {
13605        self.next
13606    }
13607}
13608
13609unsafe impl InputChainStruct for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13610    const TYPE: StructureType =
13611        StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR;
13612
13613    #[inline]
13614    fn s_type(&self) -> StructureType {
13615        self.s_type
13616    }
13617
13618    #[inline]
13619    fn next(&self) -> *const c_void {
13620        self.next
13621    }
13622}
13623
13624unsafe impl OutputChainStruct for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13625    #[inline]
13626    fn next_mut(&self) -> *mut c_void {
13627        self.next
13628    }
13629}
13630
13631unsafe impl InputChainStruct for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
13632    const TYPE: StructureType =
13633        StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT;
13634
13635    #[inline]
13636    fn s_type(&self) -> StructureType {
13637        self.s_type
13638    }
13639
13640    #[inline]
13641    fn next(&self) -> *const c_void {
13642        self.next
13643    }
13644}
13645
13646unsafe impl OutputChainStruct for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
13647    #[inline]
13648    fn next_mut(&self) -> *mut c_void {
13649        self.next
13650    }
13651}
13652
13653unsafe impl InputChainStruct for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
13654    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
13655
13656    #[inline]
13657    fn s_type(&self) -> StructureType {
13658        self.s_type
13659    }
13660
13661    #[inline]
13662    fn next(&self) -> *const c_void {
13663        self.next
13664    }
13665}
13666
13667unsafe impl OutputChainStruct for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
13668    #[inline]
13669    fn next_mut(&self) -> *mut c_void {
13670        self.next
13671    }
13672}
13673
13674unsafe impl InputChainStruct for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
13675    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
13676
13677    #[inline]
13678    fn s_type(&self) -> StructureType {
13679        self.s_type
13680    }
13681
13682    #[inline]
13683    fn next(&self) -> *const c_void {
13684        self.next
13685    }
13686}
13687
13688unsafe impl OutputChainStruct for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
13689    #[inline]
13690    fn next_mut(&self) -> *mut c_void {
13691        self.next
13692    }
13693}
13694
13695unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
13696    const TYPE: StructureType =
13697        StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
13698
13699    #[inline]
13700    fn s_type(&self) -> StructureType {
13701        self.s_type
13702    }
13703
13704    #[inline]
13705    fn next(&self) -> *const c_void {
13706        self.next
13707    }
13708}
13709
13710unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
13711    #[inline]
13712    fn next_mut(&self) -> *mut c_void {
13713        self.next
13714    }
13715}
13716
13717unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
13718    const TYPE: StructureType =
13719        StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT;
13720
13721    #[inline]
13722    fn s_type(&self) -> StructureType {
13723        self.s_type
13724    }
13725
13726    #[inline]
13727    fn next(&self) -> *const c_void {
13728        self.next
13729    }
13730}
13731
13732unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
13733    #[inline]
13734    fn next_mut(&self) -> *mut c_void {
13735        self.next
13736    }
13737}
13738
13739unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupRotateFeatures {
13740    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES;
13741
13742    #[inline]
13743    fn s_type(&self) -> StructureType {
13744        self.s_type
13745    }
13746
13747    #[inline]
13748    fn next(&self) -> *const c_void {
13749        self.next
13750    }
13751}
13752
13753unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupRotateFeatures {
13754    #[inline]
13755    fn next_mut(&self) -> *mut c_void {
13756        self.next
13757    }
13758}
13759
13760unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
13761    const TYPE: StructureType =
13762        StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
13763
13764    #[inline]
13765    fn s_type(&self) -> StructureType {
13766        self.s_type
13767    }
13768
13769    #[inline]
13770    fn next(&self) -> *const c_void {
13771        self.next
13772    }
13773}
13774
13775unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
13776    #[inline]
13777    fn next_mut(&self) -> *mut c_void {
13778        self.next
13779    }
13780}
13781
13782unsafe impl InputChainStruct for PhysicalDeviceShaderTerminateInvocationFeatures {
13783    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
13784
13785    #[inline]
13786    fn s_type(&self) -> StructureType {
13787        self.s_type
13788    }
13789
13790    #[inline]
13791    fn next(&self) -> *const c_void {
13792        self.next
13793    }
13794}
13795
13796unsafe impl OutputChainStruct for PhysicalDeviceShaderTerminateInvocationFeatures {
13797    #[inline]
13798    fn next_mut(&self) -> *mut c_void {
13799        self.next
13800    }
13801}
13802
13803unsafe impl InputChainStruct for PhysicalDeviceShaderTileImageFeaturesEXT {
13804    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT;
13805
13806    #[inline]
13807    fn s_type(&self) -> StructureType {
13808        self.s_type
13809    }
13810
13811    #[inline]
13812    fn next(&self) -> *const c_void {
13813        self.next
13814    }
13815}
13816
13817unsafe impl OutputChainStruct for PhysicalDeviceShaderTileImageFeaturesEXT {
13818    #[inline]
13819    fn next_mut(&self) -> *mut c_void {
13820        self.next
13821    }
13822}
13823
13824unsafe impl InputChainStruct for PhysicalDeviceShaderTileImagePropertiesEXT {
13825    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT;
13826
13827    #[inline]
13828    fn s_type(&self) -> StructureType {
13829        self.s_type
13830    }
13831
13832    #[inline]
13833    fn next(&self) -> *const c_void {
13834        self.next
13835    }
13836}
13837
13838unsafe impl OutputChainStruct for PhysicalDeviceShaderTileImagePropertiesEXT {
13839    #[inline]
13840    fn next_mut(&self) -> *mut c_void {
13841        self.next
13842    }
13843}
13844
13845unsafe impl InputChainStruct for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
13846    const TYPE: StructureType =
13847        StructureType::PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT;
13848
13849    #[inline]
13850    fn s_type(&self) -> StructureType {
13851        self.s_type
13852    }
13853
13854    #[inline]
13855    fn next(&self) -> *const c_void {
13856        self.next
13857    }
13858}
13859
13860unsafe impl OutputChainStruct for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
13861    #[inline]
13862    fn next_mut(&self) -> *mut c_void {
13863        self.next
13864    }
13865}
13866
13867unsafe impl InputChainStruct for PhysicalDeviceShaderUntypedPointersFeaturesKHR {
13868    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR;
13869
13870    #[inline]
13871    fn s_type(&self) -> StructureType {
13872        self.s_type
13873    }
13874
13875    #[inline]
13876    fn next(&self) -> *const c_void {
13877        self.next
13878    }
13879}
13880
13881unsafe impl OutputChainStruct for PhysicalDeviceShaderUntypedPointersFeaturesKHR {
13882    #[inline]
13883    fn next_mut(&self) -> *mut c_void {
13884        self.next
13885    }
13886}
13887
13888unsafe impl InputChainStruct for PhysicalDeviceShadingRateImageFeaturesNV {
13889    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
13890
13891    #[inline]
13892    fn s_type(&self) -> StructureType {
13893        self.s_type
13894    }
13895
13896    #[inline]
13897    fn next(&self) -> *const c_void {
13898        self.next
13899    }
13900}
13901
13902unsafe impl OutputChainStruct for PhysicalDeviceShadingRateImageFeaturesNV {
13903    #[inline]
13904    fn next_mut(&self) -> *mut c_void {
13905        self.next
13906    }
13907}
13908
13909unsafe impl InputChainStruct for PhysicalDeviceShadingRateImagePropertiesNV {
13910    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
13911
13912    #[inline]
13913    fn s_type(&self) -> StructureType {
13914        self.s_type
13915    }
13916
13917    #[inline]
13918    fn next(&self) -> *const c_void {
13919        self.next
13920    }
13921}
13922
13923unsafe impl OutputChainStruct for PhysicalDeviceShadingRateImagePropertiesNV {
13924    #[inline]
13925    fn next_mut(&self) -> *mut c_void {
13926        self.next
13927    }
13928}
13929
13930unsafe impl InputChainStruct for PhysicalDeviceSparseImageFormatInfo2 {
13931    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
13932
13933    #[inline]
13934    fn s_type(&self) -> StructureType {
13935        self.s_type
13936    }
13937
13938    #[inline]
13939    fn next(&self) -> *const c_void {
13940        self.next
13941    }
13942}
13943
13944unsafe impl InputChainStruct for PhysicalDeviceSubgroupProperties {
13945    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
13946
13947    #[inline]
13948    fn s_type(&self) -> StructureType {
13949        self.s_type
13950    }
13951
13952    #[inline]
13953    fn next(&self) -> *const c_void {
13954        self.next
13955    }
13956}
13957
13958unsafe impl OutputChainStruct for PhysicalDeviceSubgroupProperties {
13959    #[inline]
13960    fn next_mut(&self) -> *mut c_void {
13961        self.next
13962    }
13963}
13964
13965unsafe impl InputChainStruct for PhysicalDeviceSubgroupSizeControlFeatures {
13966    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
13967
13968    #[inline]
13969    fn s_type(&self) -> StructureType {
13970        self.s_type
13971    }
13972
13973    #[inline]
13974    fn next(&self) -> *const c_void {
13975        self.next
13976    }
13977}
13978
13979unsafe impl OutputChainStruct for PhysicalDeviceSubgroupSizeControlFeatures {
13980    #[inline]
13981    fn next_mut(&self) -> *mut c_void {
13982        self.next
13983    }
13984}
13985
13986unsafe impl InputChainStruct for PhysicalDeviceSubgroupSizeControlProperties {
13987    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
13988
13989    #[inline]
13990    fn s_type(&self) -> StructureType {
13991        self.s_type
13992    }
13993
13994    #[inline]
13995    fn next(&self) -> *const c_void {
13996        self.next
13997    }
13998}
13999
14000unsafe impl OutputChainStruct for PhysicalDeviceSubgroupSizeControlProperties {
14001    #[inline]
14002    fn next_mut(&self) -> *mut c_void {
14003        self.next
14004    }
14005}
14006
14007unsafe impl InputChainStruct for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
14008    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT;
14009
14010    #[inline]
14011    fn s_type(&self) -> StructureType {
14012        self.s_type
14013    }
14014
14015    #[inline]
14016    fn next(&self) -> *const c_void {
14017        self.next
14018    }
14019}
14020
14021unsafe impl OutputChainStruct for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
14022    #[inline]
14023    fn next_mut(&self) -> *mut c_void {
14024        self.next
14025    }
14026}
14027
14028unsafe impl InputChainStruct for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
14029    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
14030
14031    #[inline]
14032    fn s_type(&self) -> StructureType {
14033        self.s_type
14034    }
14035
14036    #[inline]
14037    fn next(&self) -> *const c_void {
14038        self.next
14039    }
14040}
14041
14042unsafe impl OutputChainStruct for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
14043    #[inline]
14044    fn next_mut(&self) -> *mut c_void {
14045        self.next
14046    }
14047}
14048
14049unsafe impl InputChainStruct for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
14050    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
14051
14052    #[inline]
14053    fn s_type(&self) -> StructureType {
14054        self.s_type
14055    }
14056
14057    #[inline]
14058    fn next(&self) -> *const c_void {
14059        self.next
14060    }
14061}
14062
14063unsafe impl OutputChainStruct for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
14064    #[inline]
14065    fn next_mut(&self) -> *mut c_void {
14066        self.next
14067    }
14068}
14069
14070unsafe impl InputChainStruct for PhysicalDeviceSurfaceInfo2KHR {
14071    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
14072
14073    #[inline]
14074    fn s_type(&self) -> StructureType {
14075        self.s_type
14076    }
14077
14078    #[inline]
14079    fn next(&self) -> *const c_void {
14080        self.next
14081    }
14082}
14083
14084unsafe impl InputChainStruct for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
14085    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR;
14086
14087    #[inline]
14088    fn s_type(&self) -> StructureType {
14089        self.s_type
14090    }
14091
14092    #[inline]
14093    fn next(&self) -> *const c_void {
14094        self.next
14095    }
14096}
14097
14098unsafe impl OutputChainStruct for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
14099    #[inline]
14100    fn next_mut(&self) -> *mut c_void {
14101        self.next
14102    }
14103}
14104
14105unsafe impl InputChainStruct for PhysicalDeviceSynchronization2Features {
14106    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
14107
14108    #[inline]
14109    fn s_type(&self) -> StructureType {
14110        self.s_type
14111    }
14112
14113    #[inline]
14114    fn next(&self) -> *const c_void {
14115        self.next
14116    }
14117}
14118
14119unsafe impl OutputChainStruct for PhysicalDeviceSynchronization2Features {
14120    #[inline]
14121    fn next_mut(&self) -> *mut c_void {
14122        self.next
14123    }
14124}
14125
14126unsafe impl InputChainStruct for PhysicalDeviceTensorFeaturesARM {
14127    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TENSOR_FEATURES_ARM;
14128
14129    #[inline]
14130    fn s_type(&self) -> StructureType {
14131        self.s_type
14132    }
14133
14134    #[inline]
14135    fn next(&self) -> *const c_void {
14136        self.next
14137    }
14138}
14139
14140unsafe impl OutputChainStruct for PhysicalDeviceTensorFeaturesARM {
14141    #[inline]
14142    fn next_mut(&self) -> *mut c_void {
14143        self.next
14144    }
14145}
14146
14147unsafe impl InputChainStruct for PhysicalDeviceTensorPropertiesARM {
14148    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM;
14149
14150    #[inline]
14151    fn s_type(&self) -> StructureType {
14152        self.s_type
14153    }
14154
14155    #[inline]
14156    fn next(&self) -> *const c_void {
14157        self.next
14158    }
14159}
14160
14161unsafe impl OutputChainStruct for PhysicalDeviceTensorPropertiesARM {
14162    #[inline]
14163    fn next_mut(&self) -> *mut c_void {
14164        self.next
14165    }
14166}
14167
14168unsafe impl InputChainStruct for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
14169    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
14170
14171    #[inline]
14172    fn s_type(&self) -> StructureType {
14173        self.s_type
14174    }
14175
14176    #[inline]
14177    fn next(&self) -> *const c_void {
14178        self.next
14179    }
14180}
14181
14182unsafe impl OutputChainStruct for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
14183    #[inline]
14184    fn next_mut(&self) -> *mut c_void {
14185        self.next
14186    }
14187}
14188
14189unsafe impl InputChainStruct for PhysicalDeviceTexelBufferAlignmentProperties {
14190    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
14191
14192    #[inline]
14193    fn s_type(&self) -> StructureType {
14194        self.s_type
14195    }
14196
14197    #[inline]
14198    fn next(&self) -> *const c_void {
14199        self.next
14200    }
14201}
14202
14203unsafe impl OutputChainStruct for PhysicalDeviceTexelBufferAlignmentProperties {
14204    #[inline]
14205    fn next_mut(&self) -> *mut c_void {
14206        self.next
14207    }
14208}
14209
14210unsafe impl InputChainStruct for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
14211    const TYPE: StructureType =
14212        StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT;
14213
14214    #[inline]
14215    fn s_type(&self) -> StructureType {
14216        self.s_type
14217    }
14218
14219    #[inline]
14220    fn next(&self) -> *const c_void {
14221        self.next
14222    }
14223}
14224
14225unsafe impl OutputChainStruct for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
14226    #[inline]
14227    fn next_mut(&self) -> *mut c_void {
14228        self.next
14229    }
14230}
14231
14232unsafe impl InputChainStruct for PhysicalDeviceTextureCompressionASTCHDRFeatures {
14233    const TYPE: StructureType =
14234        StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
14235
14236    #[inline]
14237    fn s_type(&self) -> StructureType {
14238        self.s_type
14239    }
14240
14241    #[inline]
14242    fn next(&self) -> *const c_void {
14243        self.next
14244    }
14245}
14246
14247unsafe impl OutputChainStruct for PhysicalDeviceTextureCompressionASTCHDRFeatures {
14248    #[inline]
14249    fn next_mut(&self) -> *mut c_void {
14250        self.next
14251    }
14252}
14253
14254unsafe impl InputChainStruct for PhysicalDeviceTileMemoryHeapFeaturesQCOM {
14255    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM;
14256
14257    #[inline]
14258    fn s_type(&self) -> StructureType {
14259        self.s_type
14260    }
14261
14262    #[inline]
14263    fn next(&self) -> *const c_void {
14264        self.next
14265    }
14266}
14267
14268unsafe impl OutputChainStruct for PhysicalDeviceTileMemoryHeapFeaturesQCOM {
14269    #[inline]
14270    fn next_mut(&self) -> *mut c_void {
14271        self.next
14272    }
14273}
14274
14275unsafe impl InputChainStruct for PhysicalDeviceTileMemoryHeapPropertiesQCOM {
14276    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM;
14277
14278    #[inline]
14279    fn s_type(&self) -> StructureType {
14280        self.s_type
14281    }
14282
14283    #[inline]
14284    fn next(&self) -> *const c_void {
14285        self.next
14286    }
14287}
14288
14289unsafe impl OutputChainStruct for PhysicalDeviceTileMemoryHeapPropertiesQCOM {
14290    #[inline]
14291    fn next_mut(&self) -> *mut c_void {
14292        self.next
14293    }
14294}
14295
14296unsafe impl InputChainStruct for PhysicalDeviceTilePropertiesFeaturesQCOM {
14297    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM;
14298
14299    #[inline]
14300    fn s_type(&self) -> StructureType {
14301        self.s_type
14302    }
14303
14304    #[inline]
14305    fn next(&self) -> *const c_void {
14306        self.next
14307    }
14308}
14309
14310unsafe impl OutputChainStruct for PhysicalDeviceTilePropertiesFeaturesQCOM {
14311    #[inline]
14312    fn next_mut(&self) -> *mut c_void {
14313        self.next
14314    }
14315}
14316
14317unsafe impl InputChainStruct for PhysicalDeviceTileShadingFeaturesQCOM {
14318    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM;
14319
14320    #[inline]
14321    fn s_type(&self) -> StructureType {
14322        self.s_type
14323    }
14324
14325    #[inline]
14326    fn next(&self) -> *const c_void {
14327        self.next
14328    }
14329}
14330
14331unsafe impl OutputChainStruct for PhysicalDeviceTileShadingFeaturesQCOM {
14332    #[inline]
14333    fn next_mut(&self) -> *mut c_void {
14334        self.next
14335    }
14336}
14337
14338unsafe impl InputChainStruct for PhysicalDeviceTileShadingPropertiesQCOM {
14339    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM;
14340
14341    #[inline]
14342    fn s_type(&self) -> StructureType {
14343        self.s_type
14344    }
14345
14346    #[inline]
14347    fn next(&self) -> *const c_void {
14348        self.next
14349    }
14350}
14351
14352unsafe impl OutputChainStruct for PhysicalDeviceTileShadingPropertiesQCOM {
14353    #[inline]
14354    fn next_mut(&self) -> *mut c_void {
14355        self.next
14356    }
14357}
14358
14359unsafe impl InputChainStruct for PhysicalDeviceTimelineSemaphoreFeatures {
14360    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
14361
14362    #[inline]
14363    fn s_type(&self) -> StructureType {
14364        self.s_type
14365    }
14366
14367    #[inline]
14368    fn next(&self) -> *const c_void {
14369        self.next
14370    }
14371}
14372
14373unsafe impl OutputChainStruct for PhysicalDeviceTimelineSemaphoreFeatures {
14374    #[inline]
14375    fn next_mut(&self) -> *mut c_void {
14376        self.next
14377    }
14378}
14379
14380unsafe impl InputChainStruct for PhysicalDeviceTimelineSemaphoreProperties {
14381    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
14382
14383    #[inline]
14384    fn s_type(&self) -> StructureType {
14385        self.s_type
14386    }
14387
14388    #[inline]
14389    fn next(&self) -> *const c_void {
14390        self.next
14391    }
14392}
14393
14394unsafe impl OutputChainStruct for PhysicalDeviceTimelineSemaphoreProperties {
14395    #[inline]
14396    fn next_mut(&self) -> *mut c_void {
14397        self.next
14398    }
14399}
14400
14401unsafe impl InputChainStruct for PhysicalDeviceToolProperties {
14402    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TOOL_PROPERTIES;
14403
14404    #[inline]
14405    fn s_type(&self) -> StructureType {
14406        self.s_type
14407    }
14408
14409    #[inline]
14410    fn next(&self) -> *const c_void {
14411        self.next
14412    }
14413}
14414
14415unsafe impl OutputChainStruct for PhysicalDeviceToolProperties {
14416    #[inline]
14417    fn next_mut(&self) -> *mut c_void {
14418        self.next
14419    }
14420}
14421
14422unsafe impl InputChainStruct for PhysicalDeviceTransformFeedbackFeaturesEXT {
14423    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
14424
14425    #[inline]
14426    fn s_type(&self) -> StructureType {
14427        self.s_type
14428    }
14429
14430    #[inline]
14431    fn next(&self) -> *const c_void {
14432        self.next
14433    }
14434}
14435
14436unsafe impl OutputChainStruct for PhysicalDeviceTransformFeedbackFeaturesEXT {
14437    #[inline]
14438    fn next_mut(&self) -> *mut c_void {
14439        self.next
14440    }
14441}
14442
14443unsafe impl InputChainStruct for PhysicalDeviceTransformFeedbackPropertiesEXT {
14444    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
14445
14446    #[inline]
14447    fn s_type(&self) -> StructureType {
14448        self.s_type
14449    }
14450
14451    #[inline]
14452    fn next(&self) -> *const c_void {
14453        self.next
14454    }
14455}
14456
14457unsafe impl OutputChainStruct for PhysicalDeviceTransformFeedbackPropertiesEXT {
14458    #[inline]
14459    fn next_mut(&self) -> *mut c_void {
14460        self.next
14461    }
14462}
14463
14464unsafe impl InputChainStruct for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
14465    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR;
14466
14467    #[inline]
14468    fn s_type(&self) -> StructureType {
14469        self.s_type
14470    }
14471
14472    #[inline]
14473    fn next(&self) -> *const c_void {
14474        self.next
14475    }
14476}
14477
14478unsafe impl OutputChainStruct for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
14479    #[inline]
14480    fn next_mut(&self) -> *mut c_void {
14481        self.next
14482    }
14483}
14484
14485unsafe impl InputChainStruct for PhysicalDeviceUniformBufferStandardLayoutFeatures {
14486    const TYPE: StructureType =
14487        StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
14488
14489    #[inline]
14490    fn s_type(&self) -> StructureType {
14491        self.s_type
14492    }
14493
14494    #[inline]
14495    fn next(&self) -> *const c_void {
14496        self.next
14497    }
14498}
14499
14500unsafe impl OutputChainStruct for PhysicalDeviceUniformBufferStandardLayoutFeatures {
14501    #[inline]
14502    fn next_mut(&self) -> *mut c_void {
14503        self.next
14504    }
14505}
14506
14507unsafe impl InputChainStruct for PhysicalDeviceVariablePointersFeatures {
14508    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
14509
14510    #[inline]
14511    fn s_type(&self) -> StructureType {
14512        self.s_type
14513    }
14514
14515    #[inline]
14516    fn next(&self) -> *const c_void {
14517        self.next
14518    }
14519}
14520
14521unsafe impl OutputChainStruct for PhysicalDeviceVariablePointersFeatures {
14522    #[inline]
14523    fn next_mut(&self) -> *mut c_void {
14524        self.next
14525    }
14526}
14527
14528unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeDivisorFeatures {
14529    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES;
14530
14531    #[inline]
14532    fn s_type(&self) -> StructureType {
14533        self.s_type
14534    }
14535
14536    #[inline]
14537    fn next(&self) -> *const c_void {
14538        self.next
14539    }
14540}
14541
14542unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeDivisorFeatures {
14543    #[inline]
14544    fn next_mut(&self) -> *mut c_void {
14545        self.next
14546    }
14547}
14548
14549unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeDivisorProperties {
14550    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES;
14551
14552    #[inline]
14553    fn s_type(&self) -> StructureType {
14554        self.s_type
14555    }
14556
14557    #[inline]
14558    fn next(&self) -> *const c_void {
14559        self.next
14560    }
14561}
14562
14563unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeDivisorProperties {
14564    #[inline]
14565    fn next_mut(&self) -> *mut c_void {
14566        self.next
14567    }
14568}
14569
14570unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14571    const TYPE: StructureType =
14572        StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
14573
14574    #[inline]
14575    fn s_type(&self) -> StructureType {
14576        self.s_type
14577    }
14578
14579    #[inline]
14580    fn next(&self) -> *const c_void {
14581        self.next
14582    }
14583}
14584
14585unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14586    #[inline]
14587    fn next_mut(&self) -> *mut c_void {
14588        self.next
14589    }
14590}
14591
14592unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
14593    const TYPE: StructureType =
14594        StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT;
14595
14596    #[inline]
14597    fn s_type(&self) -> StructureType {
14598        self.s_type
14599    }
14600
14601    #[inline]
14602    fn next(&self) -> *const c_void {
14603        self.next
14604    }
14605}
14606
14607unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
14608    #[inline]
14609    fn next_mut(&self) -> *mut c_void {
14610        self.next
14611    }
14612}
14613
14614unsafe impl InputChainStruct for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
14615    const TYPE: StructureType =
14616        StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
14617
14618    #[inline]
14619    fn s_type(&self) -> StructureType {
14620        self.s_type
14621    }
14622
14623    #[inline]
14624    fn next(&self) -> *const c_void {
14625        self.next
14626    }
14627}
14628
14629unsafe impl OutputChainStruct for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
14630    #[inline]
14631    fn next_mut(&self) -> *mut c_void {
14632        self.next
14633    }
14634}
14635
14636unsafe impl InputChainStruct for PhysicalDeviceVideoDecodeVP9FeaturesKHR {
14637    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR;
14638
14639    #[inline]
14640    fn s_type(&self) -> StructureType {
14641        self.s_type
14642    }
14643
14644    #[inline]
14645    fn next(&self) -> *const c_void {
14646        self.next
14647    }
14648}
14649
14650unsafe impl OutputChainStruct for PhysicalDeviceVideoDecodeVP9FeaturesKHR {
14651    #[inline]
14652    fn next_mut(&self) -> *mut c_void {
14653        self.next
14654    }
14655}
14656
14657unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
14658    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR;
14659
14660    #[inline]
14661    fn s_type(&self) -> StructureType {
14662        self.s_type
14663    }
14664
14665    #[inline]
14666    fn next(&self) -> *const c_void {
14667        self.next
14668    }
14669}
14670
14671unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
14672    #[inline]
14673    fn next_mut(&self) -> *mut c_void {
14674        self.next
14675    }
14676}
14677
14678unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
14679    const TYPE: StructureType =
14680        StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR;
14681
14682    #[inline]
14683    fn s_type(&self) -> StructureType {
14684        self.s_type
14685    }
14686
14687    #[inline]
14688    fn next(&self) -> *const c_void {
14689        self.next
14690    }
14691}
14692
14693unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
14694    #[inline]
14695    fn next_mut(&self) -> *mut c_void {
14696        self.next
14697    }
14698}
14699
14700unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
14701    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR;
14702
14703    #[inline]
14704    fn s_type(&self) -> StructureType {
14705        self.s_type
14706    }
14707
14708    #[inline]
14709    fn next(&self) -> *const c_void {
14710        self.next
14711    }
14712}
14713
14714unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
14715    const TYPE: StructureType =
14716        StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR;
14717
14718    #[inline]
14719    fn s_type(&self) -> StructureType {
14720        self.s_type
14721    }
14722
14723    #[inline]
14724    fn next(&self) -> *const c_void {
14725        self.next
14726    }
14727}
14728
14729unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
14730    #[inline]
14731    fn next_mut(&self) -> *mut c_void {
14732        self.next
14733    }
14734}
14735
14736unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
14737    const TYPE: StructureType =
14738        StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE;
14739
14740    #[inline]
14741    fn s_type(&self) -> StructureType {
14742        self.s_type
14743    }
14744
14745    #[inline]
14746    fn next(&self) -> *const c_void {
14747        self.next
14748    }
14749}
14750
14751unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
14752    #[inline]
14753    fn next_mut(&self) -> *mut c_void {
14754        self.next
14755    }
14756}
14757
14758unsafe impl InputChainStruct for PhysicalDeviceVideoFormatInfoKHR {
14759    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
14760
14761    #[inline]
14762    fn s_type(&self) -> StructureType {
14763        self.s_type
14764    }
14765
14766    #[inline]
14767    fn next(&self) -> *const c_void {
14768        self.next
14769    }
14770}
14771
14772unsafe impl InputChainStruct for PhysicalDeviceVideoMaintenance1FeaturesKHR {
14773    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR;
14774
14775    #[inline]
14776    fn s_type(&self) -> StructureType {
14777        self.s_type
14778    }
14779
14780    #[inline]
14781    fn next(&self) -> *const c_void {
14782        self.next
14783    }
14784}
14785
14786unsafe impl OutputChainStruct for PhysicalDeviceVideoMaintenance1FeaturesKHR {
14787    #[inline]
14788    fn next_mut(&self) -> *mut c_void {
14789        self.next
14790    }
14791}
14792
14793unsafe impl InputChainStruct for PhysicalDeviceVideoMaintenance2FeaturesKHR {
14794    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR;
14795
14796    #[inline]
14797    fn s_type(&self) -> StructureType {
14798        self.s_type
14799    }
14800
14801    #[inline]
14802    fn next(&self) -> *const c_void {
14803        self.next
14804    }
14805}
14806
14807unsafe impl OutputChainStruct for PhysicalDeviceVideoMaintenance2FeaturesKHR {
14808    #[inline]
14809    fn next_mut(&self) -> *mut c_void {
14810        self.next
14811    }
14812}
14813
14814unsafe impl InputChainStruct for PhysicalDeviceVulkan11Features {
14815    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
14816
14817    #[inline]
14818    fn s_type(&self) -> StructureType {
14819        self.s_type
14820    }
14821
14822    #[inline]
14823    fn next(&self) -> *const c_void {
14824        self.next
14825    }
14826}
14827
14828unsafe impl OutputChainStruct for PhysicalDeviceVulkan11Features {
14829    #[inline]
14830    fn next_mut(&self) -> *mut c_void {
14831        self.next
14832    }
14833}
14834
14835unsafe impl InputChainStruct for PhysicalDeviceVulkan11Properties {
14836    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
14837
14838    #[inline]
14839    fn s_type(&self) -> StructureType {
14840        self.s_type
14841    }
14842
14843    #[inline]
14844    fn next(&self) -> *const c_void {
14845        self.next
14846    }
14847}
14848
14849unsafe impl OutputChainStruct for PhysicalDeviceVulkan11Properties {
14850    #[inline]
14851    fn next_mut(&self) -> *mut c_void {
14852        self.next
14853    }
14854}
14855
14856unsafe impl InputChainStruct for PhysicalDeviceVulkan12Features {
14857    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
14858
14859    #[inline]
14860    fn s_type(&self) -> StructureType {
14861        self.s_type
14862    }
14863
14864    #[inline]
14865    fn next(&self) -> *const c_void {
14866        self.next
14867    }
14868}
14869
14870unsafe impl OutputChainStruct for PhysicalDeviceVulkan12Features {
14871    #[inline]
14872    fn next_mut(&self) -> *mut c_void {
14873        self.next
14874    }
14875}
14876
14877unsafe impl InputChainStruct for PhysicalDeviceVulkan12Properties {
14878    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
14879
14880    #[inline]
14881    fn s_type(&self) -> StructureType {
14882        self.s_type
14883    }
14884
14885    #[inline]
14886    fn next(&self) -> *const c_void {
14887        self.next
14888    }
14889}
14890
14891unsafe impl OutputChainStruct for PhysicalDeviceVulkan12Properties {
14892    #[inline]
14893    fn next_mut(&self) -> *mut c_void {
14894        self.next
14895    }
14896}
14897
14898unsafe impl InputChainStruct for PhysicalDeviceVulkan13Features {
14899    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
14900
14901    #[inline]
14902    fn s_type(&self) -> StructureType {
14903        self.s_type
14904    }
14905
14906    #[inline]
14907    fn next(&self) -> *const c_void {
14908        self.next
14909    }
14910}
14911
14912unsafe impl OutputChainStruct for PhysicalDeviceVulkan13Features {
14913    #[inline]
14914    fn next_mut(&self) -> *mut c_void {
14915        self.next
14916    }
14917}
14918
14919unsafe impl InputChainStruct for PhysicalDeviceVulkan13Properties {
14920    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES;
14921
14922    #[inline]
14923    fn s_type(&self) -> StructureType {
14924        self.s_type
14925    }
14926
14927    #[inline]
14928    fn next(&self) -> *const c_void {
14929        self.next
14930    }
14931}
14932
14933unsafe impl OutputChainStruct for PhysicalDeviceVulkan13Properties {
14934    #[inline]
14935    fn next_mut(&self) -> *mut c_void {
14936        self.next
14937    }
14938}
14939
14940unsafe impl InputChainStruct for PhysicalDeviceVulkan14Features {
14941    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES;
14942
14943    #[inline]
14944    fn s_type(&self) -> StructureType {
14945        self.s_type
14946    }
14947
14948    #[inline]
14949    fn next(&self) -> *const c_void {
14950        self.next
14951    }
14952}
14953
14954unsafe impl OutputChainStruct for PhysicalDeviceVulkan14Features {
14955    #[inline]
14956    fn next_mut(&self) -> *mut c_void {
14957        self.next
14958    }
14959}
14960
14961unsafe impl InputChainStruct for PhysicalDeviceVulkan14Properties {
14962    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES;
14963
14964    #[inline]
14965    fn s_type(&self) -> StructureType {
14966        self.s_type
14967    }
14968
14969    #[inline]
14970    fn next(&self) -> *const c_void {
14971        self.next
14972    }
14973}
14974
14975unsafe impl OutputChainStruct for PhysicalDeviceVulkan14Properties {
14976    #[inline]
14977    fn next_mut(&self) -> *mut c_void {
14978        self.next
14979    }
14980}
14981
14982unsafe impl InputChainStruct for PhysicalDeviceVulkanMemoryModelFeatures {
14983    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
14984
14985    #[inline]
14986    fn s_type(&self) -> StructureType {
14987        self.s_type
14988    }
14989
14990    #[inline]
14991    fn next(&self) -> *const c_void {
14992        self.next
14993    }
14994}
14995
14996unsafe impl OutputChainStruct for PhysicalDeviceVulkanMemoryModelFeatures {
14997    #[inline]
14998    fn next_mut(&self) -> *mut c_void {
14999        self.next
15000    }
15001}
15002
15003unsafe impl InputChainStruct for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
15004    const TYPE: StructureType =
15005        StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
15006
15007    #[inline]
15008    fn s_type(&self) -> StructureType {
15009        self.s_type
15010    }
15011
15012    #[inline]
15013    fn next(&self) -> *const c_void {
15014        self.next
15015    }
15016}
15017
15018unsafe impl OutputChainStruct for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
15019    #[inline]
15020    fn next_mut(&self) -> *mut c_void {
15021        self.next
15022    }
15023}
15024
15025unsafe impl InputChainStruct for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
15026    const TYPE: StructureType =
15027        StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
15028
15029    #[inline]
15030    fn s_type(&self) -> StructureType {
15031        self.s_type
15032    }
15033
15034    #[inline]
15035    fn next(&self) -> *const c_void {
15036        self.next
15037    }
15038}
15039
15040unsafe impl OutputChainStruct for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
15041    #[inline]
15042    fn next_mut(&self) -> *mut c_void {
15043        self.next
15044    }
15045}
15046
15047unsafe impl InputChainStruct for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
15048    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM;
15049
15050    #[inline]
15051    fn s_type(&self) -> StructureType {
15052        self.s_type
15053    }
15054
15055    #[inline]
15056    fn next(&self) -> *const c_void {
15057        self.next
15058    }
15059}
15060
15061unsafe impl OutputChainStruct for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
15062    #[inline]
15063    fn next_mut(&self) -> *mut c_void {
15064        self.next
15065    }
15066}
15067
15068unsafe impl InputChainStruct for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
15069    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
15070
15071    #[inline]
15072    fn s_type(&self) -> StructureType {
15073        self.s_type
15074    }
15075
15076    #[inline]
15077    fn next(&self) -> *const c_void {
15078        self.next
15079    }
15080}
15081
15082unsafe impl OutputChainStruct for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
15083    #[inline]
15084    fn next_mut(&self) -> *mut c_void {
15085        self.next
15086    }
15087}
15088
15089unsafe impl InputChainStruct for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
15090    const TYPE: StructureType =
15091        StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT;
15092
15093    #[inline]
15094    fn s_type(&self) -> StructureType {
15095        self.s_type
15096    }
15097
15098    #[inline]
15099    fn next(&self) -> *const c_void {
15100        self.next
15101    }
15102}
15103
15104unsafe impl OutputChainStruct for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
15105    #[inline]
15106    fn next_mut(&self) -> *mut c_void {
15107        self.next
15108    }
15109}
15110
15111unsafe impl InputChainStruct for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
15112    const TYPE: StructureType =
15113        StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
15114
15115    #[inline]
15116    fn s_type(&self) -> StructureType {
15117        self.s_type
15118    }
15119
15120    #[inline]
15121    fn next(&self) -> *const c_void {
15122        self.next
15123    }
15124}
15125
15126unsafe impl OutputChainStruct for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
15127    #[inline]
15128    fn next_mut(&self) -> *mut c_void {
15129        self.next
15130    }
15131}
15132
15133unsafe impl InputChainStruct for PipelineBinaryCreateInfoKHR {
15134    const TYPE: StructureType = StructureType::PIPELINE_BINARY_CREATE_INFO_KHR;
15135
15136    #[inline]
15137    fn s_type(&self) -> StructureType {
15138        self.s_type
15139    }
15140
15141    #[inline]
15142    fn next(&self) -> *const c_void {
15143        self.next
15144    }
15145}
15146
15147unsafe impl InputChainStruct for PipelineBinaryDataInfoKHR {
15148    const TYPE: StructureType = StructureType::PIPELINE_BINARY_DATA_INFO_KHR;
15149
15150    #[inline]
15151    fn s_type(&self) -> StructureType {
15152        self.s_type
15153    }
15154
15155    #[inline]
15156    fn next(&self) -> *const c_void {
15157        self.next
15158    }
15159}
15160
15161unsafe impl OutputChainStruct for PipelineBinaryDataInfoKHR {
15162    #[inline]
15163    fn next_mut(&self) -> *mut c_void {
15164        self.next
15165    }
15166}
15167
15168unsafe impl InputChainStruct for PipelineBinaryHandlesInfoKHR {
15169    const TYPE: StructureType = StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR;
15170
15171    #[inline]
15172    fn s_type(&self) -> StructureType {
15173        self.s_type
15174    }
15175
15176    #[inline]
15177    fn next(&self) -> *const c_void {
15178        self.next
15179    }
15180}
15181
15182unsafe impl InputChainStruct for PipelineBinaryInfoKHR {
15183    const TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR;
15184
15185    #[inline]
15186    fn s_type(&self) -> StructureType {
15187        self.s_type
15188    }
15189
15190    #[inline]
15191    fn next(&self) -> *const c_void {
15192        self.next
15193    }
15194}
15195
15196unsafe impl InputChainStruct for PipelineBinaryKeyKHR {
15197    const TYPE: StructureType = StructureType::PIPELINE_BINARY_KEY_KHR;
15198
15199    #[inline]
15200    fn s_type(&self) -> StructureType {
15201        self.s_type
15202    }
15203
15204    #[inline]
15205    fn next(&self) -> *const c_void {
15206        self.next
15207    }
15208}
15209
15210unsafe impl OutputChainStruct for PipelineBinaryKeyKHR {
15211    #[inline]
15212    fn next_mut(&self) -> *mut c_void {
15213        self.next
15214    }
15215}
15216
15217unsafe impl InputChainStruct for PipelineCacheCreateInfo {
15218    const TYPE: StructureType = StructureType::PIPELINE_CACHE_CREATE_INFO;
15219
15220    #[inline]
15221    fn s_type(&self) -> StructureType {
15222        self.s_type
15223    }
15224
15225    #[inline]
15226    fn next(&self) -> *const c_void {
15227        self.next
15228    }
15229}
15230
15231unsafe impl InputChainStruct for PipelineColorBlendAdvancedStateCreateInfoEXT {
15232    const TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
15233
15234    #[inline]
15235    fn s_type(&self) -> StructureType {
15236        self.s_type
15237    }
15238
15239    #[inline]
15240    fn next(&self) -> *const c_void {
15241        self.next
15242    }
15243}
15244
15245unsafe impl InputChainStruct for PipelineColorBlendStateCreateInfo {
15246    const TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
15247
15248    #[inline]
15249    fn s_type(&self) -> StructureType {
15250        self.s_type
15251    }
15252
15253    #[inline]
15254    fn next(&self) -> *const c_void {
15255        self.next
15256    }
15257}
15258
15259unsafe impl InputChainStruct for PipelineColorWriteCreateInfoEXT {
15260    const TYPE: StructureType = StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT;
15261
15262    #[inline]
15263    fn s_type(&self) -> StructureType {
15264        self.s_type
15265    }
15266
15267    #[inline]
15268    fn next(&self) -> *const c_void {
15269        self.next
15270    }
15271}
15272
15273unsafe impl InputChainStruct for PipelineCompilerControlCreateInfoAMD {
15274    const TYPE: StructureType = StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
15275
15276    #[inline]
15277    fn s_type(&self) -> StructureType {
15278        self.s_type
15279    }
15280
15281    #[inline]
15282    fn next(&self) -> *const c_void {
15283        self.next
15284    }
15285}
15286
15287unsafe impl InputChainStruct for PipelineCoverageModulationStateCreateInfoNV {
15288    const TYPE: StructureType = StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
15289
15290    #[inline]
15291    fn s_type(&self) -> StructureType {
15292        self.s_type
15293    }
15294
15295    #[inline]
15296    fn next(&self) -> *const c_void {
15297        self.next
15298    }
15299}
15300
15301unsafe impl InputChainStruct for PipelineCoverageReductionStateCreateInfoNV {
15302    const TYPE: StructureType = StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
15303
15304    #[inline]
15305    fn s_type(&self) -> StructureType {
15306        self.s_type
15307    }
15308
15309    #[inline]
15310    fn next(&self) -> *const c_void {
15311        self.next
15312    }
15313}
15314
15315unsafe impl InputChainStruct for PipelineCoverageToColorStateCreateInfoNV {
15316    const TYPE: StructureType = StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
15317
15318    #[inline]
15319    fn s_type(&self) -> StructureType {
15320        self.s_type
15321    }
15322
15323    #[inline]
15324    fn next(&self) -> *const c_void {
15325        self.next
15326    }
15327}
15328
15329unsafe impl InputChainStruct for PipelineCreateFlags2CreateInfo {
15330    const TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO;
15331
15332    #[inline]
15333    fn s_type(&self) -> StructureType {
15334        self.s_type
15335    }
15336
15337    #[inline]
15338    fn next(&self) -> *const c_void {
15339        self.next
15340    }
15341}
15342
15343unsafe impl InputChainStruct for PipelineCreateInfoKHR {
15344    const TYPE: StructureType = StructureType::PIPELINE_CREATE_INFO_KHR;
15345
15346    #[inline]
15347    fn s_type(&self) -> StructureType {
15348        self.s_type
15349    }
15350
15351    #[inline]
15352    fn next(&self) -> *const c_void {
15353        self.next
15354    }
15355}
15356
15357unsafe impl OutputChainStruct for PipelineCreateInfoKHR {
15358    #[inline]
15359    fn next_mut(&self) -> *mut c_void {
15360        self.next
15361    }
15362}
15363
15364unsafe impl InputChainStruct for PipelineCreationFeedbackCreateInfo {
15365    const TYPE: StructureType = StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
15366
15367    #[inline]
15368    fn s_type(&self) -> StructureType {
15369        self.s_type
15370    }
15371
15372    #[inline]
15373    fn next(&self) -> *const c_void {
15374        self.next
15375    }
15376}
15377
15378unsafe impl InputChainStruct for PipelineDepthStencilStateCreateInfo {
15379    const TYPE: StructureType = StructureType::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
15380
15381    #[inline]
15382    fn s_type(&self) -> StructureType {
15383        self.s_type
15384    }
15385
15386    #[inline]
15387    fn next(&self) -> *const c_void {
15388        self.next
15389    }
15390}
15391
15392unsafe impl InputChainStruct for PipelineDiscardRectangleStateCreateInfoEXT {
15393    const TYPE: StructureType = StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
15394
15395    #[inline]
15396    fn s_type(&self) -> StructureType {
15397        self.s_type
15398    }
15399
15400    #[inline]
15401    fn next(&self) -> *const c_void {
15402        self.next
15403    }
15404}
15405
15406unsafe impl InputChainStruct for PipelineDynamicStateCreateInfo {
15407    const TYPE: StructureType = StructureType::PIPELINE_DYNAMIC_STATE_CREATE_INFO;
15408
15409    #[inline]
15410    fn s_type(&self) -> StructureType {
15411        self.s_type
15412    }
15413
15414    #[inline]
15415    fn next(&self) -> *const c_void {
15416        self.next
15417    }
15418}
15419
15420unsafe impl InputChainStruct for PipelineExecutableInfoKHR {
15421    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_INFO_KHR;
15422
15423    #[inline]
15424    fn s_type(&self) -> StructureType {
15425        self.s_type
15426    }
15427
15428    #[inline]
15429    fn next(&self) -> *const c_void {
15430        self.next
15431    }
15432}
15433
15434unsafe impl InputChainStruct for PipelineExecutableInternalRepresentationKHR {
15435    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
15436
15437    #[inline]
15438    fn s_type(&self) -> StructureType {
15439        self.s_type
15440    }
15441
15442    #[inline]
15443    fn next(&self) -> *const c_void {
15444        self.next
15445    }
15446}
15447
15448unsafe impl OutputChainStruct for PipelineExecutableInternalRepresentationKHR {
15449    #[inline]
15450    fn next_mut(&self) -> *mut c_void {
15451        self.next
15452    }
15453}
15454
15455unsafe impl InputChainStruct for PipelineExecutablePropertiesKHR {
15456    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_PROPERTIES_KHR;
15457
15458    #[inline]
15459    fn s_type(&self) -> StructureType {
15460        self.s_type
15461    }
15462
15463    #[inline]
15464    fn next(&self) -> *const c_void {
15465        self.next
15466    }
15467}
15468
15469unsafe impl OutputChainStruct for PipelineExecutablePropertiesKHR {
15470    #[inline]
15471    fn next_mut(&self) -> *mut c_void {
15472        self.next
15473    }
15474}
15475
15476unsafe impl InputChainStruct for PipelineExecutableStatisticKHR {
15477    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_STATISTIC_KHR;
15478
15479    #[inline]
15480    fn s_type(&self) -> StructureType {
15481        self.s_type
15482    }
15483
15484    #[inline]
15485    fn next(&self) -> *const c_void {
15486        self.next
15487    }
15488}
15489
15490unsafe impl OutputChainStruct for PipelineExecutableStatisticKHR {
15491    #[inline]
15492    fn next_mut(&self) -> *mut c_void {
15493        self.next
15494    }
15495}
15496
15497unsafe impl InputChainStruct for PipelineFragmentDensityMapLayeredCreateInfoVALVE {
15498    const TYPE: StructureType =
15499        StructureType::PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE;
15500
15501    #[inline]
15502    fn s_type(&self) -> StructureType {
15503        self.s_type
15504    }
15505
15506    #[inline]
15507    fn next(&self) -> *const c_void {
15508        self.next
15509    }
15510}
15511
15512unsafe impl InputChainStruct for PipelineFragmentShadingRateEnumStateCreateInfoNV {
15513    const TYPE: StructureType =
15514        StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
15515
15516    #[inline]
15517    fn s_type(&self) -> StructureType {
15518        self.s_type
15519    }
15520
15521    #[inline]
15522    fn next(&self) -> *const c_void {
15523        self.next
15524    }
15525}
15526
15527unsafe impl InputChainStruct for PipelineFragmentShadingRateStateCreateInfoKHR {
15528    const TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
15529
15530    #[inline]
15531    fn s_type(&self) -> StructureType {
15532        self.s_type
15533    }
15534
15535    #[inline]
15536    fn next(&self) -> *const c_void {
15537        self.next
15538    }
15539}
15540
15541unsafe impl InputChainStruct for PipelineIndirectDeviceAddressInfoNV {
15542    const TYPE: StructureType = StructureType::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV;
15543
15544    #[inline]
15545    fn s_type(&self) -> StructureType {
15546        self.s_type
15547    }
15548
15549    #[inline]
15550    fn next(&self) -> *const c_void {
15551        self.next
15552    }
15553}
15554
15555unsafe impl InputChainStruct for PipelineInfoKHR {
15556    const TYPE: StructureType = StructureType::PIPELINE_INFO_KHR;
15557
15558    #[inline]
15559    fn s_type(&self) -> StructureType {
15560        self.s_type
15561    }
15562
15563    #[inline]
15564    fn next(&self) -> *const c_void {
15565        self.next
15566    }
15567}
15568
15569unsafe impl InputChainStruct for PipelineInputAssemblyStateCreateInfo {
15570    const TYPE: StructureType = StructureType::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
15571
15572    #[inline]
15573    fn s_type(&self) -> StructureType {
15574        self.s_type
15575    }
15576
15577    #[inline]
15578    fn next(&self) -> *const c_void {
15579        self.next
15580    }
15581}
15582
15583unsafe impl InputChainStruct for PipelineLayoutCreateInfo {
15584    const TYPE: StructureType = StructureType::PIPELINE_LAYOUT_CREATE_INFO;
15585
15586    #[inline]
15587    fn s_type(&self) -> StructureType {
15588        self.s_type
15589    }
15590
15591    #[inline]
15592    fn next(&self) -> *const c_void {
15593        self.next
15594    }
15595}
15596
15597unsafe impl InputChainStruct for PipelineLibraryCreateInfoKHR {
15598    const TYPE: StructureType = StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR;
15599
15600    #[inline]
15601    fn s_type(&self) -> StructureType {
15602        self.s_type
15603    }
15604
15605    #[inline]
15606    fn next(&self) -> *const c_void {
15607        self.next
15608    }
15609}
15610
15611unsafe impl InputChainStruct for PipelineMultisampleStateCreateInfo {
15612    const TYPE: StructureType = StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
15613
15614    #[inline]
15615    fn s_type(&self) -> StructureType {
15616        self.s_type
15617    }
15618
15619    #[inline]
15620    fn next(&self) -> *const c_void {
15621        self.next
15622    }
15623}
15624
15625unsafe impl InputChainStruct for PipelinePropertiesIdentifierEXT {
15626    const TYPE: StructureType = StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT;
15627
15628    #[inline]
15629    fn s_type(&self) -> StructureType {
15630        self.s_type
15631    }
15632
15633    #[inline]
15634    fn next(&self) -> *const c_void {
15635        self.next
15636    }
15637}
15638
15639unsafe impl OutputChainStruct for PipelinePropertiesIdentifierEXT {
15640    #[inline]
15641    fn next_mut(&self) -> *mut c_void {
15642        self.next
15643    }
15644}
15645
15646unsafe impl InputChainStruct for PipelineRasterizationConservativeStateCreateInfoEXT {
15647    const TYPE: StructureType =
15648        StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
15649
15650    #[inline]
15651    fn s_type(&self) -> StructureType {
15652        self.s_type
15653    }
15654
15655    #[inline]
15656    fn next(&self) -> *const c_void {
15657        self.next
15658    }
15659}
15660
15661unsafe impl InputChainStruct for PipelineRasterizationDepthClipStateCreateInfoEXT {
15662    const TYPE: StructureType =
15663        StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
15664
15665    #[inline]
15666    fn s_type(&self) -> StructureType {
15667        self.s_type
15668    }
15669
15670    #[inline]
15671    fn next(&self) -> *const c_void {
15672        self.next
15673    }
15674}
15675
15676unsafe impl InputChainStruct for PipelineRasterizationLineStateCreateInfo {
15677    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO;
15678
15679    #[inline]
15680    fn s_type(&self) -> StructureType {
15681        self.s_type
15682    }
15683
15684    #[inline]
15685    fn next(&self) -> *const c_void {
15686        self.next
15687    }
15688}
15689
15690unsafe impl InputChainStruct for PipelineRasterizationProvokingVertexStateCreateInfoEXT {
15691    const TYPE: StructureType =
15692        StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
15693
15694    #[inline]
15695    fn s_type(&self) -> StructureType {
15696        self.s_type
15697    }
15698
15699    #[inline]
15700    fn next(&self) -> *const c_void {
15701        self.next
15702    }
15703}
15704
15705unsafe impl InputChainStruct for PipelineRasterizationStateCreateInfo {
15706    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
15707
15708    #[inline]
15709    fn s_type(&self) -> StructureType {
15710        self.s_type
15711    }
15712
15713    #[inline]
15714    fn next(&self) -> *const c_void {
15715        self.next
15716    }
15717}
15718
15719unsafe impl InputChainStruct for PipelineRasterizationStateRasterizationOrderAMD {
15720    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
15721
15722    #[inline]
15723    fn s_type(&self) -> StructureType {
15724        self.s_type
15725    }
15726
15727    #[inline]
15728    fn next(&self) -> *const c_void {
15729        self.next
15730    }
15731}
15732
15733unsafe impl InputChainStruct for PipelineRasterizationStateStreamCreateInfoEXT {
15734    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
15735
15736    #[inline]
15737    fn s_type(&self) -> StructureType {
15738        self.s_type
15739    }
15740
15741    #[inline]
15742    fn next(&self) -> *const c_void {
15743        self.next
15744    }
15745}
15746
15747unsafe impl InputChainStruct for PipelineRenderingCreateInfo {
15748    const TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO;
15749
15750    #[inline]
15751    fn s_type(&self) -> StructureType {
15752        self.s_type
15753    }
15754
15755    #[inline]
15756    fn next(&self) -> *const c_void {
15757        self.next
15758    }
15759}
15760
15761unsafe impl InputChainStruct for PipelineRepresentativeFragmentTestStateCreateInfoNV {
15762    const TYPE: StructureType =
15763        StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
15764
15765    #[inline]
15766    fn s_type(&self) -> StructureType {
15767        self.s_type
15768    }
15769
15770    #[inline]
15771    fn next(&self) -> *const c_void {
15772        self.next
15773    }
15774}
15775
15776unsafe impl InputChainStruct for PipelineRobustnessCreateInfo {
15777    const TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO;
15778
15779    #[inline]
15780    fn s_type(&self) -> StructureType {
15781        self.s_type
15782    }
15783
15784    #[inline]
15785    fn next(&self) -> *const c_void {
15786        self.next
15787    }
15788}
15789
15790unsafe impl InputChainStruct for PipelineSampleLocationsStateCreateInfoEXT {
15791    const TYPE: StructureType = StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
15792
15793    #[inline]
15794    fn s_type(&self) -> StructureType {
15795        self.s_type
15796    }
15797
15798    #[inline]
15799    fn next(&self) -> *const c_void {
15800        self.next
15801    }
15802}
15803
15804unsafe impl InputChainStruct for PipelineShaderStageCreateInfo {
15805    const TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO;
15806
15807    #[inline]
15808    fn s_type(&self) -> StructureType {
15809        self.s_type
15810    }
15811
15812    #[inline]
15813    fn next(&self) -> *const c_void {
15814        self.next
15815    }
15816}
15817
15818unsafe impl InputChainStruct for PipelineShaderStageModuleIdentifierCreateInfoEXT {
15819    const TYPE: StructureType =
15820        StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT;
15821
15822    #[inline]
15823    fn s_type(&self) -> StructureType {
15824        self.s_type
15825    }
15826
15827    #[inline]
15828    fn next(&self) -> *const c_void {
15829        self.next
15830    }
15831}
15832
15833unsafe impl InputChainStruct for PipelineShaderStageNodeCreateInfoAMDX {
15834    const TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX;
15835
15836    #[inline]
15837    fn s_type(&self) -> StructureType {
15838        self.s_type
15839    }
15840
15841    #[inline]
15842    fn next(&self) -> *const c_void {
15843        self.next
15844    }
15845}
15846
15847unsafe impl InputChainStruct for PipelineShaderStageRequiredSubgroupSizeCreateInfo {
15848    const TYPE: StructureType =
15849        StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
15850
15851    #[inline]
15852    fn s_type(&self) -> StructureType {
15853        self.s_type
15854    }
15855
15856    #[inline]
15857    fn next(&self) -> *const c_void {
15858        self.next
15859    }
15860}
15861
15862unsafe impl InputChainStruct for PipelineTessellationDomainOriginStateCreateInfo {
15863    const TYPE: StructureType =
15864        StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
15865
15866    #[inline]
15867    fn s_type(&self) -> StructureType {
15868        self.s_type
15869    }
15870
15871    #[inline]
15872    fn next(&self) -> *const c_void {
15873        self.next
15874    }
15875}
15876
15877unsafe impl InputChainStruct for PipelineTessellationStateCreateInfo {
15878    const TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO;
15879
15880    #[inline]
15881    fn s_type(&self) -> StructureType {
15882        self.s_type
15883    }
15884
15885    #[inline]
15886    fn next(&self) -> *const c_void {
15887        self.next
15888    }
15889}
15890
15891unsafe impl InputChainStruct for PipelineVertexInputDivisorStateCreateInfo {
15892    const TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO;
15893
15894    #[inline]
15895    fn s_type(&self) -> StructureType {
15896        self.s_type
15897    }
15898
15899    #[inline]
15900    fn next(&self) -> *const c_void {
15901        self.next
15902    }
15903}
15904
15905unsafe impl InputChainStruct for PipelineVertexInputStateCreateInfo {
15906    const TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
15907
15908    #[inline]
15909    fn s_type(&self) -> StructureType {
15910        self.s_type
15911    }
15912
15913    #[inline]
15914    fn next(&self) -> *const c_void {
15915        self.next
15916    }
15917}
15918
15919unsafe impl InputChainStruct for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
15920    const TYPE: StructureType =
15921        StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
15922
15923    #[inline]
15924    fn s_type(&self) -> StructureType {
15925        self.s_type
15926    }
15927
15928    #[inline]
15929    fn next(&self) -> *const c_void {
15930        self.next
15931    }
15932}
15933
15934unsafe impl InputChainStruct for PipelineViewportDepthClampControlCreateInfoEXT {
15935    const TYPE: StructureType =
15936        StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT;
15937
15938    #[inline]
15939    fn s_type(&self) -> StructureType {
15940        self.s_type
15941    }
15942
15943    #[inline]
15944    fn next(&self) -> *const c_void {
15945        self.next
15946    }
15947}
15948
15949unsafe impl InputChainStruct for PipelineViewportDepthClipControlCreateInfoEXT {
15950    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT;
15951
15952    #[inline]
15953    fn s_type(&self) -> StructureType {
15954        self.s_type
15955    }
15956
15957    #[inline]
15958    fn next(&self) -> *const c_void {
15959        self.next
15960    }
15961}
15962
15963unsafe impl InputChainStruct for PipelineViewportExclusiveScissorStateCreateInfoNV {
15964    const TYPE: StructureType =
15965        StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
15966
15967    #[inline]
15968    fn s_type(&self) -> StructureType {
15969        self.s_type
15970    }
15971
15972    #[inline]
15973    fn next(&self) -> *const c_void {
15974        self.next
15975    }
15976}
15977
15978unsafe impl InputChainStruct for PipelineViewportShadingRateImageStateCreateInfoNV {
15979    const TYPE: StructureType =
15980        StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
15981
15982    #[inline]
15983    fn s_type(&self) -> StructureType {
15984        self.s_type
15985    }
15986
15987    #[inline]
15988    fn next(&self) -> *const c_void {
15989        self.next
15990    }
15991}
15992
15993unsafe impl InputChainStruct for PipelineViewportStateCreateInfo {
15994    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO;
15995
15996    #[inline]
15997    fn s_type(&self) -> StructureType {
15998        self.s_type
15999    }
16000
16001    #[inline]
16002    fn next(&self) -> *const c_void {
16003        self.next
16004    }
16005}
16006
16007unsafe impl InputChainStruct for PipelineViewportSwizzleStateCreateInfoNV {
16008    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
16009
16010    #[inline]
16011    fn s_type(&self) -> StructureType {
16012        self.s_type
16013    }
16014
16015    #[inline]
16016    fn next(&self) -> *const c_void {
16017        self.next
16018    }
16019}
16020
16021unsafe impl InputChainStruct for PipelineViewportWScalingStateCreateInfoNV {
16022    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
16023
16024    #[inline]
16025    fn s_type(&self) -> StructureType {
16026        self.s_type
16027    }
16028
16029    #[inline]
16030    fn next(&self) -> *const c_void {
16031        self.next
16032    }
16033}
16034
16035unsafe impl InputChainStruct for PresentFrameTokenGGP {
16036    const TYPE: StructureType = StructureType::PRESENT_FRAME_TOKEN_GGP;
16037
16038    #[inline]
16039    fn s_type(&self) -> StructureType {
16040        self.s_type
16041    }
16042
16043    #[inline]
16044    fn next(&self) -> *const c_void {
16045        self.next
16046    }
16047}
16048
16049unsafe impl InputChainStruct for PresentId2KHR {
16050    const TYPE: StructureType = StructureType::PRESENT_ID_2_KHR;
16051
16052    #[inline]
16053    fn s_type(&self) -> StructureType {
16054        self.s_type
16055    }
16056
16057    #[inline]
16058    fn next(&self) -> *const c_void {
16059        self.next
16060    }
16061}
16062
16063unsafe impl InputChainStruct for PresentIdKHR {
16064    const TYPE: StructureType = StructureType::PRESENT_ID_KHR;
16065
16066    #[inline]
16067    fn s_type(&self) -> StructureType {
16068        self.s_type
16069    }
16070
16071    #[inline]
16072    fn next(&self) -> *const c_void {
16073        self.next
16074    }
16075}
16076
16077unsafe impl InputChainStruct for PresentInfoKHR {
16078    const TYPE: StructureType = StructureType::PRESENT_INFO_KHR;
16079
16080    #[inline]
16081    fn s_type(&self) -> StructureType {
16082        self.s_type
16083    }
16084
16085    #[inline]
16086    fn next(&self) -> *const c_void {
16087        self.next
16088    }
16089}
16090
16091unsafe impl InputChainStruct for PresentRegionsKHR {
16092    const TYPE: StructureType = StructureType::PRESENT_REGIONS_KHR;
16093
16094    #[inline]
16095    fn s_type(&self) -> StructureType {
16096        self.s_type
16097    }
16098
16099    #[inline]
16100    fn next(&self) -> *const c_void {
16101        self.next
16102    }
16103}
16104
16105unsafe impl InputChainStruct for PresentTimesInfoGOOGLE {
16106    const TYPE: StructureType = StructureType::PRESENT_TIMES_INFO_GOOGLE;
16107
16108    #[inline]
16109    fn s_type(&self) -> StructureType {
16110        self.s_type
16111    }
16112
16113    #[inline]
16114    fn next(&self) -> *const c_void {
16115        self.next
16116    }
16117}
16118
16119unsafe impl InputChainStruct for PresentTimingInfoEXT {
16120    const TYPE: StructureType = StructureType::PRESENT_TIMING_INFO_EXT;
16121
16122    #[inline]
16123    fn s_type(&self) -> StructureType {
16124        self.s_type
16125    }
16126
16127    #[inline]
16128    fn next(&self) -> *const c_void {
16129        self.next
16130    }
16131}
16132
16133unsafe impl InputChainStruct for PresentTimingSurfaceCapabilitiesEXT {
16134    const TYPE: StructureType = StructureType::PRESENT_TIMING_SURFACE_CAPABILITIES_EXT;
16135
16136    #[inline]
16137    fn s_type(&self) -> StructureType {
16138        self.s_type
16139    }
16140
16141    #[inline]
16142    fn next(&self) -> *const c_void {
16143        self.next
16144    }
16145}
16146
16147unsafe impl OutputChainStruct for PresentTimingSurfaceCapabilitiesEXT {
16148    #[inline]
16149    fn next_mut(&self) -> *mut c_void {
16150        self.next
16151    }
16152}
16153
16154unsafe impl InputChainStruct for PresentTimingsInfoEXT {
16155    const TYPE: StructureType = StructureType::PRESENT_TIMINGS_INFO_EXT;
16156
16157    #[inline]
16158    fn s_type(&self) -> StructureType {
16159        self.s_type
16160    }
16161
16162    #[inline]
16163    fn next(&self) -> *const c_void {
16164        self.next
16165    }
16166}
16167
16168unsafe impl InputChainStruct for PresentWait2InfoKHR {
16169    const TYPE: StructureType = StructureType::PRESENT_WAIT_2_INFO_KHR;
16170
16171    #[inline]
16172    fn s_type(&self) -> StructureType {
16173        self.s_type
16174    }
16175
16176    #[inline]
16177    fn next(&self) -> *const c_void {
16178        self.next
16179    }
16180}
16181
16182unsafe impl InputChainStruct for PrivateDataSlotCreateInfo {
16183    const TYPE: StructureType = StructureType::PRIVATE_DATA_SLOT_CREATE_INFO;
16184
16185    #[inline]
16186    fn s_type(&self) -> StructureType {
16187        self.s_type
16188    }
16189
16190    #[inline]
16191    fn next(&self) -> *const c_void {
16192        self.next
16193    }
16194}
16195
16196unsafe impl InputChainStruct for ProtectedSubmitInfo {
16197    const TYPE: StructureType = StructureType::PROTECTED_SUBMIT_INFO;
16198
16199    #[inline]
16200    fn s_type(&self) -> StructureType {
16201        self.s_type
16202    }
16203
16204    #[inline]
16205    fn next(&self) -> *const c_void {
16206        self.next
16207    }
16208}
16209
16210unsafe impl InputChainStruct for PushConstantBankInfoNV {
16211    const TYPE: StructureType = StructureType::PUSH_CONSTANT_BANK_INFO_NV;
16212
16213    #[inline]
16214    fn s_type(&self) -> StructureType {
16215        self.s_type
16216    }
16217
16218    #[inline]
16219    fn next(&self) -> *const c_void {
16220        self.next
16221    }
16222}
16223
16224unsafe impl InputChainStruct for PushConstantsInfo {
16225    const TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO;
16226
16227    #[inline]
16228    fn s_type(&self) -> StructureType {
16229        self.s_type
16230    }
16231
16232    #[inline]
16233    fn next(&self) -> *const c_void {
16234        self.next
16235    }
16236}
16237
16238unsafe impl InputChainStruct for PushDataInfoEXT {
16239    const TYPE: StructureType = StructureType::PUSH_DATA_INFO_EXT;
16240
16241    #[inline]
16242    fn s_type(&self) -> StructureType {
16243        self.s_type
16244    }
16245
16246    #[inline]
16247    fn next(&self) -> *const c_void {
16248        self.next
16249    }
16250}
16251
16252unsafe impl InputChainStruct for PushDescriptorSetInfo {
16253    const TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO;
16254
16255    #[inline]
16256    fn s_type(&self) -> StructureType {
16257        self.s_type
16258    }
16259
16260    #[inline]
16261    fn next(&self) -> *const c_void {
16262        self.next
16263    }
16264}
16265
16266unsafe impl InputChainStruct for PushDescriptorSetWithTemplateInfo {
16267    const TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO;
16268
16269    #[inline]
16270    fn s_type(&self) -> StructureType {
16271        self.s_type
16272    }
16273
16274    #[inline]
16275    fn next(&self) -> *const c_void {
16276        self.next
16277    }
16278}
16279
16280unsafe impl InputChainStruct for QueryLowLatencySupportNV {
16281    const TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV;
16282
16283    #[inline]
16284    fn s_type(&self) -> StructureType {
16285        self.s_type
16286    }
16287
16288    #[inline]
16289    fn next(&self) -> *const c_void {
16290        self.next
16291    }
16292}
16293
16294unsafe impl InputChainStruct for QueryPoolCreateInfo {
16295    const TYPE: StructureType = StructureType::QUERY_POOL_CREATE_INFO;
16296
16297    #[inline]
16298    fn s_type(&self) -> StructureType {
16299        self.s_type
16300    }
16301
16302    #[inline]
16303    fn next(&self) -> *const c_void {
16304        self.next
16305    }
16306}
16307
16308unsafe impl InputChainStruct for QueryPoolPerformanceCreateInfoKHR {
16309    const TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
16310
16311    #[inline]
16312    fn s_type(&self) -> StructureType {
16313        self.s_type
16314    }
16315
16316    #[inline]
16317    fn next(&self) -> *const c_void {
16318        self.next
16319    }
16320}
16321
16322unsafe impl InputChainStruct for QueryPoolPerformanceQueryCreateInfoINTEL {
16323    const TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
16324
16325    #[inline]
16326    fn s_type(&self) -> StructureType {
16327        self.s_type
16328    }
16329
16330    #[inline]
16331    fn next(&self) -> *const c_void {
16332        self.next
16333    }
16334}
16335
16336unsafe impl InputChainStruct for QueryPoolVideoEncodeFeedbackCreateInfoKHR {
16337    const TYPE: StructureType = StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR;
16338
16339    #[inline]
16340    fn s_type(&self) -> StructureType {
16341        self.s_type
16342    }
16343
16344    #[inline]
16345    fn next(&self) -> *const c_void {
16346        self.next
16347    }
16348}
16349
16350unsafe impl InputChainStruct for QueueFamilyCheckpointProperties2NV {
16351    const TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
16352
16353    #[inline]
16354    fn s_type(&self) -> StructureType {
16355        self.s_type
16356    }
16357
16358    #[inline]
16359    fn next(&self) -> *const c_void {
16360        self.next
16361    }
16362}
16363
16364unsafe impl OutputChainStruct for QueueFamilyCheckpointProperties2NV {
16365    #[inline]
16366    fn next_mut(&self) -> *mut c_void {
16367        self.next
16368    }
16369}
16370
16371unsafe impl InputChainStruct for QueueFamilyCheckpointPropertiesNV {
16372    const TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
16373
16374    #[inline]
16375    fn s_type(&self) -> StructureType {
16376        self.s_type
16377    }
16378
16379    #[inline]
16380    fn next(&self) -> *const c_void {
16381        self.next
16382    }
16383}
16384
16385unsafe impl OutputChainStruct for QueueFamilyCheckpointPropertiesNV {
16386    #[inline]
16387    fn next_mut(&self) -> *mut c_void {
16388        self.next
16389    }
16390}
16391
16392unsafe impl InputChainStruct for QueueFamilyDataGraphProcessingEnginePropertiesARM {
16393    const TYPE: StructureType =
16394        StructureType::QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM;
16395
16396    #[inline]
16397    fn s_type(&self) -> StructureType {
16398        self.s_type
16399    }
16400
16401    #[inline]
16402    fn next(&self) -> *const c_void {
16403        self.next
16404    }
16405}
16406
16407unsafe impl OutputChainStruct for QueueFamilyDataGraphProcessingEnginePropertiesARM {
16408    #[inline]
16409    fn next_mut(&self) -> *mut c_void {
16410        self.next
16411    }
16412}
16413
16414unsafe impl InputChainStruct for QueueFamilyDataGraphPropertiesARM {
16415    const TYPE: StructureType = StructureType::QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM;
16416
16417    #[inline]
16418    fn s_type(&self) -> StructureType {
16419        self.s_type
16420    }
16421
16422    #[inline]
16423    fn next(&self) -> *const c_void {
16424        self.next
16425    }
16426}
16427
16428unsafe impl OutputChainStruct for QueueFamilyDataGraphPropertiesARM {
16429    #[inline]
16430    fn next_mut(&self) -> *mut c_void {
16431        self.next
16432    }
16433}
16434
16435unsafe impl InputChainStruct for QueueFamilyGlobalPriorityProperties {
16436    const TYPE: StructureType = StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES;
16437
16438    #[inline]
16439    fn s_type(&self) -> StructureType {
16440        self.s_type
16441    }
16442
16443    #[inline]
16444    fn next(&self) -> *const c_void {
16445        self.next
16446    }
16447}
16448
16449unsafe impl OutputChainStruct for QueueFamilyGlobalPriorityProperties {
16450    #[inline]
16451    fn next_mut(&self) -> *mut c_void {
16452        self.next
16453    }
16454}
16455
16456unsafe impl InputChainStruct for QueueFamilyOwnershipTransferPropertiesKHR {
16457    const TYPE: StructureType = StructureType::QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR;
16458
16459    #[inline]
16460    fn s_type(&self) -> StructureType {
16461        self.s_type
16462    }
16463
16464    #[inline]
16465    fn next(&self) -> *const c_void {
16466        self.next
16467    }
16468}
16469
16470unsafe impl OutputChainStruct for QueueFamilyOwnershipTransferPropertiesKHR {
16471    #[inline]
16472    fn next_mut(&self) -> *mut c_void {
16473        self.next
16474    }
16475}
16476
16477unsafe impl InputChainStruct for QueueFamilyProperties2 {
16478    const TYPE: StructureType = StructureType::QUEUE_FAMILY_PROPERTIES_2;
16479
16480    #[inline]
16481    fn s_type(&self) -> StructureType {
16482        self.s_type
16483    }
16484
16485    #[inline]
16486    fn next(&self) -> *const c_void {
16487        self.next
16488    }
16489}
16490
16491unsafe impl OutputChainStruct for QueueFamilyProperties2 {
16492    #[inline]
16493    fn next_mut(&self) -> *mut c_void {
16494        self.next
16495    }
16496}
16497
16498unsafe impl InputChainStruct for QueueFamilyQueryResultStatusPropertiesKHR {
16499    const TYPE: StructureType = StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR;
16500
16501    #[inline]
16502    fn s_type(&self) -> StructureType {
16503        self.s_type
16504    }
16505
16506    #[inline]
16507    fn next(&self) -> *const c_void {
16508        self.next
16509    }
16510}
16511
16512unsafe impl OutputChainStruct for QueueFamilyQueryResultStatusPropertiesKHR {
16513    #[inline]
16514    fn next_mut(&self) -> *mut c_void {
16515        self.next
16516    }
16517}
16518
16519unsafe impl InputChainStruct for QueueFamilyVideoPropertiesKHR {
16520    const TYPE: StructureType = StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR;
16521
16522    #[inline]
16523    fn s_type(&self) -> StructureType {
16524        self.s_type
16525    }
16526
16527    #[inline]
16528    fn next(&self) -> *const c_void {
16529        self.next
16530    }
16531}
16532
16533unsafe impl OutputChainStruct for QueueFamilyVideoPropertiesKHR {
16534    #[inline]
16535    fn next_mut(&self) -> *mut c_void {
16536        self.next
16537    }
16538}
16539
16540unsafe impl InputChainStruct for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
16541    const TYPE: StructureType =
16542        StructureType::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
16543
16544    #[inline]
16545    fn s_type(&self) -> StructureType {
16546        self.s_type
16547    }
16548
16549    #[inline]
16550    fn next(&self) -> *const c_void {
16551        self.next
16552    }
16553}
16554
16555unsafe impl OutputChainStruct for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
16556    #[inline]
16557    fn next_mut(&self) -> *mut c_void {
16558        self.next
16559    }
16560}
16561
16562unsafe impl InputChainStruct for RayTracingPipelineCreateInfoKHR {
16563    const TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
16564
16565    #[inline]
16566    fn s_type(&self) -> StructureType {
16567        self.s_type
16568    }
16569
16570    #[inline]
16571    fn next(&self) -> *const c_void {
16572        self.next
16573    }
16574}
16575
16576unsafe impl InputChainStruct for RayTracingPipelineCreateInfoNV {
16577    const TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV;
16578
16579    #[inline]
16580    fn s_type(&self) -> StructureType {
16581        self.s_type
16582    }
16583
16584    #[inline]
16585    fn next(&self) -> *const c_void {
16586        self.next
16587    }
16588}
16589
16590unsafe impl InputChainStruct for RayTracingPipelineInterfaceCreateInfoKHR {
16591    const TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
16592
16593    #[inline]
16594    fn s_type(&self) -> StructureType {
16595        self.s_type
16596    }
16597
16598    #[inline]
16599    fn next(&self) -> *const c_void {
16600        self.next
16601    }
16602}
16603
16604unsafe impl InputChainStruct for RayTracingShaderGroupCreateInfoKHR {
16605    const TYPE: StructureType = StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
16606
16607    #[inline]
16608    fn s_type(&self) -> StructureType {
16609        self.s_type
16610    }
16611
16612    #[inline]
16613    fn next(&self) -> *const c_void {
16614        self.next
16615    }
16616}
16617
16618unsafe impl InputChainStruct for RayTracingShaderGroupCreateInfoNV {
16619    const TYPE: StructureType = StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
16620
16621    #[inline]
16622    fn s_type(&self) -> StructureType {
16623        self.s_type
16624    }
16625
16626    #[inline]
16627    fn next(&self) -> *const c_void {
16628        self.next
16629    }
16630}
16631
16632unsafe impl InputChainStruct for RefreshObjectListKHR {
16633    const TYPE: StructureType = StructureType::REFRESH_OBJECT_LIST_KHR;
16634
16635    #[inline]
16636    fn s_type(&self) -> StructureType {
16637        self.s_type
16638    }
16639
16640    #[inline]
16641    fn next(&self) -> *const c_void {
16642        self.next
16643    }
16644}
16645
16646unsafe impl InputChainStruct for ReleaseCapturedPipelineDataInfoKHR {
16647    const TYPE: StructureType = StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR;
16648
16649    #[inline]
16650    fn s_type(&self) -> StructureType {
16651        self.s_type
16652    }
16653
16654    #[inline]
16655    fn next(&self) -> *const c_void {
16656        self.next
16657    }
16658}
16659
16660unsafe impl OutputChainStruct for ReleaseCapturedPipelineDataInfoKHR {
16661    #[inline]
16662    fn next_mut(&self) -> *mut c_void {
16663        self.next
16664    }
16665}
16666
16667unsafe impl InputChainStruct for ReleaseSwapchainImagesInfoKHR {
16668    const TYPE: StructureType = StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR;
16669
16670    #[inline]
16671    fn s_type(&self) -> StructureType {
16672        self.s_type
16673    }
16674
16675    #[inline]
16676    fn next(&self) -> *const c_void {
16677        self.next
16678    }
16679}
16680
16681unsafe impl InputChainStruct for RenderPassAttachmentBeginInfo {
16682    const TYPE: StructureType = StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO;
16683
16684    #[inline]
16685    fn s_type(&self) -> StructureType {
16686        self.s_type
16687    }
16688
16689    #[inline]
16690    fn next(&self) -> *const c_void {
16691        self.next
16692    }
16693}
16694
16695unsafe impl InputChainStruct for RenderPassBeginInfo {
16696    const TYPE: StructureType = StructureType::RENDER_PASS_BEGIN_INFO;
16697
16698    #[inline]
16699    fn s_type(&self) -> StructureType {
16700        self.s_type
16701    }
16702
16703    #[inline]
16704    fn next(&self) -> *const c_void {
16705        self.next
16706    }
16707}
16708
16709unsafe impl InputChainStruct for RenderPassCreateInfo {
16710    const TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO;
16711
16712    #[inline]
16713    fn s_type(&self) -> StructureType {
16714        self.s_type
16715    }
16716
16717    #[inline]
16718    fn next(&self) -> *const c_void {
16719        self.next
16720    }
16721}
16722
16723unsafe impl InputChainStruct for RenderPassCreateInfo2 {
16724    const TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO_2;
16725
16726    #[inline]
16727    fn s_type(&self) -> StructureType {
16728        self.s_type
16729    }
16730
16731    #[inline]
16732    fn next(&self) -> *const c_void {
16733        self.next
16734    }
16735}
16736
16737unsafe impl InputChainStruct for RenderPassCreationControlEXT {
16738    const TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT;
16739
16740    #[inline]
16741    fn s_type(&self) -> StructureType {
16742        self.s_type
16743    }
16744
16745    #[inline]
16746    fn next(&self) -> *const c_void {
16747        self.next
16748    }
16749}
16750
16751unsafe impl InputChainStruct for RenderPassCreationFeedbackCreateInfoEXT {
16752    const TYPE: StructureType = StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT;
16753
16754    #[inline]
16755    fn s_type(&self) -> StructureType {
16756        self.s_type
16757    }
16758
16759    #[inline]
16760    fn next(&self) -> *const c_void {
16761        self.next
16762    }
16763}
16764
16765unsafe impl InputChainStruct for RenderPassFragmentDensityMapCreateInfoEXT {
16766    const TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
16767
16768    #[inline]
16769    fn s_type(&self) -> StructureType {
16770        self.s_type
16771    }
16772
16773    #[inline]
16774    fn next(&self) -> *const c_void {
16775        self.next
16776    }
16777}
16778
16779unsafe impl InputChainStruct for RenderPassFragmentDensityMapOffsetEndInfoEXT {
16780    const TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT;
16781
16782    #[inline]
16783    fn s_type(&self) -> StructureType {
16784        self.s_type
16785    }
16786
16787    #[inline]
16788    fn next(&self) -> *const c_void {
16789        self.next
16790    }
16791}
16792
16793unsafe impl InputChainStruct for RenderPassInputAttachmentAspectCreateInfo {
16794    const TYPE: StructureType = StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
16795
16796    #[inline]
16797    fn s_type(&self) -> StructureType {
16798        self.s_type
16799    }
16800
16801    #[inline]
16802    fn next(&self) -> *const c_void {
16803        self.next
16804    }
16805}
16806
16807unsafe impl InputChainStruct for RenderPassMultiviewCreateInfo {
16808    const TYPE: StructureType = StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO;
16809
16810    #[inline]
16811    fn s_type(&self) -> StructureType {
16812        self.s_type
16813    }
16814
16815    #[inline]
16816    fn next(&self) -> *const c_void {
16817        self.next
16818    }
16819}
16820
16821unsafe impl InputChainStruct for RenderPassPerformanceCountersByRegionBeginInfoARM {
16822    const TYPE: StructureType =
16823        StructureType::RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM;
16824
16825    #[inline]
16826    fn s_type(&self) -> StructureType {
16827        self.s_type
16828    }
16829
16830    #[inline]
16831    fn next(&self) -> *const c_void {
16832        self.next
16833    }
16834}
16835
16836unsafe impl OutputChainStruct for RenderPassPerformanceCountersByRegionBeginInfoARM {
16837    #[inline]
16838    fn next_mut(&self) -> *mut c_void {
16839        self.next
16840    }
16841}
16842
16843unsafe impl InputChainStruct for RenderPassSampleLocationsBeginInfoEXT {
16844    const TYPE: StructureType = StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
16845
16846    #[inline]
16847    fn s_type(&self) -> StructureType {
16848        self.s_type
16849    }
16850
16851    #[inline]
16852    fn next(&self) -> *const c_void {
16853        self.next
16854    }
16855}
16856
16857unsafe impl InputChainStruct for RenderPassStripeBeginInfoARM {
16858    const TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM;
16859
16860    #[inline]
16861    fn s_type(&self) -> StructureType {
16862        self.s_type
16863    }
16864
16865    #[inline]
16866    fn next(&self) -> *const c_void {
16867        self.next
16868    }
16869}
16870
16871unsafe impl InputChainStruct for RenderPassStripeInfoARM {
16872    const TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_INFO_ARM;
16873
16874    #[inline]
16875    fn s_type(&self) -> StructureType {
16876        self.s_type
16877    }
16878
16879    #[inline]
16880    fn next(&self) -> *const c_void {
16881        self.next
16882    }
16883}
16884
16885unsafe impl InputChainStruct for RenderPassStripeSubmitInfoARM {
16886    const TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM;
16887
16888    #[inline]
16889    fn s_type(&self) -> StructureType {
16890        self.s_type
16891    }
16892
16893    #[inline]
16894    fn next(&self) -> *const c_void {
16895        self.next
16896    }
16897}
16898
16899unsafe impl InputChainStruct for RenderPassSubpassFeedbackCreateInfoEXT {
16900    const TYPE: StructureType = StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT;
16901
16902    #[inline]
16903    fn s_type(&self) -> StructureType {
16904        self.s_type
16905    }
16906
16907    #[inline]
16908    fn next(&self) -> *const c_void {
16909        self.next
16910    }
16911}
16912
16913unsafe impl InputChainStruct for RenderPassTileShadingCreateInfoQCOM {
16914    const TYPE: StructureType = StructureType::RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM;
16915
16916    #[inline]
16917    fn s_type(&self) -> StructureType {
16918        self.s_type
16919    }
16920
16921    #[inline]
16922    fn next(&self) -> *const c_void {
16923        self.next
16924    }
16925}
16926
16927unsafe impl InputChainStruct for RenderPassTransformBeginInfoQCOM {
16928    const TYPE: StructureType = StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
16929
16930    #[inline]
16931    fn s_type(&self) -> StructureType {
16932        self.s_type
16933    }
16934
16935    #[inline]
16936    fn next(&self) -> *const c_void {
16937        self.next
16938    }
16939}
16940
16941unsafe impl InputChainStruct for RenderingAreaInfo {
16942    const TYPE: StructureType = StructureType::RENDERING_AREA_INFO;
16943
16944    #[inline]
16945    fn s_type(&self) -> StructureType {
16946        self.s_type
16947    }
16948
16949    #[inline]
16950    fn next(&self) -> *const c_void {
16951        self.next
16952    }
16953}
16954
16955unsafe impl InputChainStruct for RenderingAttachmentFlagsInfoKHR {
16956    const TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_FLAGS_INFO_KHR;
16957
16958    #[inline]
16959    fn s_type(&self) -> StructureType {
16960        self.s_type
16961    }
16962
16963    #[inline]
16964    fn next(&self) -> *const c_void {
16965        self.next
16966    }
16967}
16968
16969unsafe impl InputChainStruct for RenderingAttachmentInfo {
16970    const TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_INFO;
16971
16972    #[inline]
16973    fn s_type(&self) -> StructureType {
16974        self.s_type
16975    }
16976
16977    #[inline]
16978    fn next(&self) -> *const c_void {
16979        self.next
16980    }
16981}
16982
16983unsafe impl InputChainStruct for RenderingAttachmentLocationInfo {
16984    const TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO;
16985
16986    #[inline]
16987    fn s_type(&self) -> StructureType {
16988        self.s_type
16989    }
16990
16991    #[inline]
16992    fn next(&self) -> *const c_void {
16993        self.next
16994    }
16995}
16996
16997unsafe impl InputChainStruct for RenderingEndInfoKHR {
16998    const TYPE: StructureType = StructureType::RENDERING_END_INFO_KHR;
16999
17000    #[inline]
17001    fn s_type(&self) -> StructureType {
17002        self.s_type
17003    }
17004
17005    #[inline]
17006    fn next(&self) -> *const c_void {
17007        self.next
17008    }
17009}
17010
17011unsafe impl InputChainStruct for RenderingFragmentDensityMapAttachmentInfoEXT {
17012    const TYPE: StructureType = StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT;
17013
17014    #[inline]
17015    fn s_type(&self) -> StructureType {
17016        self.s_type
17017    }
17018
17019    #[inline]
17020    fn next(&self) -> *const c_void {
17021        self.next
17022    }
17023}
17024
17025unsafe impl InputChainStruct for RenderingFragmentShadingRateAttachmentInfoKHR {
17026    const TYPE: StructureType = StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
17027
17028    #[inline]
17029    fn s_type(&self) -> StructureType {
17030        self.s_type
17031    }
17032
17033    #[inline]
17034    fn next(&self) -> *const c_void {
17035        self.next
17036    }
17037}
17038
17039unsafe impl InputChainStruct for RenderingInfo {
17040    const TYPE: StructureType = StructureType::RENDERING_INFO;
17041
17042    #[inline]
17043    fn s_type(&self) -> StructureType {
17044        self.s_type
17045    }
17046
17047    #[inline]
17048    fn next(&self) -> *const c_void {
17049        self.next
17050    }
17051}
17052
17053unsafe impl InputChainStruct for RenderingInputAttachmentIndexInfo {
17054    const TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO;
17055
17056    #[inline]
17057    fn s_type(&self) -> StructureType {
17058        self.s_type
17059    }
17060
17061    #[inline]
17062    fn next(&self) -> *const c_void {
17063        self.next
17064    }
17065}
17066
17067unsafe impl InputChainStruct for ResolveImageInfo2 {
17068    const TYPE: StructureType = StructureType::RESOLVE_IMAGE_INFO_2;
17069
17070    #[inline]
17071    fn s_type(&self) -> StructureType {
17072        self.s_type
17073    }
17074
17075    #[inline]
17076    fn next(&self) -> *const c_void {
17077        self.next
17078    }
17079}
17080
17081unsafe impl InputChainStruct for ResolveImageModeInfoKHR {
17082    const TYPE: StructureType = StructureType::RESOLVE_IMAGE_MODE_INFO_KHR;
17083
17084    #[inline]
17085    fn s_type(&self) -> StructureType {
17086        self.s_type
17087    }
17088
17089    #[inline]
17090    fn next(&self) -> *const c_void {
17091        self.next
17092    }
17093}
17094
17095unsafe impl InputChainStruct for ResourceDescriptorInfoEXT {
17096    const TYPE: StructureType = StructureType::RESOURCE_DESCRIPTOR_INFO_EXT;
17097
17098    #[inline]
17099    fn s_type(&self) -> StructureType {
17100        self.s_type
17101    }
17102
17103    #[inline]
17104    fn next(&self) -> *const c_void {
17105        self.next
17106    }
17107}
17108
17109unsafe impl InputChainStruct for SampleLocationsInfoEXT {
17110    const TYPE: StructureType = StructureType::SAMPLE_LOCATIONS_INFO_EXT;
17111
17112    #[inline]
17113    fn s_type(&self) -> StructureType {
17114        self.s_type
17115    }
17116
17117    #[inline]
17118    fn next(&self) -> *const c_void {
17119        self.next
17120    }
17121}
17122
17123unsafe impl InputChainStruct for SamplerBlockMatchWindowCreateInfoQCOM {
17124    const TYPE: StructureType = StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM;
17125
17126    #[inline]
17127    fn s_type(&self) -> StructureType {
17128        self.s_type
17129    }
17130
17131    #[inline]
17132    fn next(&self) -> *const c_void {
17133        self.next
17134    }
17135}
17136
17137unsafe impl InputChainStruct for SamplerBorderColorComponentMappingCreateInfoEXT {
17138    const TYPE: StructureType =
17139        StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT;
17140
17141    #[inline]
17142    fn s_type(&self) -> StructureType {
17143        self.s_type
17144    }
17145
17146    #[inline]
17147    fn next(&self) -> *const c_void {
17148        self.next
17149    }
17150}
17151
17152unsafe impl InputChainStruct for SamplerCaptureDescriptorDataInfoEXT {
17153    const TYPE: StructureType = StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
17154
17155    #[inline]
17156    fn s_type(&self) -> StructureType {
17157        self.s_type
17158    }
17159
17160    #[inline]
17161    fn next(&self) -> *const c_void {
17162        self.next
17163    }
17164}
17165
17166unsafe impl InputChainStruct for SamplerCreateInfo {
17167    const TYPE: StructureType = StructureType::SAMPLER_CREATE_INFO;
17168
17169    #[inline]
17170    fn s_type(&self) -> StructureType {
17171        self.s_type
17172    }
17173
17174    #[inline]
17175    fn next(&self) -> *const c_void {
17176        self.next
17177    }
17178}
17179
17180unsafe impl InputChainStruct for SamplerCubicWeightsCreateInfoQCOM {
17181    const TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM;
17182
17183    #[inline]
17184    fn s_type(&self) -> StructureType {
17185        self.s_type
17186    }
17187
17188    #[inline]
17189    fn next(&self) -> *const c_void {
17190        self.next
17191    }
17192}
17193
17194unsafe impl InputChainStruct for SamplerCustomBorderColorCreateInfoEXT {
17195    const TYPE: StructureType = StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
17196
17197    #[inline]
17198    fn s_type(&self) -> StructureType {
17199        self.s_type
17200    }
17201
17202    #[inline]
17203    fn next(&self) -> *const c_void {
17204        self.next
17205    }
17206}
17207
17208unsafe impl InputChainStruct for SamplerCustomBorderColorIndexCreateInfoEXT {
17209    const TYPE: StructureType = StructureType::SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT;
17210
17211    #[inline]
17212    fn s_type(&self) -> StructureType {
17213        self.s_type
17214    }
17215
17216    #[inline]
17217    fn next(&self) -> *const c_void {
17218        self.next
17219    }
17220}
17221
17222unsafe impl InputChainStruct for SamplerReductionModeCreateInfo {
17223    const TYPE: StructureType = StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO;
17224
17225    #[inline]
17226    fn s_type(&self) -> StructureType {
17227        self.s_type
17228    }
17229
17230    #[inline]
17231    fn next(&self) -> *const c_void {
17232        self.next
17233    }
17234}
17235
17236unsafe impl InputChainStruct for SamplerYcbcrConversionCreateInfo {
17237    const TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
17238
17239    #[inline]
17240    fn s_type(&self) -> StructureType {
17241        self.s_type
17242    }
17243
17244    #[inline]
17245    fn next(&self) -> *const c_void {
17246        self.next
17247    }
17248}
17249
17250unsafe impl InputChainStruct for SamplerYcbcrConversionImageFormatProperties {
17251    const TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
17252
17253    #[inline]
17254    fn s_type(&self) -> StructureType {
17255        self.s_type
17256    }
17257
17258    #[inline]
17259    fn next(&self) -> *const c_void {
17260        self.next
17261    }
17262}
17263
17264unsafe impl OutputChainStruct for SamplerYcbcrConversionImageFormatProperties {
17265    #[inline]
17266    fn next_mut(&self) -> *mut c_void {
17267        self.next
17268    }
17269}
17270
17271unsafe impl InputChainStruct for SamplerYcbcrConversionInfo {
17272    const TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_INFO;
17273
17274    #[inline]
17275    fn s_type(&self) -> StructureType {
17276        self.s_type
17277    }
17278
17279    #[inline]
17280    fn next(&self) -> *const c_void {
17281        self.next
17282    }
17283}
17284
17285unsafe impl InputChainStruct for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
17286    const TYPE: StructureType =
17287        StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM;
17288
17289    #[inline]
17290    fn s_type(&self) -> StructureType {
17291        self.s_type
17292    }
17293
17294    #[inline]
17295    fn next(&self) -> *const c_void {
17296        self.next
17297    }
17298}
17299
17300unsafe impl OutputChainStruct for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
17301    #[inline]
17302    fn next_mut(&self) -> *mut c_void {
17303        self.next
17304    }
17305}
17306
17307unsafe impl InputChainStruct for SciSyncAttributesInfoNV {
17308    const TYPE: StructureType = StructureType::SCI_SYNC_ATTRIBUTES_INFO_NV;
17309
17310    #[inline]
17311    fn s_type(&self) -> StructureType {
17312        self.s_type
17313    }
17314
17315    #[inline]
17316    fn next(&self) -> *const c_void {
17317        self.next
17318    }
17319}
17320
17321unsafe impl InputChainStruct for ScreenBufferFormatPropertiesQNX {
17322    const TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX;
17323
17324    #[inline]
17325    fn s_type(&self) -> StructureType {
17326        self.s_type
17327    }
17328
17329    #[inline]
17330    fn next(&self) -> *const c_void {
17331        self.next
17332    }
17333}
17334
17335unsafe impl OutputChainStruct for ScreenBufferFormatPropertiesQNX {
17336    #[inline]
17337    fn next_mut(&self) -> *mut c_void {
17338        self.next
17339    }
17340}
17341
17342unsafe impl InputChainStruct for ScreenBufferPropertiesQNX {
17343    const TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX;
17344
17345    #[inline]
17346    fn s_type(&self) -> StructureType {
17347        self.s_type
17348    }
17349
17350    #[inline]
17351    fn next(&self) -> *const c_void {
17352        self.next
17353    }
17354}
17355
17356unsafe impl OutputChainStruct for ScreenBufferPropertiesQNX {
17357    #[inline]
17358    fn next_mut(&self) -> *mut c_void {
17359        self.next
17360    }
17361}
17362
17363unsafe impl InputChainStruct for ScreenSurfaceCreateInfoQNX {
17364    const TYPE: StructureType = StructureType::SCREEN_SURFACE_CREATE_INFO_QNX;
17365
17366    #[inline]
17367    fn s_type(&self) -> StructureType {
17368        self.s_type
17369    }
17370
17371    #[inline]
17372    fn next(&self) -> *const c_void {
17373        self.next
17374    }
17375}
17376
17377unsafe impl InputChainStruct for SemaphoreCreateInfo {
17378    const TYPE: StructureType = StructureType::SEMAPHORE_CREATE_INFO;
17379
17380    #[inline]
17381    fn s_type(&self) -> StructureType {
17382        self.s_type
17383    }
17384
17385    #[inline]
17386    fn next(&self) -> *const c_void {
17387        self.next
17388    }
17389}
17390
17391unsafe impl InputChainStruct for SemaphoreGetFdInfoKHR {
17392    const TYPE: StructureType = StructureType::SEMAPHORE_GET_FD_INFO_KHR;
17393
17394    #[inline]
17395    fn s_type(&self) -> StructureType {
17396        self.s_type
17397    }
17398
17399    #[inline]
17400    fn next(&self) -> *const c_void {
17401        self.next
17402    }
17403}
17404
17405unsafe impl InputChainStruct for SemaphoreGetSciSyncInfoNV {
17406    const TYPE: StructureType = StructureType::SEMAPHORE_GET_SCI_SYNC_INFO_NV;
17407
17408    #[inline]
17409    fn s_type(&self) -> StructureType {
17410        self.s_type
17411    }
17412
17413    #[inline]
17414    fn next(&self) -> *const c_void {
17415        self.next
17416    }
17417}
17418
17419unsafe impl InputChainStruct for SemaphoreGetWin32HandleInfoKHR {
17420    const TYPE: StructureType = StructureType::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
17421
17422    #[inline]
17423    fn s_type(&self) -> StructureType {
17424        self.s_type
17425    }
17426
17427    #[inline]
17428    fn next(&self) -> *const c_void {
17429        self.next
17430    }
17431}
17432
17433unsafe impl InputChainStruct for SemaphoreGetZirconHandleInfoFUCHSIA {
17434    const TYPE: StructureType = StructureType::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
17435
17436    #[inline]
17437    fn s_type(&self) -> StructureType {
17438        self.s_type
17439    }
17440
17441    #[inline]
17442    fn next(&self) -> *const c_void {
17443        self.next
17444    }
17445}
17446
17447unsafe impl InputChainStruct for SemaphoreSciSyncCreateInfoNV {
17448    const TYPE: StructureType = StructureType::SEMAPHORE_SCI_SYNC_CREATE_INFO_NV;
17449
17450    #[inline]
17451    fn s_type(&self) -> StructureType {
17452        self.s_type
17453    }
17454
17455    #[inline]
17456    fn next(&self) -> *const c_void {
17457        self.next
17458    }
17459}
17460
17461unsafe impl InputChainStruct for SemaphoreSciSyncPoolCreateInfoNV {
17462    const TYPE: StructureType = StructureType::SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV;
17463
17464    #[inline]
17465    fn s_type(&self) -> StructureType {
17466        self.s_type
17467    }
17468
17469    #[inline]
17470    fn next(&self) -> *const c_void {
17471        self.next
17472    }
17473}
17474
17475unsafe impl InputChainStruct for SemaphoreSignalInfo {
17476    const TYPE: StructureType = StructureType::SEMAPHORE_SIGNAL_INFO;
17477
17478    #[inline]
17479    fn s_type(&self) -> StructureType {
17480        self.s_type
17481    }
17482
17483    #[inline]
17484    fn next(&self) -> *const c_void {
17485        self.next
17486    }
17487}
17488
17489unsafe impl InputChainStruct for SemaphoreSubmitInfo {
17490    const TYPE: StructureType = StructureType::SEMAPHORE_SUBMIT_INFO;
17491
17492    #[inline]
17493    fn s_type(&self) -> StructureType {
17494        self.s_type
17495    }
17496
17497    #[inline]
17498    fn next(&self) -> *const c_void {
17499        self.next
17500    }
17501}
17502
17503unsafe impl InputChainStruct for SemaphoreTypeCreateInfo {
17504    const TYPE: StructureType = StructureType::SEMAPHORE_TYPE_CREATE_INFO;
17505
17506    #[inline]
17507    fn s_type(&self) -> StructureType {
17508        self.s_type
17509    }
17510
17511    #[inline]
17512    fn next(&self) -> *const c_void {
17513        self.next
17514    }
17515}
17516
17517unsafe impl InputChainStruct for SemaphoreWaitInfo {
17518    const TYPE: StructureType = StructureType::SEMAPHORE_WAIT_INFO;
17519
17520    #[inline]
17521    fn s_type(&self) -> StructureType {
17522        self.s_type
17523    }
17524
17525    #[inline]
17526    fn next(&self) -> *const c_void {
17527        self.next
17528    }
17529}
17530
17531unsafe impl InputChainStruct for SetDescriptorBufferOffsetsInfoEXT {
17532    const TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT;
17533
17534    #[inline]
17535    fn s_type(&self) -> StructureType {
17536        self.s_type
17537    }
17538
17539    #[inline]
17540    fn next(&self) -> *const c_void {
17541        self.next
17542    }
17543}
17544
17545unsafe impl InputChainStruct for SetLatencyMarkerInfoNV {
17546    const TYPE: StructureType = StructureType::SET_LATENCY_MARKER_INFO_NV;
17547
17548    #[inline]
17549    fn s_type(&self) -> StructureType {
17550        self.s_type
17551    }
17552
17553    #[inline]
17554    fn next(&self) -> *const c_void {
17555        self.next
17556    }
17557}
17558
17559unsafe impl InputChainStruct for SetPresentConfigNV {
17560    const TYPE: StructureType = StructureType::SET_PRESENT_CONFIG_NV;
17561
17562    #[inline]
17563    fn s_type(&self) -> StructureType {
17564        self.s_type
17565    }
17566
17567    #[inline]
17568    fn next(&self) -> *const c_void {
17569        self.next
17570    }
17571}
17572
17573unsafe impl InputChainStruct for ShaderCreateInfoEXT {
17574    const TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT;
17575
17576    #[inline]
17577    fn s_type(&self) -> StructureType {
17578        self.s_type
17579    }
17580
17581    #[inline]
17582    fn next(&self) -> *const c_void {
17583        self.next
17584    }
17585}
17586
17587unsafe impl InputChainStruct for ShaderDescriptorSetAndBindingMappingInfoEXT {
17588    const TYPE: StructureType = StructureType::SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT;
17589
17590    #[inline]
17591    fn s_type(&self) -> StructureType {
17592        self.s_type
17593    }
17594
17595    #[inline]
17596    fn next(&self) -> *const c_void {
17597        self.next
17598    }
17599}
17600
17601unsafe impl InputChainStruct for ShaderModuleCreateInfo {
17602    const TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO;
17603
17604    #[inline]
17605    fn s_type(&self) -> StructureType {
17606        self.s_type
17607    }
17608
17609    #[inline]
17610    fn next(&self) -> *const c_void {
17611        self.next
17612    }
17613}
17614
17615unsafe impl InputChainStruct for ShaderModuleIdentifierEXT {
17616    const TYPE: StructureType = StructureType::SHADER_MODULE_IDENTIFIER_EXT;
17617
17618    #[inline]
17619    fn s_type(&self) -> StructureType {
17620        self.s_type
17621    }
17622
17623    #[inline]
17624    fn next(&self) -> *const c_void {
17625        self.next
17626    }
17627}
17628
17629unsafe impl OutputChainStruct for ShaderModuleIdentifierEXT {
17630    #[inline]
17631    fn next_mut(&self) -> *mut c_void {
17632        self.next
17633    }
17634}
17635
17636unsafe impl InputChainStruct for ShaderModuleValidationCacheCreateInfoEXT {
17637    const TYPE: StructureType = StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
17638
17639    #[inline]
17640    fn s_type(&self) -> StructureType {
17641        self.s_type
17642    }
17643
17644    #[inline]
17645    fn next(&self) -> *const c_void {
17646        self.next
17647    }
17648}
17649
17650unsafe impl InputChainStruct for SharedPresentSurfaceCapabilitiesKHR {
17651    const TYPE: StructureType = StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
17652
17653    #[inline]
17654    fn s_type(&self) -> StructureType {
17655        self.s_type
17656    }
17657
17658    #[inline]
17659    fn next(&self) -> *const c_void {
17660        self.next
17661    }
17662}
17663
17664unsafe impl OutputChainStruct for SharedPresentSurfaceCapabilitiesKHR {
17665    #[inline]
17666    fn next_mut(&self) -> *mut c_void {
17667        self.next
17668    }
17669}
17670
17671unsafe impl InputChainStruct for SparseImageFormatProperties2 {
17672    const TYPE: StructureType = StructureType::SPARSE_IMAGE_FORMAT_PROPERTIES_2;
17673
17674    #[inline]
17675    fn s_type(&self) -> StructureType {
17676        self.s_type
17677    }
17678
17679    #[inline]
17680    fn next(&self) -> *const c_void {
17681        self.next
17682    }
17683}
17684
17685unsafe impl OutputChainStruct for SparseImageFormatProperties2 {
17686    #[inline]
17687    fn next_mut(&self) -> *mut c_void {
17688        self.next
17689    }
17690}
17691
17692unsafe impl InputChainStruct for SparseImageMemoryRequirements2 {
17693    const TYPE: StructureType = StructureType::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
17694
17695    #[inline]
17696    fn s_type(&self) -> StructureType {
17697        self.s_type
17698    }
17699
17700    #[inline]
17701    fn next(&self) -> *const c_void {
17702        self.next
17703    }
17704}
17705
17706unsafe impl OutputChainStruct for SparseImageMemoryRequirements2 {
17707    #[inline]
17708    fn next_mut(&self) -> *mut c_void {
17709        self.next
17710    }
17711}
17712
17713unsafe impl InputChainStruct for StreamDescriptorSurfaceCreateInfoGGP {
17714    const TYPE: StructureType = StructureType::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
17715
17716    #[inline]
17717    fn s_type(&self) -> StructureType {
17718        self.s_type
17719    }
17720
17721    #[inline]
17722    fn next(&self) -> *const c_void {
17723        self.next
17724    }
17725}
17726
17727unsafe impl InputChainStruct for SubmitInfo {
17728    const TYPE: StructureType = StructureType::SUBMIT_INFO;
17729
17730    #[inline]
17731    fn s_type(&self) -> StructureType {
17732        self.s_type
17733    }
17734
17735    #[inline]
17736    fn next(&self) -> *const c_void {
17737        self.next
17738    }
17739}
17740
17741unsafe impl InputChainStruct for SubmitInfo2 {
17742    const TYPE: StructureType = StructureType::SUBMIT_INFO_2;
17743
17744    #[inline]
17745    fn s_type(&self) -> StructureType {
17746        self.s_type
17747    }
17748
17749    #[inline]
17750    fn next(&self) -> *const c_void {
17751        self.next
17752    }
17753}
17754
17755unsafe impl InputChainStruct for SubpassBeginInfo {
17756    const TYPE: StructureType = StructureType::SUBPASS_BEGIN_INFO;
17757
17758    #[inline]
17759    fn s_type(&self) -> StructureType {
17760        self.s_type
17761    }
17762
17763    #[inline]
17764    fn next(&self) -> *const c_void {
17765        self.next
17766    }
17767}
17768
17769unsafe impl InputChainStruct for SubpassDependency2 {
17770    const TYPE: StructureType = StructureType::SUBPASS_DEPENDENCY_2;
17771
17772    #[inline]
17773    fn s_type(&self) -> StructureType {
17774        self.s_type
17775    }
17776
17777    #[inline]
17778    fn next(&self) -> *const c_void {
17779        self.next
17780    }
17781}
17782
17783unsafe impl InputChainStruct for SubpassDescription2 {
17784    const TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_2;
17785
17786    #[inline]
17787    fn s_type(&self) -> StructureType {
17788        self.s_type
17789    }
17790
17791    #[inline]
17792    fn next(&self) -> *const c_void {
17793        self.next
17794    }
17795}
17796
17797unsafe impl InputChainStruct for SubpassDescriptionDepthStencilResolve {
17798    const TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
17799
17800    #[inline]
17801    fn s_type(&self) -> StructureType {
17802        self.s_type
17803    }
17804
17805    #[inline]
17806    fn next(&self) -> *const c_void {
17807        self.next
17808    }
17809}
17810
17811unsafe impl InputChainStruct for SubpassEndInfo {
17812    const TYPE: StructureType = StructureType::SUBPASS_END_INFO;
17813
17814    #[inline]
17815    fn s_type(&self) -> StructureType {
17816        self.s_type
17817    }
17818
17819    #[inline]
17820    fn next(&self) -> *const c_void {
17821        self.next
17822    }
17823}
17824
17825unsafe impl InputChainStruct for SubpassResolvePerformanceQueryEXT {
17826    const TYPE: StructureType = StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT;
17827
17828    #[inline]
17829    fn s_type(&self) -> StructureType {
17830        self.s_type
17831    }
17832
17833    #[inline]
17834    fn next(&self) -> *const c_void {
17835        self.next
17836    }
17837}
17838
17839unsafe impl OutputChainStruct for SubpassResolvePerformanceQueryEXT {
17840    #[inline]
17841    fn next_mut(&self) -> *mut c_void {
17842        self.next
17843    }
17844}
17845
17846unsafe impl InputChainStruct for SubpassShadingPipelineCreateInfoHUAWEI {
17847    const TYPE: StructureType = StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
17848
17849    #[inline]
17850    fn s_type(&self) -> StructureType {
17851        self.s_type
17852    }
17853
17854    #[inline]
17855    fn next(&self) -> *const c_void {
17856        self.next
17857    }
17858}
17859
17860unsafe impl OutputChainStruct for SubpassShadingPipelineCreateInfoHUAWEI {
17861    #[inline]
17862    fn next_mut(&self) -> *mut c_void {
17863        self.next
17864    }
17865}
17866
17867unsafe impl InputChainStruct for SubresourceHostMemcpySize {
17868    const TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE;
17869
17870    #[inline]
17871    fn s_type(&self) -> StructureType {
17872        self.s_type
17873    }
17874
17875    #[inline]
17876    fn next(&self) -> *const c_void {
17877        self.next
17878    }
17879}
17880
17881unsafe impl OutputChainStruct for SubresourceHostMemcpySize {
17882    #[inline]
17883    fn next_mut(&self) -> *mut c_void {
17884        self.next
17885    }
17886}
17887
17888unsafe impl InputChainStruct for SubresourceLayout2 {
17889    const TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2;
17890
17891    #[inline]
17892    fn s_type(&self) -> StructureType {
17893        self.s_type
17894    }
17895
17896    #[inline]
17897    fn next(&self) -> *const c_void {
17898        self.next
17899    }
17900}
17901
17902unsafe impl OutputChainStruct for SubresourceLayout2 {
17903    #[inline]
17904    fn next_mut(&self) -> *mut c_void {
17905        self.next
17906    }
17907}
17908
17909unsafe impl InputChainStruct for SubsampledImageFormatPropertiesEXT {
17910    const TYPE: StructureType = StructureType::SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT;
17911
17912    #[inline]
17913    fn s_type(&self) -> StructureType {
17914        self.s_type
17915    }
17916
17917    #[inline]
17918    fn next(&self) -> *const c_void {
17919        self.next
17920    }
17921}
17922
17923unsafe impl InputChainStruct for SurfaceCapabilities2EXT {
17924    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_EXT;
17925
17926    #[inline]
17927    fn s_type(&self) -> StructureType {
17928        self.s_type
17929    }
17930
17931    #[inline]
17932    fn next(&self) -> *const c_void {
17933        self.next
17934    }
17935}
17936
17937unsafe impl OutputChainStruct for SurfaceCapabilities2EXT {
17938    #[inline]
17939    fn next_mut(&self) -> *mut c_void {
17940        self.next
17941    }
17942}
17943
17944unsafe impl InputChainStruct for SurfaceCapabilities2KHR {
17945    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_KHR;
17946
17947    #[inline]
17948    fn s_type(&self) -> StructureType {
17949        self.s_type
17950    }
17951
17952    #[inline]
17953    fn next(&self) -> *const c_void {
17954        self.next
17955    }
17956}
17957
17958unsafe impl OutputChainStruct for SurfaceCapabilities2KHR {
17959    #[inline]
17960    fn next_mut(&self) -> *mut c_void {
17961        self.next
17962    }
17963}
17964
17965unsafe impl InputChainStruct for SurfaceCapabilitiesFullScreenExclusiveEXT {
17966    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
17967
17968    #[inline]
17969    fn s_type(&self) -> StructureType {
17970        self.s_type
17971    }
17972
17973    #[inline]
17974    fn next(&self) -> *const c_void {
17975        self.next
17976    }
17977}
17978
17979unsafe impl OutputChainStruct for SurfaceCapabilitiesFullScreenExclusiveEXT {
17980    #[inline]
17981    fn next_mut(&self) -> *mut c_void {
17982        self.next
17983    }
17984}
17985
17986unsafe impl InputChainStruct for SurfaceCapabilitiesPresentBarrierNV {
17987    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV;
17988
17989    #[inline]
17990    fn s_type(&self) -> StructureType {
17991        self.s_type
17992    }
17993
17994    #[inline]
17995    fn next(&self) -> *const c_void {
17996        self.next
17997    }
17998}
17999
18000unsafe impl OutputChainStruct for SurfaceCapabilitiesPresentBarrierNV {
18001    #[inline]
18002    fn next_mut(&self) -> *mut c_void {
18003        self.next
18004    }
18005}
18006
18007unsafe impl InputChainStruct for SurfaceCapabilitiesPresentId2KHR {
18008    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_ID_2_KHR;
18009
18010    #[inline]
18011    fn s_type(&self) -> StructureType {
18012        self.s_type
18013    }
18014
18015    #[inline]
18016    fn next(&self) -> *const c_void {
18017        self.next
18018    }
18019}
18020
18021unsafe impl OutputChainStruct for SurfaceCapabilitiesPresentId2KHR {
18022    #[inline]
18023    fn next_mut(&self) -> *mut c_void {
18024        self.next
18025    }
18026}
18027
18028unsafe impl InputChainStruct for SurfaceCapabilitiesPresentWait2KHR {
18029    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR;
18030
18031    #[inline]
18032    fn s_type(&self) -> StructureType {
18033        self.s_type
18034    }
18035
18036    #[inline]
18037    fn next(&self) -> *const c_void {
18038        self.next
18039    }
18040}
18041
18042unsafe impl OutputChainStruct for SurfaceCapabilitiesPresentWait2KHR {
18043    #[inline]
18044    fn next_mut(&self) -> *mut c_void {
18045        self.next
18046    }
18047}
18048
18049unsafe impl InputChainStruct for SurfaceCreateInfoOHOS {
18050    const TYPE: StructureType = StructureType::SURFACE_CREATE_INFO_OHOS;
18051
18052    #[inline]
18053    fn s_type(&self) -> StructureType {
18054        self.s_type
18055    }
18056
18057    #[inline]
18058    fn next(&self) -> *const c_void {
18059        self.next
18060    }
18061}
18062
18063unsafe impl InputChainStruct for SurfaceFormat2KHR {
18064    const TYPE: StructureType = StructureType::SURFACE_FORMAT_2_KHR;
18065
18066    #[inline]
18067    fn s_type(&self) -> StructureType {
18068        self.s_type
18069    }
18070
18071    #[inline]
18072    fn next(&self) -> *const c_void {
18073        self.next
18074    }
18075}
18076
18077unsafe impl OutputChainStruct for SurfaceFormat2KHR {
18078    #[inline]
18079    fn next_mut(&self) -> *mut c_void {
18080        self.next
18081    }
18082}
18083
18084unsafe impl InputChainStruct for SurfaceFullScreenExclusiveInfoEXT {
18085    const TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
18086
18087    #[inline]
18088    fn s_type(&self) -> StructureType {
18089        self.s_type
18090    }
18091
18092    #[inline]
18093    fn next(&self) -> *const c_void {
18094        self.next
18095    }
18096}
18097
18098unsafe impl OutputChainStruct for SurfaceFullScreenExclusiveInfoEXT {
18099    #[inline]
18100    fn next_mut(&self) -> *mut c_void {
18101        self.next
18102    }
18103}
18104
18105unsafe impl InputChainStruct for SurfaceFullScreenExclusiveWin32InfoEXT {
18106    const TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
18107
18108    #[inline]
18109    fn s_type(&self) -> StructureType {
18110        self.s_type
18111    }
18112
18113    #[inline]
18114    fn next(&self) -> *const c_void {
18115        self.next
18116    }
18117}
18118
18119unsafe impl InputChainStruct for SurfacePresentModeCompatibilityKHR {
18120    const TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR;
18121
18122    #[inline]
18123    fn s_type(&self) -> StructureType {
18124        self.s_type
18125    }
18126
18127    #[inline]
18128    fn next(&self) -> *const c_void {
18129        self.next
18130    }
18131}
18132
18133unsafe impl OutputChainStruct for SurfacePresentModeCompatibilityKHR {
18134    #[inline]
18135    fn next_mut(&self) -> *mut c_void {
18136        self.next
18137    }
18138}
18139
18140unsafe impl InputChainStruct for SurfacePresentModeKHR {
18141    const TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_KHR;
18142
18143    #[inline]
18144    fn s_type(&self) -> StructureType {
18145        self.s_type
18146    }
18147
18148    #[inline]
18149    fn next(&self) -> *const c_void {
18150        self.next
18151    }
18152}
18153
18154unsafe impl OutputChainStruct for SurfacePresentModeKHR {
18155    #[inline]
18156    fn next_mut(&self) -> *mut c_void {
18157        self.next
18158    }
18159}
18160
18161unsafe impl InputChainStruct for SurfacePresentScalingCapabilitiesKHR {
18162    const TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR;
18163
18164    #[inline]
18165    fn s_type(&self) -> StructureType {
18166        self.s_type
18167    }
18168
18169    #[inline]
18170    fn next(&self) -> *const c_void {
18171        self.next
18172    }
18173}
18174
18175unsafe impl OutputChainStruct for SurfacePresentScalingCapabilitiesKHR {
18176    #[inline]
18177    fn next_mut(&self) -> *mut c_void {
18178        self.next
18179    }
18180}
18181
18182unsafe impl InputChainStruct for SurfaceProtectedCapabilitiesKHR {
18183    const TYPE: StructureType = StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR;
18184
18185    #[inline]
18186    fn s_type(&self) -> StructureType {
18187        self.s_type
18188    }
18189
18190    #[inline]
18191    fn next(&self) -> *const c_void {
18192        self.next
18193    }
18194}
18195
18196unsafe impl OutputChainStruct for SurfaceProtectedCapabilitiesKHR {
18197    #[inline]
18198    fn next_mut(&self) -> *mut c_void {
18199        self.next
18200    }
18201}
18202
18203unsafe impl InputChainStruct for SwapchainCalibratedTimestampInfoEXT {
18204    const TYPE: StructureType = StructureType::SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT;
18205
18206    #[inline]
18207    fn s_type(&self) -> StructureType {
18208        self.s_type
18209    }
18210
18211    #[inline]
18212    fn next(&self) -> *const c_void {
18213        self.next
18214    }
18215}
18216
18217unsafe impl InputChainStruct for SwapchainCounterCreateInfoEXT {
18218    const TYPE: StructureType = StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
18219
18220    #[inline]
18221    fn s_type(&self) -> StructureType {
18222        self.s_type
18223    }
18224
18225    #[inline]
18226    fn next(&self) -> *const c_void {
18227        self.next
18228    }
18229}
18230
18231unsafe impl InputChainStruct for SwapchainCreateInfoKHR {
18232    const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_KHR;
18233
18234    #[inline]
18235    fn s_type(&self) -> StructureType {
18236        self.s_type
18237    }
18238
18239    #[inline]
18240    fn next(&self) -> *const c_void {
18241        self.next
18242    }
18243}
18244
18245unsafe impl InputChainStruct for SwapchainDisplayNativeHdrCreateInfoAMD {
18246    const TYPE: StructureType = StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
18247
18248    #[inline]
18249    fn s_type(&self) -> StructureType {
18250        self.s_type
18251    }
18252
18253    #[inline]
18254    fn next(&self) -> *const c_void {
18255        self.next
18256    }
18257}
18258
18259unsafe impl InputChainStruct for SwapchainLatencyCreateInfoNV {
18260    const TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV;
18261
18262    #[inline]
18263    fn s_type(&self) -> StructureType {
18264        self.s_type
18265    }
18266
18267    #[inline]
18268    fn next(&self) -> *const c_void {
18269        self.next
18270    }
18271}
18272
18273unsafe impl InputChainStruct for SwapchainPresentBarrierCreateInfoNV {
18274    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV;
18275
18276    #[inline]
18277    fn s_type(&self) -> StructureType {
18278        self.s_type
18279    }
18280
18281    #[inline]
18282    fn next(&self) -> *const c_void {
18283        self.next
18284    }
18285}
18286
18287unsafe impl OutputChainStruct for SwapchainPresentBarrierCreateInfoNV {
18288    #[inline]
18289    fn next_mut(&self) -> *mut c_void {
18290        self.next
18291    }
18292}
18293
18294unsafe impl InputChainStruct for SwapchainPresentFenceInfoKHR {
18295    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_KHR;
18296
18297    #[inline]
18298    fn s_type(&self) -> StructureType {
18299        self.s_type
18300    }
18301
18302    #[inline]
18303    fn next(&self) -> *const c_void {
18304        self.next
18305    }
18306}
18307
18308unsafe impl InputChainStruct for SwapchainPresentModeInfoKHR {
18309    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_KHR;
18310
18311    #[inline]
18312    fn s_type(&self) -> StructureType {
18313        self.s_type
18314    }
18315
18316    #[inline]
18317    fn next(&self) -> *const c_void {
18318        self.next
18319    }
18320}
18321
18322unsafe impl InputChainStruct for SwapchainPresentModesCreateInfoKHR {
18323    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR;
18324
18325    #[inline]
18326    fn s_type(&self) -> StructureType {
18327        self.s_type
18328    }
18329
18330    #[inline]
18331    fn next(&self) -> *const c_void {
18332        self.next
18333    }
18334}
18335
18336unsafe impl InputChainStruct for SwapchainPresentScalingCreateInfoKHR {
18337    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR;
18338
18339    #[inline]
18340    fn s_type(&self) -> StructureType {
18341        self.s_type
18342    }
18343
18344    #[inline]
18345    fn next(&self) -> *const c_void {
18346        self.next
18347    }
18348}
18349
18350unsafe impl InputChainStruct for SwapchainTimeDomainPropertiesEXT {
18351    const TYPE: StructureType = StructureType::SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT;
18352
18353    #[inline]
18354    fn s_type(&self) -> StructureType {
18355        self.s_type
18356    }
18357
18358    #[inline]
18359    fn next(&self) -> *const c_void {
18360        self.next
18361    }
18362}
18363
18364unsafe impl OutputChainStruct for SwapchainTimeDomainPropertiesEXT {
18365    #[inline]
18366    fn next_mut(&self) -> *mut c_void {
18367        self.next
18368    }
18369}
18370
18371unsafe impl InputChainStruct for SwapchainTimingPropertiesEXT {
18372    const TYPE: StructureType = StructureType::SWAPCHAIN_TIMING_PROPERTIES_EXT;
18373
18374    #[inline]
18375    fn s_type(&self) -> StructureType {
18376        self.s_type
18377    }
18378
18379    #[inline]
18380    fn next(&self) -> *const c_void {
18381        self.next
18382    }
18383}
18384
18385unsafe impl OutputChainStruct for SwapchainTimingPropertiesEXT {
18386    #[inline]
18387    fn next_mut(&self) -> *mut c_void {
18388        self.next
18389    }
18390}
18391
18392unsafe impl InputChainStruct for SysmemColorSpaceFUCHSIA {
18393    const TYPE: StructureType = StructureType::SYSMEM_COLOR_SPACE_FUCHSIA;
18394
18395    #[inline]
18396    fn s_type(&self) -> StructureType {
18397        self.s_type
18398    }
18399
18400    #[inline]
18401    fn next(&self) -> *const c_void {
18402        self.next
18403    }
18404}
18405
18406unsafe impl InputChainStruct for TensorCaptureDescriptorDataInfoARM {
18407    const TYPE: StructureType = StructureType::TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM;
18408
18409    #[inline]
18410    fn s_type(&self) -> StructureType {
18411        self.s_type
18412    }
18413
18414    #[inline]
18415    fn next(&self) -> *const c_void {
18416        self.next
18417    }
18418}
18419
18420unsafe impl InputChainStruct for TensorCopyARM {
18421    const TYPE: StructureType = StructureType::TENSOR_COPY_ARM;
18422
18423    #[inline]
18424    fn s_type(&self) -> StructureType {
18425        self.s_type
18426    }
18427
18428    #[inline]
18429    fn next(&self) -> *const c_void {
18430        self.next
18431    }
18432}
18433
18434unsafe impl InputChainStruct for TensorCreateInfoARM {
18435    const TYPE: StructureType = StructureType::TENSOR_CREATE_INFO_ARM;
18436
18437    #[inline]
18438    fn s_type(&self) -> StructureType {
18439        self.s_type
18440    }
18441
18442    #[inline]
18443    fn next(&self) -> *const c_void {
18444        self.next
18445    }
18446}
18447
18448unsafe impl InputChainStruct for TensorDependencyInfoARM {
18449    const TYPE: StructureType = StructureType::TENSOR_DEPENDENCY_INFO_ARM;
18450
18451    #[inline]
18452    fn s_type(&self) -> StructureType {
18453        self.s_type
18454    }
18455
18456    #[inline]
18457    fn next(&self) -> *const c_void {
18458        self.next
18459    }
18460}
18461
18462unsafe impl InputChainStruct for TensorDescriptionARM {
18463    const TYPE: StructureType = StructureType::TENSOR_DESCRIPTION_ARM;
18464
18465    #[inline]
18466    fn s_type(&self) -> StructureType {
18467        self.s_type
18468    }
18469
18470    #[inline]
18471    fn next(&self) -> *const c_void {
18472        self.next
18473    }
18474}
18475
18476unsafe impl InputChainStruct for TensorFormatPropertiesARM {
18477    const TYPE: StructureType = StructureType::TENSOR_FORMAT_PROPERTIES_ARM;
18478
18479    #[inline]
18480    fn s_type(&self) -> StructureType {
18481        self.s_type
18482    }
18483
18484    #[inline]
18485    fn next(&self) -> *const c_void {
18486        self.next
18487    }
18488}
18489
18490unsafe impl OutputChainStruct for TensorFormatPropertiesARM {
18491    #[inline]
18492    fn next_mut(&self) -> *mut c_void {
18493        self.next
18494    }
18495}
18496
18497unsafe impl InputChainStruct for TensorMemoryBarrierARM {
18498    const TYPE: StructureType = StructureType::TENSOR_MEMORY_BARRIER_ARM;
18499
18500    #[inline]
18501    fn s_type(&self) -> StructureType {
18502        self.s_type
18503    }
18504
18505    #[inline]
18506    fn next(&self) -> *const c_void {
18507        self.next
18508    }
18509}
18510
18511unsafe impl InputChainStruct for TensorMemoryRequirementsInfoARM {
18512    const TYPE: StructureType = StructureType::TENSOR_MEMORY_REQUIREMENTS_INFO_ARM;
18513
18514    #[inline]
18515    fn s_type(&self) -> StructureType {
18516        self.s_type
18517    }
18518
18519    #[inline]
18520    fn next(&self) -> *const c_void {
18521        self.next
18522    }
18523}
18524
18525unsafe impl InputChainStruct for TensorViewCaptureDescriptorDataInfoARM {
18526    const TYPE: StructureType = StructureType::TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM;
18527
18528    #[inline]
18529    fn s_type(&self) -> StructureType {
18530        self.s_type
18531    }
18532
18533    #[inline]
18534    fn next(&self) -> *const c_void {
18535        self.next
18536    }
18537}
18538
18539unsafe impl InputChainStruct for TensorViewCreateInfoARM {
18540    const TYPE: StructureType = StructureType::TENSOR_VIEW_CREATE_INFO_ARM;
18541
18542    #[inline]
18543    fn s_type(&self) -> StructureType {
18544        self.s_type
18545    }
18546
18547    #[inline]
18548    fn next(&self) -> *const c_void {
18549        self.next
18550    }
18551}
18552
18553unsafe impl InputChainStruct for TexelBufferDescriptorInfoEXT {
18554    const TYPE: StructureType = StructureType::TEXEL_BUFFER_DESCRIPTOR_INFO_EXT;
18555
18556    #[inline]
18557    fn s_type(&self) -> StructureType {
18558        self.s_type
18559    }
18560
18561    #[inline]
18562    fn next(&self) -> *const c_void {
18563        self.next
18564    }
18565}
18566
18567unsafe impl InputChainStruct for TextureLODGatherFormatPropertiesAMD {
18568    const TYPE: StructureType = StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
18569
18570    #[inline]
18571    fn s_type(&self) -> StructureType {
18572        self.s_type
18573    }
18574
18575    #[inline]
18576    fn next(&self) -> *const c_void {
18577        self.next
18578    }
18579}
18580
18581unsafe impl OutputChainStruct for TextureLODGatherFormatPropertiesAMD {
18582    #[inline]
18583    fn next_mut(&self) -> *mut c_void {
18584        self.next
18585    }
18586}
18587
18588unsafe impl InputChainStruct for TileMemoryBindInfoQCOM {
18589    const TYPE: StructureType = StructureType::TILE_MEMORY_BIND_INFO_QCOM;
18590
18591    #[inline]
18592    fn s_type(&self) -> StructureType {
18593        self.s_type
18594    }
18595
18596    #[inline]
18597    fn next(&self) -> *const c_void {
18598        self.next
18599    }
18600}
18601
18602unsafe impl InputChainStruct for TileMemoryRequirementsQCOM {
18603    const TYPE: StructureType = StructureType::TILE_MEMORY_REQUIREMENTS_QCOM;
18604
18605    #[inline]
18606    fn s_type(&self) -> StructureType {
18607        self.s_type
18608    }
18609
18610    #[inline]
18611    fn next(&self) -> *const c_void {
18612        self.next
18613    }
18614}
18615
18616unsafe impl OutputChainStruct for TileMemoryRequirementsQCOM {
18617    #[inline]
18618    fn next_mut(&self) -> *mut c_void {
18619        self.next
18620    }
18621}
18622
18623unsafe impl InputChainStruct for TileMemorySizeInfoQCOM {
18624    const TYPE: StructureType = StructureType::TILE_MEMORY_SIZE_INFO_QCOM;
18625
18626    #[inline]
18627    fn s_type(&self) -> StructureType {
18628        self.s_type
18629    }
18630
18631    #[inline]
18632    fn next(&self) -> *const c_void {
18633        self.next
18634    }
18635}
18636
18637unsafe impl InputChainStruct for TilePropertiesQCOM {
18638    const TYPE: StructureType = StructureType::TILE_PROPERTIES_QCOM;
18639
18640    #[inline]
18641    fn s_type(&self) -> StructureType {
18642        self.s_type
18643    }
18644
18645    #[inline]
18646    fn next(&self) -> *const c_void {
18647        self.next
18648    }
18649}
18650
18651unsafe impl OutputChainStruct for TilePropertiesQCOM {
18652    #[inline]
18653    fn next_mut(&self) -> *mut c_void {
18654        self.next
18655    }
18656}
18657
18658unsafe impl InputChainStruct for TimelineSemaphoreSubmitInfo {
18659    const TYPE: StructureType = StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO;
18660
18661    #[inline]
18662    fn s_type(&self) -> StructureType {
18663        self.s_type
18664    }
18665
18666    #[inline]
18667    fn next(&self) -> *const c_void {
18668        self.next
18669    }
18670}
18671
18672unsafe impl InputChainStruct for UbmSurfaceCreateInfoSEC {
18673    const TYPE: StructureType = StructureType::UBM_SURFACE_CREATE_INFO_SEC;
18674
18675    #[inline]
18676    fn s_type(&self) -> StructureType {
18677        self.s_type
18678    }
18679
18680    #[inline]
18681    fn next(&self) -> *const c_void {
18682        self.next
18683    }
18684}
18685
18686unsafe impl InputChainStruct for ValidationCacheCreateInfoEXT {
18687    const TYPE: StructureType = StructureType::VALIDATION_CACHE_CREATE_INFO_EXT;
18688
18689    #[inline]
18690    fn s_type(&self) -> StructureType {
18691        self.s_type
18692    }
18693
18694    #[inline]
18695    fn next(&self) -> *const c_void {
18696        self.next
18697    }
18698}
18699
18700unsafe impl InputChainStruct for ValidationFeaturesEXT {
18701    const TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT;
18702
18703    #[inline]
18704    fn s_type(&self) -> StructureType {
18705        self.s_type
18706    }
18707
18708    #[inline]
18709    fn next(&self) -> *const c_void {
18710        self.next
18711    }
18712}
18713
18714unsafe impl InputChainStruct for ValidationFlagsEXT {
18715    const TYPE: StructureType = StructureType::VALIDATION_FLAGS_EXT;
18716
18717    #[inline]
18718    fn s_type(&self) -> StructureType {
18719        self.s_type
18720    }
18721
18722    #[inline]
18723    fn next(&self) -> *const c_void {
18724        self.next
18725    }
18726}
18727
18728unsafe impl InputChainStruct for VertexInputAttributeDescription2EXT {
18729    const TYPE: StructureType = StructureType::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
18730
18731    #[inline]
18732    fn s_type(&self) -> StructureType {
18733        self.s_type
18734    }
18735
18736    #[inline]
18737    fn next(&self) -> *const c_void {
18738        self.next
18739    }
18740}
18741
18742unsafe impl OutputChainStruct for VertexInputAttributeDescription2EXT {
18743    #[inline]
18744    fn next_mut(&self) -> *mut c_void {
18745        self.next
18746    }
18747}
18748
18749unsafe impl InputChainStruct for VertexInputBindingDescription2EXT {
18750    const TYPE: StructureType = StructureType::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
18751
18752    #[inline]
18753    fn s_type(&self) -> StructureType {
18754        self.s_type
18755    }
18756
18757    #[inline]
18758    fn next(&self) -> *const c_void {
18759        self.next
18760    }
18761}
18762
18763unsafe impl OutputChainStruct for VertexInputBindingDescription2EXT {
18764    #[inline]
18765    fn next_mut(&self) -> *mut c_void {
18766        self.next
18767    }
18768}
18769
18770unsafe impl InputChainStruct for ViSurfaceCreateInfoNN {
18771    const TYPE: StructureType = StructureType::VI_SURFACE_CREATE_INFO_NN;
18772
18773    #[inline]
18774    fn s_type(&self) -> StructureType {
18775        self.s_type
18776    }
18777
18778    #[inline]
18779    fn next(&self) -> *const c_void {
18780        self.next
18781    }
18782}
18783
18784unsafe impl InputChainStruct for VideoBeginCodingInfoKHR {
18785    const TYPE: StructureType = StructureType::VIDEO_BEGIN_CODING_INFO_KHR;
18786
18787    #[inline]
18788    fn s_type(&self) -> StructureType {
18789        self.s_type
18790    }
18791
18792    #[inline]
18793    fn next(&self) -> *const c_void {
18794        self.next
18795    }
18796}
18797
18798unsafe impl InputChainStruct for VideoCapabilitiesKHR {
18799    const TYPE: StructureType = StructureType::VIDEO_CAPABILITIES_KHR;
18800
18801    #[inline]
18802    fn s_type(&self) -> StructureType {
18803        self.s_type
18804    }
18805
18806    #[inline]
18807    fn next(&self) -> *const c_void {
18808        self.next
18809    }
18810}
18811
18812unsafe impl OutputChainStruct for VideoCapabilitiesKHR {
18813    #[inline]
18814    fn next_mut(&self) -> *mut c_void {
18815        self.next
18816    }
18817}
18818
18819unsafe impl InputChainStruct for VideoCodingControlInfoKHR {
18820    const TYPE: StructureType = StructureType::VIDEO_CODING_CONTROL_INFO_KHR;
18821
18822    #[inline]
18823    fn s_type(&self) -> StructureType {
18824        self.s_type
18825    }
18826
18827    #[inline]
18828    fn next(&self) -> *const c_void {
18829        self.next
18830    }
18831}
18832
18833unsafe impl InputChainStruct for VideoDecodeAV1CapabilitiesKHR {
18834    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR;
18835
18836    #[inline]
18837    fn s_type(&self) -> StructureType {
18838        self.s_type
18839    }
18840
18841    #[inline]
18842    fn next(&self) -> *const c_void {
18843        self.next
18844    }
18845}
18846
18847unsafe impl OutputChainStruct for VideoDecodeAV1CapabilitiesKHR {
18848    #[inline]
18849    fn next_mut(&self) -> *mut c_void {
18850        self.next
18851    }
18852}
18853
18854unsafe impl InputChainStruct for VideoDecodeAV1DpbSlotInfoKHR {
18855    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR;
18856
18857    #[inline]
18858    fn s_type(&self) -> StructureType {
18859        self.s_type
18860    }
18861
18862    #[inline]
18863    fn next(&self) -> *const c_void {
18864        self.next
18865    }
18866}
18867
18868unsafe impl InputChainStruct for VideoDecodeAV1InlineSessionParametersInfoKHR {
18869    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR;
18870
18871    #[inline]
18872    fn s_type(&self) -> StructureType {
18873        self.s_type
18874    }
18875
18876    #[inline]
18877    fn next(&self) -> *const c_void {
18878        self.next
18879    }
18880}
18881
18882unsafe impl InputChainStruct for VideoDecodeAV1PictureInfoKHR {
18883    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR;
18884
18885    #[inline]
18886    fn s_type(&self) -> StructureType {
18887        self.s_type
18888    }
18889
18890    #[inline]
18891    fn next(&self) -> *const c_void {
18892        self.next
18893    }
18894}
18895
18896unsafe impl InputChainStruct for VideoDecodeAV1ProfileInfoKHR {
18897    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR;
18898
18899    #[inline]
18900    fn s_type(&self) -> StructureType {
18901        self.s_type
18902    }
18903
18904    #[inline]
18905    fn next(&self) -> *const c_void {
18906        self.next
18907    }
18908}
18909
18910unsafe impl InputChainStruct for VideoDecodeAV1SessionParametersCreateInfoKHR {
18911    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR;
18912
18913    #[inline]
18914    fn s_type(&self) -> StructureType {
18915        self.s_type
18916    }
18917
18918    #[inline]
18919    fn next(&self) -> *const c_void {
18920        self.next
18921    }
18922}
18923
18924unsafe impl InputChainStruct for VideoDecodeCapabilitiesKHR {
18925    const TYPE: StructureType = StructureType::VIDEO_DECODE_CAPABILITIES_KHR;
18926
18927    #[inline]
18928    fn s_type(&self) -> StructureType {
18929        self.s_type
18930    }
18931
18932    #[inline]
18933    fn next(&self) -> *const c_void {
18934        self.next
18935    }
18936}
18937
18938unsafe impl OutputChainStruct for VideoDecodeCapabilitiesKHR {
18939    #[inline]
18940    fn next_mut(&self) -> *mut c_void {
18941        self.next
18942    }
18943}
18944
18945unsafe impl InputChainStruct for VideoDecodeH264CapabilitiesKHR {
18946    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR;
18947
18948    #[inline]
18949    fn s_type(&self) -> StructureType {
18950        self.s_type
18951    }
18952
18953    #[inline]
18954    fn next(&self) -> *const c_void {
18955        self.next
18956    }
18957}
18958
18959unsafe impl OutputChainStruct for VideoDecodeH264CapabilitiesKHR {
18960    #[inline]
18961    fn next_mut(&self) -> *mut c_void {
18962        self.next
18963    }
18964}
18965
18966unsafe impl InputChainStruct for VideoDecodeH264DpbSlotInfoKHR {
18967    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR;
18968
18969    #[inline]
18970    fn s_type(&self) -> StructureType {
18971        self.s_type
18972    }
18973
18974    #[inline]
18975    fn next(&self) -> *const c_void {
18976        self.next
18977    }
18978}
18979
18980unsafe impl InputChainStruct for VideoDecodeH264InlineSessionParametersInfoKHR {
18981    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR;
18982
18983    #[inline]
18984    fn s_type(&self) -> StructureType {
18985        self.s_type
18986    }
18987
18988    #[inline]
18989    fn next(&self) -> *const c_void {
18990        self.next
18991    }
18992}
18993
18994unsafe impl InputChainStruct for VideoDecodeH264PictureInfoKHR {
18995    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR;
18996
18997    #[inline]
18998    fn s_type(&self) -> StructureType {
18999        self.s_type
19000    }
19001
19002    #[inline]
19003    fn next(&self) -> *const c_void {
19004        self.next
19005    }
19006}
19007
19008unsafe impl InputChainStruct for VideoDecodeH264ProfileInfoKHR {
19009    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR;
19010
19011    #[inline]
19012    fn s_type(&self) -> StructureType {
19013        self.s_type
19014    }
19015
19016    #[inline]
19017    fn next(&self) -> *const c_void {
19018        self.next
19019    }
19020}
19021
19022unsafe impl InputChainStruct for VideoDecodeH264SessionParametersAddInfoKHR {
19023    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR;
19024
19025    #[inline]
19026    fn s_type(&self) -> StructureType {
19027        self.s_type
19028    }
19029
19030    #[inline]
19031    fn next(&self) -> *const c_void {
19032        self.next
19033    }
19034}
19035
19036unsafe impl InputChainStruct for VideoDecodeH264SessionParametersCreateInfoKHR {
19037    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR;
19038
19039    #[inline]
19040    fn s_type(&self) -> StructureType {
19041        self.s_type
19042    }
19043
19044    #[inline]
19045    fn next(&self) -> *const c_void {
19046        self.next
19047    }
19048}
19049
19050unsafe impl InputChainStruct for VideoDecodeH265CapabilitiesKHR {
19051    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR;
19052
19053    #[inline]
19054    fn s_type(&self) -> StructureType {
19055        self.s_type
19056    }
19057
19058    #[inline]
19059    fn next(&self) -> *const c_void {
19060        self.next
19061    }
19062}
19063
19064unsafe impl OutputChainStruct for VideoDecodeH265CapabilitiesKHR {
19065    #[inline]
19066    fn next_mut(&self) -> *mut c_void {
19067        self.next
19068    }
19069}
19070
19071unsafe impl InputChainStruct for VideoDecodeH265DpbSlotInfoKHR {
19072    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR;
19073
19074    #[inline]
19075    fn s_type(&self) -> StructureType {
19076        self.s_type
19077    }
19078
19079    #[inline]
19080    fn next(&self) -> *const c_void {
19081        self.next
19082    }
19083}
19084
19085unsafe impl InputChainStruct for VideoDecodeH265InlineSessionParametersInfoKHR {
19086    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR;
19087
19088    #[inline]
19089    fn s_type(&self) -> StructureType {
19090        self.s_type
19091    }
19092
19093    #[inline]
19094    fn next(&self) -> *const c_void {
19095        self.next
19096    }
19097}
19098
19099unsafe impl InputChainStruct for VideoDecodeH265PictureInfoKHR {
19100    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR;
19101
19102    #[inline]
19103    fn s_type(&self) -> StructureType {
19104        self.s_type
19105    }
19106
19107    #[inline]
19108    fn next(&self) -> *const c_void {
19109        self.next
19110    }
19111}
19112
19113unsafe impl InputChainStruct for VideoDecodeH265ProfileInfoKHR {
19114    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR;
19115
19116    #[inline]
19117    fn s_type(&self) -> StructureType {
19118        self.s_type
19119    }
19120
19121    #[inline]
19122    fn next(&self) -> *const c_void {
19123        self.next
19124    }
19125}
19126
19127unsafe impl InputChainStruct for VideoDecodeH265SessionParametersAddInfoKHR {
19128    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR;
19129
19130    #[inline]
19131    fn s_type(&self) -> StructureType {
19132        self.s_type
19133    }
19134
19135    #[inline]
19136    fn next(&self) -> *const c_void {
19137        self.next
19138    }
19139}
19140
19141unsafe impl InputChainStruct for VideoDecodeH265SessionParametersCreateInfoKHR {
19142    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR;
19143
19144    #[inline]
19145    fn s_type(&self) -> StructureType {
19146        self.s_type
19147    }
19148
19149    #[inline]
19150    fn next(&self) -> *const c_void {
19151        self.next
19152    }
19153}
19154
19155unsafe impl InputChainStruct for VideoDecodeInfoKHR {
19156    const TYPE: StructureType = StructureType::VIDEO_DECODE_INFO_KHR;
19157
19158    #[inline]
19159    fn s_type(&self) -> StructureType {
19160        self.s_type
19161    }
19162
19163    #[inline]
19164    fn next(&self) -> *const c_void {
19165        self.next
19166    }
19167}
19168
19169unsafe impl InputChainStruct for VideoDecodeUsageInfoKHR {
19170    const TYPE: StructureType = StructureType::VIDEO_DECODE_USAGE_INFO_KHR;
19171
19172    #[inline]
19173    fn s_type(&self) -> StructureType {
19174        self.s_type
19175    }
19176
19177    #[inline]
19178    fn next(&self) -> *const c_void {
19179        self.next
19180    }
19181}
19182
19183unsafe impl InputChainStruct for VideoDecodeVP9CapabilitiesKHR {
19184    const TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_CAPABILITIES_KHR;
19185
19186    #[inline]
19187    fn s_type(&self) -> StructureType {
19188        self.s_type
19189    }
19190
19191    #[inline]
19192    fn next(&self) -> *const c_void {
19193        self.next
19194    }
19195}
19196
19197unsafe impl OutputChainStruct for VideoDecodeVP9CapabilitiesKHR {
19198    #[inline]
19199    fn next_mut(&self) -> *mut c_void {
19200        self.next
19201    }
19202}
19203
19204unsafe impl InputChainStruct for VideoDecodeVP9PictureInfoKHR {
19205    const TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_PICTURE_INFO_KHR;
19206
19207    #[inline]
19208    fn s_type(&self) -> StructureType {
19209        self.s_type
19210    }
19211
19212    #[inline]
19213    fn next(&self) -> *const c_void {
19214        self.next
19215    }
19216}
19217
19218unsafe impl InputChainStruct for VideoDecodeVP9ProfileInfoKHR {
19219    const TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_PROFILE_INFO_KHR;
19220
19221    #[inline]
19222    fn s_type(&self) -> StructureType {
19223        self.s_type
19224    }
19225
19226    #[inline]
19227    fn next(&self) -> *const c_void {
19228        self.next
19229    }
19230}
19231
19232unsafe impl InputChainStruct for VideoEncodeAV1CapabilitiesKHR {
19233    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_CAPABILITIES_KHR;
19234
19235    #[inline]
19236    fn s_type(&self) -> StructureType {
19237        self.s_type
19238    }
19239
19240    #[inline]
19241    fn next(&self) -> *const c_void {
19242        self.next
19243    }
19244}
19245
19246unsafe impl OutputChainStruct for VideoEncodeAV1CapabilitiesKHR {
19247    #[inline]
19248    fn next_mut(&self) -> *mut c_void {
19249        self.next
19250    }
19251}
19252
19253unsafe impl InputChainStruct for VideoEncodeAV1DpbSlotInfoKHR {
19254    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR;
19255
19256    #[inline]
19257    fn s_type(&self) -> StructureType {
19258        self.s_type
19259    }
19260
19261    #[inline]
19262    fn next(&self) -> *const c_void {
19263        self.next
19264    }
19265}
19266
19267unsafe impl InputChainStruct for VideoEncodeAV1GopRemainingFrameInfoKHR {
19268    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR;
19269
19270    #[inline]
19271    fn s_type(&self) -> StructureType {
19272        self.s_type
19273    }
19274
19275    #[inline]
19276    fn next(&self) -> *const c_void {
19277        self.next
19278    }
19279}
19280
19281unsafe impl InputChainStruct for VideoEncodeAV1PictureInfoKHR {
19282    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR;
19283
19284    #[inline]
19285    fn s_type(&self) -> StructureType {
19286        self.s_type
19287    }
19288
19289    #[inline]
19290    fn next(&self) -> *const c_void {
19291        self.next
19292    }
19293}
19294
19295unsafe impl InputChainStruct for VideoEncodeAV1ProfileInfoKHR {
19296    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR;
19297
19298    #[inline]
19299    fn s_type(&self) -> StructureType {
19300        self.s_type
19301    }
19302
19303    #[inline]
19304    fn next(&self) -> *const c_void {
19305        self.next
19306    }
19307}
19308
19309unsafe impl InputChainStruct for VideoEncodeAV1QualityLevelPropertiesKHR {
19310    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR;
19311
19312    #[inline]
19313    fn s_type(&self) -> StructureType {
19314        self.s_type
19315    }
19316
19317    #[inline]
19318    fn next(&self) -> *const c_void {
19319        self.next
19320    }
19321}
19322
19323unsafe impl OutputChainStruct for VideoEncodeAV1QualityLevelPropertiesKHR {
19324    #[inline]
19325    fn next_mut(&self) -> *mut c_void {
19326        self.next
19327    }
19328}
19329
19330unsafe impl InputChainStruct for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
19331    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR;
19332
19333    #[inline]
19334    fn s_type(&self) -> StructureType {
19335        self.s_type
19336    }
19337
19338    #[inline]
19339    fn next(&self) -> *const c_void {
19340        self.next
19341    }
19342}
19343
19344unsafe impl OutputChainStruct for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
19345    #[inline]
19346    fn next_mut(&self) -> *mut c_void {
19347        self.next
19348    }
19349}
19350
19351unsafe impl InputChainStruct for VideoEncodeAV1RateControlInfoKHR {
19352    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR;
19353
19354    #[inline]
19355    fn s_type(&self) -> StructureType {
19356        self.s_type
19357    }
19358
19359    #[inline]
19360    fn next(&self) -> *const c_void {
19361        self.next
19362    }
19363}
19364
19365unsafe impl InputChainStruct for VideoEncodeAV1RateControlLayerInfoKHR {
19366    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR;
19367
19368    #[inline]
19369    fn s_type(&self) -> StructureType {
19370        self.s_type
19371    }
19372
19373    #[inline]
19374    fn next(&self) -> *const c_void {
19375        self.next
19376    }
19377}
19378
19379unsafe impl InputChainStruct for VideoEncodeAV1SessionCreateInfoKHR {
19380    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR;
19381
19382    #[inline]
19383    fn s_type(&self) -> StructureType {
19384        self.s_type
19385    }
19386
19387    #[inline]
19388    fn next(&self) -> *const c_void {
19389        self.next
19390    }
19391}
19392
19393unsafe impl InputChainStruct for VideoEncodeAV1SessionParametersCreateInfoKHR {
19394    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR;
19395
19396    #[inline]
19397    fn s_type(&self) -> StructureType {
19398        self.s_type
19399    }
19400
19401    #[inline]
19402    fn next(&self) -> *const c_void {
19403        self.next
19404    }
19405}
19406
19407unsafe impl InputChainStruct for VideoEncodeCapabilitiesKHR {
19408    const TYPE: StructureType = StructureType::VIDEO_ENCODE_CAPABILITIES_KHR;
19409
19410    #[inline]
19411    fn s_type(&self) -> StructureType {
19412        self.s_type
19413    }
19414
19415    #[inline]
19416    fn next(&self) -> *const c_void {
19417        self.next
19418    }
19419}
19420
19421unsafe impl OutputChainStruct for VideoEncodeCapabilitiesKHR {
19422    #[inline]
19423    fn next_mut(&self) -> *mut c_void {
19424        self.next
19425    }
19426}
19427
19428unsafe impl InputChainStruct for VideoEncodeH264CapabilitiesKHR {
19429    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR;
19430
19431    #[inline]
19432    fn s_type(&self) -> StructureType {
19433        self.s_type
19434    }
19435
19436    #[inline]
19437    fn next(&self) -> *const c_void {
19438        self.next
19439    }
19440}
19441
19442unsafe impl OutputChainStruct for VideoEncodeH264CapabilitiesKHR {
19443    #[inline]
19444    fn next_mut(&self) -> *mut c_void {
19445        self.next
19446    }
19447}
19448
19449unsafe impl InputChainStruct for VideoEncodeH264DpbSlotInfoKHR {
19450    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR;
19451
19452    #[inline]
19453    fn s_type(&self) -> StructureType {
19454        self.s_type
19455    }
19456
19457    #[inline]
19458    fn next(&self) -> *const c_void {
19459        self.next
19460    }
19461}
19462
19463unsafe impl InputChainStruct for VideoEncodeH264GopRemainingFrameInfoKHR {
19464    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR;
19465
19466    #[inline]
19467    fn s_type(&self) -> StructureType {
19468        self.s_type
19469    }
19470
19471    #[inline]
19472    fn next(&self) -> *const c_void {
19473        self.next
19474    }
19475}
19476
19477unsafe impl InputChainStruct for VideoEncodeH264NaluSliceInfoKHR {
19478    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR;
19479
19480    #[inline]
19481    fn s_type(&self) -> StructureType {
19482        self.s_type
19483    }
19484
19485    #[inline]
19486    fn next(&self) -> *const c_void {
19487        self.next
19488    }
19489}
19490
19491unsafe impl InputChainStruct for VideoEncodeH264PictureInfoKHR {
19492    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR;
19493
19494    #[inline]
19495    fn s_type(&self) -> StructureType {
19496        self.s_type
19497    }
19498
19499    #[inline]
19500    fn next(&self) -> *const c_void {
19501        self.next
19502    }
19503}
19504
19505unsafe impl InputChainStruct for VideoEncodeH264ProfileInfoKHR {
19506    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR;
19507
19508    #[inline]
19509    fn s_type(&self) -> StructureType {
19510        self.s_type
19511    }
19512
19513    #[inline]
19514    fn next(&self) -> *const c_void {
19515        self.next
19516    }
19517}
19518
19519unsafe impl InputChainStruct for VideoEncodeH264QualityLevelPropertiesKHR {
19520    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR;
19521
19522    #[inline]
19523    fn s_type(&self) -> StructureType {
19524        self.s_type
19525    }
19526
19527    #[inline]
19528    fn next(&self) -> *const c_void {
19529        self.next
19530    }
19531}
19532
19533unsafe impl OutputChainStruct for VideoEncodeH264QualityLevelPropertiesKHR {
19534    #[inline]
19535    fn next_mut(&self) -> *mut c_void {
19536        self.next
19537    }
19538}
19539
19540unsafe impl InputChainStruct for VideoEncodeH264QuantizationMapCapabilitiesKHR {
19541    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR;
19542
19543    #[inline]
19544    fn s_type(&self) -> StructureType {
19545        self.s_type
19546    }
19547
19548    #[inline]
19549    fn next(&self) -> *const c_void {
19550        self.next
19551    }
19552}
19553
19554unsafe impl OutputChainStruct for VideoEncodeH264QuantizationMapCapabilitiesKHR {
19555    #[inline]
19556    fn next_mut(&self) -> *mut c_void {
19557        self.next
19558    }
19559}
19560
19561unsafe impl InputChainStruct for VideoEncodeH264RateControlInfoKHR {
19562    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR;
19563
19564    #[inline]
19565    fn s_type(&self) -> StructureType {
19566        self.s_type
19567    }
19568
19569    #[inline]
19570    fn next(&self) -> *const c_void {
19571        self.next
19572    }
19573}
19574
19575unsafe impl InputChainStruct for VideoEncodeH264RateControlLayerInfoKHR {
19576    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR;
19577
19578    #[inline]
19579    fn s_type(&self) -> StructureType {
19580        self.s_type
19581    }
19582
19583    #[inline]
19584    fn next(&self) -> *const c_void {
19585        self.next
19586    }
19587}
19588
19589unsafe impl InputChainStruct for VideoEncodeH264SessionCreateInfoKHR {
19590    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR;
19591
19592    #[inline]
19593    fn s_type(&self) -> StructureType {
19594        self.s_type
19595    }
19596
19597    #[inline]
19598    fn next(&self) -> *const c_void {
19599        self.next
19600    }
19601}
19602
19603unsafe impl InputChainStruct for VideoEncodeH264SessionParametersAddInfoKHR {
19604    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR;
19605
19606    #[inline]
19607    fn s_type(&self) -> StructureType {
19608        self.s_type
19609    }
19610
19611    #[inline]
19612    fn next(&self) -> *const c_void {
19613        self.next
19614    }
19615}
19616
19617unsafe impl InputChainStruct for VideoEncodeH264SessionParametersCreateInfoKHR {
19618    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR;
19619
19620    #[inline]
19621    fn s_type(&self) -> StructureType {
19622        self.s_type
19623    }
19624
19625    #[inline]
19626    fn next(&self) -> *const c_void {
19627        self.next
19628    }
19629}
19630
19631unsafe impl InputChainStruct for VideoEncodeH264SessionParametersFeedbackInfoKHR {
19632    const TYPE: StructureType =
19633        StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19634
19635    #[inline]
19636    fn s_type(&self) -> StructureType {
19637        self.s_type
19638    }
19639
19640    #[inline]
19641    fn next(&self) -> *const c_void {
19642        self.next
19643    }
19644}
19645
19646unsafe impl OutputChainStruct for VideoEncodeH264SessionParametersFeedbackInfoKHR {
19647    #[inline]
19648    fn next_mut(&self) -> *mut c_void {
19649        self.next
19650    }
19651}
19652
19653unsafe impl InputChainStruct for VideoEncodeH264SessionParametersGetInfoKHR {
19654    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR;
19655
19656    #[inline]
19657    fn s_type(&self) -> StructureType {
19658        self.s_type
19659    }
19660
19661    #[inline]
19662    fn next(&self) -> *const c_void {
19663        self.next
19664    }
19665}
19666
19667unsafe impl InputChainStruct for VideoEncodeH265CapabilitiesKHR {
19668    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR;
19669
19670    #[inline]
19671    fn s_type(&self) -> StructureType {
19672        self.s_type
19673    }
19674
19675    #[inline]
19676    fn next(&self) -> *const c_void {
19677        self.next
19678    }
19679}
19680
19681unsafe impl OutputChainStruct for VideoEncodeH265CapabilitiesKHR {
19682    #[inline]
19683    fn next_mut(&self) -> *mut c_void {
19684        self.next
19685    }
19686}
19687
19688unsafe impl InputChainStruct for VideoEncodeH265DpbSlotInfoKHR {
19689    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR;
19690
19691    #[inline]
19692    fn s_type(&self) -> StructureType {
19693        self.s_type
19694    }
19695
19696    #[inline]
19697    fn next(&self) -> *const c_void {
19698        self.next
19699    }
19700}
19701
19702unsafe impl InputChainStruct for VideoEncodeH265GopRemainingFrameInfoKHR {
19703    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR;
19704
19705    #[inline]
19706    fn s_type(&self) -> StructureType {
19707        self.s_type
19708    }
19709
19710    #[inline]
19711    fn next(&self) -> *const c_void {
19712        self.next
19713    }
19714}
19715
19716unsafe impl InputChainStruct for VideoEncodeH265NaluSliceSegmentInfoKHR {
19717    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR;
19718
19719    #[inline]
19720    fn s_type(&self) -> StructureType {
19721        self.s_type
19722    }
19723
19724    #[inline]
19725    fn next(&self) -> *const c_void {
19726        self.next
19727    }
19728}
19729
19730unsafe impl InputChainStruct for VideoEncodeH265PictureInfoKHR {
19731    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR;
19732
19733    #[inline]
19734    fn s_type(&self) -> StructureType {
19735        self.s_type
19736    }
19737
19738    #[inline]
19739    fn next(&self) -> *const c_void {
19740        self.next
19741    }
19742}
19743
19744unsafe impl InputChainStruct for VideoEncodeH265ProfileInfoKHR {
19745    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR;
19746
19747    #[inline]
19748    fn s_type(&self) -> StructureType {
19749        self.s_type
19750    }
19751
19752    #[inline]
19753    fn next(&self) -> *const c_void {
19754        self.next
19755    }
19756}
19757
19758unsafe impl InputChainStruct for VideoEncodeH265QualityLevelPropertiesKHR {
19759    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR;
19760
19761    #[inline]
19762    fn s_type(&self) -> StructureType {
19763        self.s_type
19764    }
19765
19766    #[inline]
19767    fn next(&self) -> *const c_void {
19768        self.next
19769    }
19770}
19771
19772unsafe impl OutputChainStruct for VideoEncodeH265QualityLevelPropertiesKHR {
19773    #[inline]
19774    fn next_mut(&self) -> *mut c_void {
19775        self.next
19776    }
19777}
19778
19779unsafe impl InputChainStruct for VideoEncodeH265QuantizationMapCapabilitiesKHR {
19780    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR;
19781
19782    #[inline]
19783    fn s_type(&self) -> StructureType {
19784        self.s_type
19785    }
19786
19787    #[inline]
19788    fn next(&self) -> *const c_void {
19789        self.next
19790    }
19791}
19792
19793unsafe impl OutputChainStruct for VideoEncodeH265QuantizationMapCapabilitiesKHR {
19794    #[inline]
19795    fn next_mut(&self) -> *mut c_void {
19796        self.next
19797    }
19798}
19799
19800unsafe impl InputChainStruct for VideoEncodeH265RateControlInfoKHR {
19801    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR;
19802
19803    #[inline]
19804    fn s_type(&self) -> StructureType {
19805        self.s_type
19806    }
19807
19808    #[inline]
19809    fn next(&self) -> *const c_void {
19810        self.next
19811    }
19812}
19813
19814unsafe impl InputChainStruct for VideoEncodeH265RateControlLayerInfoKHR {
19815    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR;
19816
19817    #[inline]
19818    fn s_type(&self) -> StructureType {
19819        self.s_type
19820    }
19821
19822    #[inline]
19823    fn next(&self) -> *const c_void {
19824        self.next
19825    }
19826}
19827
19828unsafe impl InputChainStruct for VideoEncodeH265SessionCreateInfoKHR {
19829    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR;
19830
19831    #[inline]
19832    fn s_type(&self) -> StructureType {
19833        self.s_type
19834    }
19835
19836    #[inline]
19837    fn next(&self) -> *const c_void {
19838        self.next
19839    }
19840}
19841
19842unsafe impl InputChainStruct for VideoEncodeH265SessionParametersAddInfoKHR {
19843    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR;
19844
19845    #[inline]
19846    fn s_type(&self) -> StructureType {
19847        self.s_type
19848    }
19849
19850    #[inline]
19851    fn next(&self) -> *const c_void {
19852        self.next
19853    }
19854}
19855
19856unsafe impl InputChainStruct for VideoEncodeH265SessionParametersCreateInfoKHR {
19857    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR;
19858
19859    #[inline]
19860    fn s_type(&self) -> StructureType {
19861        self.s_type
19862    }
19863
19864    #[inline]
19865    fn next(&self) -> *const c_void {
19866        self.next
19867    }
19868}
19869
19870unsafe impl InputChainStruct for VideoEncodeH265SessionParametersFeedbackInfoKHR {
19871    const TYPE: StructureType =
19872        StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19873
19874    #[inline]
19875    fn s_type(&self) -> StructureType {
19876        self.s_type
19877    }
19878
19879    #[inline]
19880    fn next(&self) -> *const c_void {
19881        self.next
19882    }
19883}
19884
19885unsafe impl OutputChainStruct for VideoEncodeH265SessionParametersFeedbackInfoKHR {
19886    #[inline]
19887    fn next_mut(&self) -> *mut c_void {
19888        self.next
19889    }
19890}
19891
19892unsafe impl InputChainStruct for VideoEncodeH265SessionParametersGetInfoKHR {
19893    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR;
19894
19895    #[inline]
19896    fn s_type(&self) -> StructureType {
19897        self.s_type
19898    }
19899
19900    #[inline]
19901    fn next(&self) -> *const c_void {
19902        self.next
19903    }
19904}
19905
19906unsafe impl InputChainStruct for VideoEncodeInfoKHR {
19907    const TYPE: StructureType = StructureType::VIDEO_ENCODE_INFO_KHR;
19908
19909    #[inline]
19910    fn s_type(&self) -> StructureType {
19911        self.s_type
19912    }
19913
19914    #[inline]
19915    fn next(&self) -> *const c_void {
19916        self.next
19917    }
19918}
19919
19920unsafe impl InputChainStruct for VideoEncodeIntraRefreshCapabilitiesKHR {
19921    const TYPE: StructureType = StructureType::VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR;
19922
19923    #[inline]
19924    fn s_type(&self) -> StructureType {
19925        self.s_type
19926    }
19927
19928    #[inline]
19929    fn next(&self) -> *const c_void {
19930        self.next
19931    }
19932}
19933
19934unsafe impl OutputChainStruct for VideoEncodeIntraRefreshCapabilitiesKHR {
19935    #[inline]
19936    fn next_mut(&self) -> *mut c_void {
19937        self.next
19938    }
19939}
19940
19941unsafe impl InputChainStruct for VideoEncodeIntraRefreshInfoKHR {
19942    const TYPE: StructureType = StructureType::VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR;
19943
19944    #[inline]
19945    fn s_type(&self) -> StructureType {
19946        self.s_type
19947    }
19948
19949    #[inline]
19950    fn next(&self) -> *const c_void {
19951        self.next
19952    }
19953}
19954
19955unsafe impl InputChainStruct for VideoEncodeProfileRgbConversionInfoVALVE {
19956    const TYPE: StructureType = StructureType::VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE;
19957
19958    #[inline]
19959    fn s_type(&self) -> StructureType {
19960        self.s_type
19961    }
19962
19963    #[inline]
19964    fn next(&self) -> *const c_void {
19965        self.next
19966    }
19967}
19968
19969unsafe impl InputChainStruct for VideoEncodeQualityLevelInfoKHR {
19970    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR;
19971
19972    #[inline]
19973    fn s_type(&self) -> StructureType {
19974        self.s_type
19975    }
19976
19977    #[inline]
19978    fn next(&self) -> *const c_void {
19979        self.next
19980    }
19981}
19982
19983unsafe impl InputChainStruct for VideoEncodeQualityLevelPropertiesKHR {
19984    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR;
19985
19986    #[inline]
19987    fn s_type(&self) -> StructureType {
19988        self.s_type
19989    }
19990
19991    #[inline]
19992    fn next(&self) -> *const c_void {
19993        self.next
19994    }
19995}
19996
19997unsafe impl OutputChainStruct for VideoEncodeQualityLevelPropertiesKHR {
19998    #[inline]
19999    fn next_mut(&self) -> *mut c_void {
20000        self.next
20001    }
20002}
20003
20004unsafe impl InputChainStruct for VideoEncodeQuantizationMapCapabilitiesKHR {
20005    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR;
20006
20007    #[inline]
20008    fn s_type(&self) -> StructureType {
20009        self.s_type
20010    }
20011
20012    #[inline]
20013    fn next(&self) -> *const c_void {
20014        self.next
20015    }
20016}
20017
20018unsafe impl OutputChainStruct for VideoEncodeQuantizationMapCapabilitiesKHR {
20019    #[inline]
20020    fn next_mut(&self) -> *mut c_void {
20021        self.next
20022    }
20023}
20024
20025unsafe impl InputChainStruct for VideoEncodeQuantizationMapInfoKHR {
20026    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR;
20027
20028    #[inline]
20029    fn s_type(&self) -> StructureType {
20030        self.s_type
20031    }
20032
20033    #[inline]
20034    fn next(&self) -> *const c_void {
20035        self.next
20036    }
20037}
20038
20039unsafe impl InputChainStruct for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
20040    const TYPE: StructureType =
20041        StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR;
20042
20043    #[inline]
20044    fn s_type(&self) -> StructureType {
20045        self.s_type
20046    }
20047
20048    #[inline]
20049    fn next(&self) -> *const c_void {
20050        self.next
20051    }
20052}
20053
20054unsafe impl InputChainStruct for VideoEncodeRateControlInfoKHR {
20055    const TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
20056
20057    #[inline]
20058    fn s_type(&self) -> StructureType {
20059        self.s_type
20060    }
20061
20062    #[inline]
20063    fn next(&self) -> *const c_void {
20064        self.next
20065    }
20066}
20067
20068unsafe impl InputChainStruct for VideoEncodeRateControlLayerInfoKHR {
20069    const TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR;
20070
20071    #[inline]
20072    fn s_type(&self) -> StructureType {
20073        self.s_type
20074    }
20075
20076    #[inline]
20077    fn next(&self) -> *const c_void {
20078        self.next
20079    }
20080}
20081
20082unsafe impl InputChainStruct for VideoEncodeRgbConversionCapabilitiesVALVE {
20083    const TYPE: StructureType = StructureType::VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE;
20084
20085    #[inline]
20086    fn s_type(&self) -> StructureType {
20087        self.s_type
20088    }
20089
20090    #[inline]
20091    fn next(&self) -> *const c_void {
20092        self.next
20093    }
20094}
20095
20096unsafe impl OutputChainStruct for VideoEncodeRgbConversionCapabilitiesVALVE {
20097    #[inline]
20098    fn next_mut(&self) -> *mut c_void {
20099        self.next
20100    }
20101}
20102
20103unsafe impl InputChainStruct for VideoEncodeSessionIntraRefreshCreateInfoKHR {
20104    const TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR;
20105
20106    #[inline]
20107    fn s_type(&self) -> StructureType {
20108        self.s_type
20109    }
20110
20111    #[inline]
20112    fn next(&self) -> *const c_void {
20113        self.next
20114    }
20115}
20116
20117unsafe impl InputChainStruct for VideoEncodeSessionParametersFeedbackInfoKHR {
20118    const TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
20119
20120    #[inline]
20121    fn s_type(&self) -> StructureType {
20122        self.s_type
20123    }
20124
20125    #[inline]
20126    fn next(&self) -> *const c_void {
20127        self.next
20128    }
20129}
20130
20131unsafe impl OutputChainStruct for VideoEncodeSessionParametersFeedbackInfoKHR {
20132    #[inline]
20133    fn next_mut(&self) -> *mut c_void {
20134        self.next
20135    }
20136}
20137
20138unsafe impl InputChainStruct for VideoEncodeSessionParametersGetInfoKHR {
20139    const TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR;
20140
20141    #[inline]
20142    fn s_type(&self) -> StructureType {
20143        self.s_type
20144    }
20145
20146    #[inline]
20147    fn next(&self) -> *const c_void {
20148        self.next
20149    }
20150}
20151
20152unsafe impl InputChainStruct for VideoEncodeSessionRgbConversionCreateInfoVALVE {
20153    const TYPE: StructureType =
20154        StructureType::VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE;
20155
20156    #[inline]
20157    fn s_type(&self) -> StructureType {
20158        self.s_type
20159    }
20160
20161    #[inline]
20162    fn next(&self) -> *const c_void {
20163        self.next
20164    }
20165}
20166
20167unsafe impl InputChainStruct for VideoEncodeUsageInfoKHR {
20168    const TYPE: StructureType = StructureType::VIDEO_ENCODE_USAGE_INFO_KHR;
20169
20170    #[inline]
20171    fn s_type(&self) -> StructureType {
20172        self.s_type
20173    }
20174
20175    #[inline]
20176    fn next(&self) -> *const c_void {
20177        self.next
20178    }
20179}
20180
20181unsafe impl InputChainStruct for VideoEndCodingInfoKHR {
20182    const TYPE: StructureType = StructureType::VIDEO_END_CODING_INFO_KHR;
20183
20184    #[inline]
20185    fn s_type(&self) -> StructureType {
20186        self.s_type
20187    }
20188
20189    #[inline]
20190    fn next(&self) -> *const c_void {
20191        self.next
20192    }
20193}
20194
20195unsafe impl InputChainStruct for VideoFormatAV1QuantizationMapPropertiesKHR {
20196    const TYPE: StructureType = StructureType::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR;
20197
20198    #[inline]
20199    fn s_type(&self) -> StructureType {
20200        self.s_type
20201    }
20202
20203    #[inline]
20204    fn next(&self) -> *const c_void {
20205        self.next
20206    }
20207}
20208
20209unsafe impl OutputChainStruct for VideoFormatAV1QuantizationMapPropertiesKHR {
20210    #[inline]
20211    fn next_mut(&self) -> *mut c_void {
20212        self.next
20213    }
20214}
20215
20216unsafe impl InputChainStruct for VideoFormatH265QuantizationMapPropertiesKHR {
20217    const TYPE: StructureType = StructureType::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR;
20218
20219    #[inline]
20220    fn s_type(&self) -> StructureType {
20221        self.s_type
20222    }
20223
20224    #[inline]
20225    fn next(&self) -> *const c_void {
20226        self.next
20227    }
20228}
20229
20230unsafe impl OutputChainStruct for VideoFormatH265QuantizationMapPropertiesKHR {
20231    #[inline]
20232    fn next_mut(&self) -> *mut c_void {
20233        self.next
20234    }
20235}
20236
20237unsafe impl InputChainStruct for VideoFormatPropertiesKHR {
20238    const TYPE: StructureType = StructureType::VIDEO_FORMAT_PROPERTIES_KHR;
20239
20240    #[inline]
20241    fn s_type(&self) -> StructureType {
20242        self.s_type
20243    }
20244
20245    #[inline]
20246    fn next(&self) -> *const c_void {
20247        self.next
20248    }
20249}
20250
20251unsafe impl OutputChainStruct for VideoFormatPropertiesKHR {
20252    #[inline]
20253    fn next_mut(&self) -> *mut c_void {
20254        self.next
20255    }
20256}
20257
20258unsafe impl InputChainStruct for VideoFormatQuantizationMapPropertiesKHR {
20259    const TYPE: StructureType = StructureType::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR;
20260
20261    #[inline]
20262    fn s_type(&self) -> StructureType {
20263        self.s_type
20264    }
20265
20266    #[inline]
20267    fn next(&self) -> *const c_void {
20268        self.next
20269    }
20270}
20271
20272unsafe impl OutputChainStruct for VideoFormatQuantizationMapPropertiesKHR {
20273    #[inline]
20274    fn next_mut(&self) -> *mut c_void {
20275        self.next
20276    }
20277}
20278
20279unsafe impl InputChainStruct for VideoInlineQueryInfoKHR {
20280    const TYPE: StructureType = StructureType::VIDEO_INLINE_QUERY_INFO_KHR;
20281
20282    #[inline]
20283    fn s_type(&self) -> StructureType {
20284        self.s_type
20285    }
20286
20287    #[inline]
20288    fn next(&self) -> *const c_void {
20289        self.next
20290    }
20291}
20292
20293unsafe impl InputChainStruct for VideoPictureResourceInfoKHR {
20294    const TYPE: StructureType = StructureType::VIDEO_PICTURE_RESOURCE_INFO_KHR;
20295
20296    #[inline]
20297    fn s_type(&self) -> StructureType {
20298        self.s_type
20299    }
20300
20301    #[inline]
20302    fn next(&self) -> *const c_void {
20303        self.next
20304    }
20305}
20306
20307unsafe impl InputChainStruct for VideoProfileInfoKHR {
20308    const TYPE: StructureType = StructureType::VIDEO_PROFILE_INFO_KHR;
20309
20310    #[inline]
20311    fn s_type(&self) -> StructureType {
20312        self.s_type
20313    }
20314
20315    #[inline]
20316    fn next(&self) -> *const c_void {
20317        self.next
20318    }
20319}
20320
20321unsafe impl InputChainStruct for VideoProfileListInfoKHR {
20322    const TYPE: StructureType = StructureType::VIDEO_PROFILE_LIST_INFO_KHR;
20323
20324    #[inline]
20325    fn s_type(&self) -> StructureType {
20326        self.s_type
20327    }
20328
20329    #[inline]
20330    fn next(&self) -> *const c_void {
20331        self.next
20332    }
20333}
20334
20335unsafe impl InputChainStruct for VideoReferenceIntraRefreshInfoKHR {
20336    const TYPE: StructureType = StructureType::VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR;
20337
20338    #[inline]
20339    fn s_type(&self) -> StructureType {
20340        self.s_type
20341    }
20342
20343    #[inline]
20344    fn next(&self) -> *const c_void {
20345        self.next
20346    }
20347}
20348
20349unsafe impl InputChainStruct for VideoReferenceSlotInfoKHR {
20350    const TYPE: StructureType = StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR;
20351
20352    #[inline]
20353    fn s_type(&self) -> StructureType {
20354        self.s_type
20355    }
20356
20357    #[inline]
20358    fn next(&self) -> *const c_void {
20359        self.next
20360    }
20361}
20362
20363unsafe impl InputChainStruct for VideoSessionCreateInfoKHR {
20364    const TYPE: StructureType = StructureType::VIDEO_SESSION_CREATE_INFO_KHR;
20365
20366    #[inline]
20367    fn s_type(&self) -> StructureType {
20368        self.s_type
20369    }
20370
20371    #[inline]
20372    fn next(&self) -> *const c_void {
20373        self.next
20374    }
20375}
20376
20377unsafe impl InputChainStruct for VideoSessionMemoryRequirementsKHR {
20378    const TYPE: StructureType = StructureType::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR;
20379
20380    #[inline]
20381    fn s_type(&self) -> StructureType {
20382        self.s_type
20383    }
20384
20385    #[inline]
20386    fn next(&self) -> *const c_void {
20387        self.next
20388    }
20389}
20390
20391unsafe impl OutputChainStruct for VideoSessionMemoryRequirementsKHR {
20392    #[inline]
20393    fn next_mut(&self) -> *mut c_void {
20394        self.next
20395    }
20396}
20397
20398unsafe impl InputChainStruct for VideoSessionParametersCreateInfoKHR {
20399    const TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
20400
20401    #[inline]
20402    fn s_type(&self) -> StructureType {
20403        self.s_type
20404    }
20405
20406    #[inline]
20407    fn next(&self) -> *const c_void {
20408        self.next
20409    }
20410}
20411
20412unsafe impl InputChainStruct for VideoSessionParametersUpdateInfoKHR {
20413    const TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
20414
20415    #[inline]
20416    fn s_type(&self) -> StructureType {
20417        self.s_type
20418    }
20419
20420    #[inline]
20421    fn next(&self) -> *const c_void {
20422        self.next
20423    }
20424}
20425
20426unsafe impl InputChainStruct for WaylandSurfaceCreateInfoKHR {
20427    const TYPE: StructureType = StructureType::WAYLAND_SURFACE_CREATE_INFO_KHR;
20428
20429    #[inline]
20430    fn s_type(&self) -> StructureType {
20431        self.s_type
20432    }
20433
20434    #[inline]
20435    fn next(&self) -> *const c_void {
20436        self.next
20437    }
20438}
20439
20440unsafe impl InputChainStruct for Win32KeyedMutexAcquireReleaseInfoKHR {
20441    const TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
20442
20443    #[inline]
20444    fn s_type(&self) -> StructureType {
20445        self.s_type
20446    }
20447
20448    #[inline]
20449    fn next(&self) -> *const c_void {
20450        self.next
20451    }
20452}
20453
20454unsafe impl InputChainStruct for Win32KeyedMutexAcquireReleaseInfoNV {
20455    const TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
20456
20457    #[inline]
20458    fn s_type(&self) -> StructureType {
20459        self.s_type
20460    }
20461
20462    #[inline]
20463    fn next(&self) -> *const c_void {
20464        self.next
20465    }
20466}
20467
20468unsafe impl InputChainStruct for Win32SurfaceCreateInfoKHR {
20469    const TYPE: StructureType = StructureType::WIN32_SURFACE_CREATE_INFO_KHR;
20470
20471    #[inline]
20472    fn s_type(&self) -> StructureType {
20473        self.s_type
20474    }
20475
20476    #[inline]
20477    fn next(&self) -> *const c_void {
20478        self.next
20479    }
20480}
20481
20482unsafe impl InputChainStruct for WriteDescriptorSet {
20483    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET;
20484
20485    #[inline]
20486    fn s_type(&self) -> StructureType {
20487        self.s_type
20488    }
20489
20490    #[inline]
20491    fn next(&self) -> *const c_void {
20492        self.next
20493    }
20494}
20495
20496unsafe impl InputChainStruct for WriteDescriptorSetAccelerationStructureKHR {
20497    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
20498
20499    #[inline]
20500    fn s_type(&self) -> StructureType {
20501        self.s_type
20502    }
20503
20504    #[inline]
20505    fn next(&self) -> *const c_void {
20506        self.next
20507    }
20508}
20509
20510unsafe impl InputChainStruct for WriteDescriptorSetAccelerationStructureNV {
20511    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
20512
20513    #[inline]
20514    fn s_type(&self) -> StructureType {
20515        self.s_type
20516    }
20517
20518    #[inline]
20519    fn next(&self) -> *const c_void {
20520        self.next
20521    }
20522}
20523
20524unsafe impl InputChainStruct for WriteDescriptorSetInlineUniformBlock {
20525    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
20526
20527    #[inline]
20528    fn s_type(&self) -> StructureType {
20529        self.s_type
20530    }
20531
20532    #[inline]
20533    fn next(&self) -> *const c_void {
20534        self.next
20535    }
20536}
20537
20538unsafe impl InputChainStruct for WriteDescriptorSetPartitionedAccelerationStructureNV {
20539    const TYPE: StructureType =
20540        StructureType::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV;
20541
20542    #[inline]
20543    fn s_type(&self) -> StructureType {
20544        self.s_type
20545    }
20546
20547    #[inline]
20548    fn next(&self) -> *const c_void {
20549        self.next
20550    }
20551}
20552
20553unsafe impl OutputChainStruct for WriteDescriptorSetPartitionedAccelerationStructureNV {
20554    #[inline]
20555    fn next_mut(&self) -> *mut c_void {
20556        self.next
20557    }
20558}
20559
20560unsafe impl InputChainStruct for WriteDescriptorSetTensorARM {
20561    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_TENSOR_ARM;
20562
20563    #[inline]
20564    fn s_type(&self) -> StructureType {
20565        self.s_type
20566    }
20567
20568    #[inline]
20569    fn next(&self) -> *const c_void {
20570        self.next
20571    }
20572}
20573
20574unsafe impl InputChainStruct for WriteIndirectExecutionSetPipelineEXT {
20575    const TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT;
20576
20577    #[inline]
20578    fn s_type(&self) -> StructureType {
20579        self.s_type
20580    }
20581
20582    #[inline]
20583    fn next(&self) -> *const c_void {
20584        self.next
20585    }
20586}
20587
20588unsafe impl InputChainStruct for WriteIndirectExecutionSetShaderEXT {
20589    const TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT;
20590
20591    #[inline]
20592    fn s_type(&self) -> StructureType {
20593        self.s_type
20594    }
20595
20596    #[inline]
20597    fn next(&self) -> *const c_void {
20598        self.next
20599    }
20600}
20601
20602unsafe impl InputChainStruct for XcbSurfaceCreateInfoKHR {
20603    const TYPE: StructureType = StructureType::XCB_SURFACE_CREATE_INFO_KHR;
20604
20605    #[inline]
20606    fn s_type(&self) -> StructureType {
20607        self.s_type
20608    }
20609
20610    #[inline]
20611    fn next(&self) -> *const c_void {
20612        self.next
20613    }
20614}
20615
20616unsafe impl InputChainStruct for XlibSurfaceCreateInfoKHR {
20617    const TYPE: StructureType = StructureType::XLIB_SURFACE_CREATE_INFO_KHR;
20618
20619    #[inline]
20620    fn s_type(&self) -> StructureType {
20621        self.s_type
20622    }
20623
20624    #[inline]
20625    fn next(&self) -> *const c_void {
20626        self.next
20627    }
20628}