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 BindImageMemoryDeviceGroupInfo {
781    const TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
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 BindImageMemoryInfo {
795    const TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_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 BindImageMemorySwapchainInfoKHR {
809    const TYPE: StructureType = StructureType::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
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 BindImagePlaneMemoryInfo {
823    const TYPE: StructureType = StructureType::BIND_IMAGE_PLANE_MEMORY_INFO;
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 BindMemoryStatus {
837    const TYPE: StructureType = StructureType::BIND_MEMORY_STATUS;
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 BindSparseInfo {
851    const TYPE: StructureType = StructureType::BIND_SPARSE_INFO;
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 BindTensorMemoryInfoARM {
865    const TYPE: StructureType = StructureType::BIND_TENSOR_MEMORY_INFO_ARM;
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 BindVideoSessionMemoryInfoKHR {
879    const TYPE: StructureType = StructureType::BIND_VIDEO_SESSION_MEMORY_INFO_KHR;
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 BlitImageCubicWeightsInfoQCOM {
893    const TYPE: StructureType = StructureType::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM;
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 BlitImageInfo2 {
907    const TYPE: StructureType = StructureType::BLIT_IMAGE_INFO_2;
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 BufferCaptureDescriptorDataInfoEXT {
921    const TYPE: StructureType = StructureType::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
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 BufferCollectionBufferCreateInfoFUCHSIA {
935    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA;
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 BufferCollectionConstraintsInfoFUCHSIA {
949    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_CONSTRAINTS_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 BufferCollectionCreateInfoFUCHSIA {
963    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_CREATE_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 BufferCollectionImageCreateInfoFUCHSIA {
977    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_IMAGE_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 BufferCollectionPropertiesFUCHSIA {
991    const TYPE: StructureType = StructureType::BUFFER_COLLECTION_PROPERTIES_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 OutputChainStruct for BufferCollectionPropertiesFUCHSIA {
1005    #[inline]
1006    fn next_mut(&self) -> *mut c_void {
1007        self.next
1008    }
1009}
1010
1011unsafe impl InputChainStruct for BufferConstraintsInfoFUCHSIA {
1012    const TYPE: StructureType = StructureType::BUFFER_CONSTRAINTS_INFO_FUCHSIA;
1013
1014    #[inline]
1015    fn s_type(&self) -> StructureType {
1016        self.s_type
1017    }
1018
1019    #[inline]
1020    fn next(&self) -> *const c_void {
1021        self.next
1022    }
1023}
1024
1025unsafe impl InputChainStruct for BufferCopy2 {
1026    const TYPE: StructureType = StructureType::BUFFER_COPY_2;
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 BufferCreateInfo {
1040    const TYPE: StructureType = StructureType::BUFFER_CREATE_INFO;
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 BufferDeviceAddressCreateInfoEXT {
1054    const TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
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 BufferDeviceAddressInfo {
1068    const TYPE: StructureType = StructureType::BUFFER_DEVICE_ADDRESS_INFO;
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 BufferImageCopy2 {
1082    const TYPE: StructureType = StructureType::BUFFER_IMAGE_COPY_2;
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 BufferMemoryBarrier {
1096    const TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER;
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 BufferMemoryBarrier2 {
1110    const TYPE: StructureType = StructureType::BUFFER_MEMORY_BARRIER_2;
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 BufferMemoryRequirementsInfo2 {
1124    const TYPE: StructureType = StructureType::BUFFER_MEMORY_REQUIREMENTS_INFO_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 BufferOpaqueCaptureAddressCreateInfo {
1138    const TYPE: StructureType = StructureType::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
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 BufferUsageFlags2CreateInfo {
1152    const TYPE: StructureType = StructureType::BUFFER_USAGE_FLAGS_2_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 BufferViewCreateInfo {
1166    const TYPE: StructureType = StructureType::BUFFER_VIEW_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 BuildPartitionedAccelerationStructureInfoNV {
1180    const TYPE: StructureType = StructureType::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV;
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 OutputChainStruct for BuildPartitionedAccelerationStructureInfoNV {
1194    #[inline]
1195    fn next_mut(&self) -> *mut c_void {
1196        self.next
1197    }
1198}
1199
1200unsafe impl InputChainStruct for CalibratedTimestampInfoKHR {
1201    const TYPE: StructureType = StructureType::CALIBRATED_TIMESTAMP_INFO_KHR;
1202
1203    #[inline]
1204    fn s_type(&self) -> StructureType {
1205        self.s_type
1206    }
1207
1208    #[inline]
1209    fn next(&self) -> *const c_void {
1210        self.next
1211    }
1212}
1213
1214unsafe impl InputChainStruct for CheckpointData2NV {
1215    const TYPE: StructureType = StructureType::CHECKPOINT_DATA_2_NV;
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 OutputChainStruct for CheckpointData2NV {
1229    #[inline]
1230    fn next_mut(&self) -> *mut c_void {
1231        self.next
1232    }
1233}
1234
1235unsafe impl InputChainStruct for CheckpointDataNV {
1236    const TYPE: StructureType = StructureType::CHECKPOINT_DATA_NV;
1237
1238    #[inline]
1239    fn s_type(&self) -> StructureType {
1240        self.s_type
1241    }
1242
1243    #[inline]
1244    fn next(&self) -> *const c_void {
1245        self.next
1246    }
1247}
1248
1249unsafe impl OutputChainStruct for CheckpointDataNV {
1250    #[inline]
1251    fn next_mut(&self) -> *mut c_void {
1252        self.next
1253    }
1254}
1255
1256unsafe impl InputChainStruct for ClusterAccelerationStructureClustersBottomLevelInputNV {
1257    const TYPE: StructureType =
1258        StructureType::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV;
1259
1260    #[inline]
1261    fn s_type(&self) -> StructureType {
1262        self.s_type
1263    }
1264
1265    #[inline]
1266    fn next(&self) -> *const c_void {
1267        self.next
1268    }
1269}
1270
1271unsafe impl OutputChainStruct for ClusterAccelerationStructureClustersBottomLevelInputNV {
1272    #[inline]
1273    fn next_mut(&self) -> *mut c_void {
1274        self.next
1275    }
1276}
1277
1278unsafe impl InputChainStruct for ClusterAccelerationStructureCommandsInfoNV {
1279    const TYPE: StructureType = StructureType::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV;
1280
1281    #[inline]
1282    fn s_type(&self) -> StructureType {
1283        self.s_type
1284    }
1285
1286    #[inline]
1287    fn next(&self) -> *const c_void {
1288        self.next
1289    }
1290}
1291
1292unsafe impl OutputChainStruct for ClusterAccelerationStructureCommandsInfoNV {
1293    #[inline]
1294    fn next_mut(&self) -> *mut c_void {
1295        self.next
1296    }
1297}
1298
1299unsafe impl InputChainStruct for ClusterAccelerationStructureInputInfoNV {
1300    const TYPE: StructureType = StructureType::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV;
1301
1302    #[inline]
1303    fn s_type(&self) -> StructureType {
1304        self.s_type
1305    }
1306
1307    #[inline]
1308    fn next(&self) -> *const c_void {
1309        self.next
1310    }
1311}
1312
1313unsafe impl OutputChainStruct for ClusterAccelerationStructureInputInfoNV {
1314    #[inline]
1315    fn next_mut(&self) -> *mut c_void {
1316        self.next
1317    }
1318}
1319
1320unsafe impl InputChainStruct for ClusterAccelerationStructureMoveObjectsInputNV {
1321    const TYPE: StructureType = StructureType::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV;
1322
1323    #[inline]
1324    fn s_type(&self) -> StructureType {
1325        self.s_type
1326    }
1327
1328    #[inline]
1329    fn next(&self) -> *const c_void {
1330        self.next
1331    }
1332}
1333
1334unsafe impl OutputChainStruct for ClusterAccelerationStructureMoveObjectsInputNV {
1335    #[inline]
1336    fn next_mut(&self) -> *mut c_void {
1337        self.next
1338    }
1339}
1340
1341unsafe impl InputChainStruct for ClusterAccelerationStructureTriangleClusterInputNV {
1342    const TYPE: StructureType =
1343        StructureType::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV;
1344
1345    #[inline]
1346    fn s_type(&self) -> StructureType {
1347        self.s_type
1348    }
1349
1350    #[inline]
1351    fn next(&self) -> *const c_void {
1352        self.next
1353    }
1354}
1355
1356unsafe impl OutputChainStruct for ClusterAccelerationStructureTriangleClusterInputNV {
1357    #[inline]
1358    fn next_mut(&self) -> *mut c_void {
1359        self.next
1360    }
1361}
1362
1363unsafe impl InputChainStruct for CommandBufferAllocateInfo {
1364    const TYPE: StructureType = StructureType::COMMAND_BUFFER_ALLOCATE_INFO;
1365
1366    #[inline]
1367    fn s_type(&self) -> StructureType {
1368        self.s_type
1369    }
1370
1371    #[inline]
1372    fn next(&self) -> *const c_void {
1373        self.next
1374    }
1375}
1376
1377unsafe impl InputChainStruct for CommandBufferBeginInfo {
1378    const TYPE: StructureType = StructureType::COMMAND_BUFFER_BEGIN_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 CommandBufferInheritanceConditionalRenderingInfoEXT {
1392    const TYPE: StructureType =
1393        StructureType::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
1394
1395    #[inline]
1396    fn s_type(&self) -> StructureType {
1397        self.s_type
1398    }
1399
1400    #[inline]
1401    fn next(&self) -> *const c_void {
1402        self.next
1403    }
1404}
1405
1406unsafe impl InputChainStruct for CommandBufferInheritanceInfo {
1407    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_INFO;
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 CommandBufferInheritanceRenderPassTransformInfoQCOM {
1421    const TYPE: StructureType =
1422        StructureType::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
1423
1424    #[inline]
1425    fn s_type(&self) -> StructureType {
1426        self.s_type
1427    }
1428
1429    #[inline]
1430    fn next(&self) -> *const c_void {
1431        self.next
1432    }
1433}
1434
1435unsafe impl InputChainStruct for CommandBufferInheritanceRenderingInfo {
1436    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
1437
1438    #[inline]
1439    fn s_type(&self) -> StructureType {
1440        self.s_type
1441    }
1442
1443    #[inline]
1444    fn next(&self) -> *const c_void {
1445        self.next
1446    }
1447}
1448
1449unsafe impl InputChainStruct for CommandBufferInheritanceViewportScissorInfoNV {
1450    const TYPE: StructureType = StructureType::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
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 CommandBufferSubmitInfo {
1464    const TYPE: StructureType = StructureType::COMMAND_BUFFER_SUBMIT_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 CommandPoolCreateInfo {
1478    const TYPE: StructureType = StructureType::COMMAND_POOL_CREATE_INFO;
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 ComputeOccupancyPriorityParametersNV {
1492    const TYPE: StructureType = StructureType::COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV;
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 ComputePipelineCreateInfo {
1506    const TYPE: StructureType = StructureType::COMPUTE_PIPELINE_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 ComputePipelineIndirectBufferInfoNV {
1520    const TYPE: StructureType = StructureType::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_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 ConditionalRenderingBeginInfoEXT {
1534    const TYPE: StructureType = StructureType::CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
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 ConvertCooperativeVectorMatrixInfoNV {
1548    const TYPE: StructureType = StructureType::CONVERT_COOPERATIVE_VECTOR_MATRIX_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 CooperativeMatrixFlexibleDimensionsPropertiesNV {
1562    const TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV;
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 OutputChainStruct for CooperativeMatrixFlexibleDimensionsPropertiesNV {
1576    #[inline]
1577    fn next_mut(&self) -> *mut c_void {
1578        self.next
1579    }
1580}
1581
1582unsafe impl InputChainStruct for CooperativeMatrixPropertiesKHR {
1583    const TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_KHR;
1584
1585    #[inline]
1586    fn s_type(&self) -> StructureType {
1587        self.s_type
1588    }
1589
1590    #[inline]
1591    fn next(&self) -> *const c_void {
1592        self.next
1593    }
1594}
1595
1596unsafe impl OutputChainStruct for CooperativeMatrixPropertiesKHR {
1597    #[inline]
1598    fn next_mut(&self) -> *mut c_void {
1599        self.next
1600    }
1601}
1602
1603unsafe impl InputChainStruct for CooperativeMatrixPropertiesNV {
1604    const TYPE: StructureType = StructureType::COOPERATIVE_MATRIX_PROPERTIES_NV;
1605
1606    #[inline]
1607    fn s_type(&self) -> StructureType {
1608        self.s_type
1609    }
1610
1611    #[inline]
1612    fn next(&self) -> *const c_void {
1613        self.next
1614    }
1615}
1616
1617unsafe impl OutputChainStruct for CooperativeMatrixPropertiesNV {
1618    #[inline]
1619    fn next_mut(&self) -> *mut c_void {
1620        self.next
1621    }
1622}
1623
1624unsafe impl InputChainStruct for CooperativeVectorPropertiesNV {
1625    const TYPE: StructureType = StructureType::COOPERATIVE_VECTOR_PROPERTIES_NV;
1626
1627    #[inline]
1628    fn s_type(&self) -> StructureType {
1629        self.s_type
1630    }
1631
1632    #[inline]
1633    fn next(&self) -> *const c_void {
1634        self.next
1635    }
1636}
1637
1638unsafe impl OutputChainStruct for CooperativeVectorPropertiesNV {
1639    #[inline]
1640    fn next_mut(&self) -> *mut c_void {
1641        self.next
1642    }
1643}
1644
1645unsafe impl InputChainStruct for CopyAccelerationStructureInfoKHR {
1646    const TYPE: StructureType = StructureType::COPY_ACCELERATION_STRUCTURE_INFO_KHR;
1647
1648    #[inline]
1649    fn s_type(&self) -> StructureType {
1650        self.s_type
1651    }
1652
1653    #[inline]
1654    fn next(&self) -> *const c_void {
1655        self.next
1656    }
1657}
1658
1659unsafe impl InputChainStruct for CopyAccelerationStructureToMemoryInfoKHR {
1660    const TYPE: StructureType = StructureType::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
1661
1662    #[inline]
1663    fn s_type(&self) -> StructureType {
1664        self.s_type
1665    }
1666
1667    #[inline]
1668    fn next(&self) -> *const c_void {
1669        self.next
1670    }
1671}
1672
1673unsafe impl InputChainStruct for CopyBufferInfo2 {
1674    const TYPE: StructureType = StructureType::COPY_BUFFER_INFO_2;
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 CopyBufferToImageInfo2 {
1688    const TYPE: StructureType = StructureType::COPY_BUFFER_TO_IMAGE_INFO_2;
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 CopyCommandTransformInfoQCOM {
1702    const TYPE: StructureType = StructureType::COPY_COMMAND_TRANSFORM_INFO_QCOM;
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 CopyDescriptorSet {
1716    const TYPE: StructureType = StructureType::COPY_DESCRIPTOR_SET;
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 CopyImageInfo2 {
1730    const TYPE: StructureType = StructureType::COPY_IMAGE_INFO_2;
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 CopyImageToBufferInfo2 {
1744    const TYPE: StructureType = StructureType::COPY_IMAGE_TO_BUFFER_INFO_2;
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 CopyImageToImageInfo {
1758    const TYPE: StructureType = StructureType::COPY_IMAGE_TO_IMAGE_INFO;
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 CopyImageToMemoryInfo {
1772    const TYPE: StructureType = StructureType::COPY_IMAGE_TO_MEMORY_INFO;
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 CopyMemoryIndirectInfoKHR {
1786    const TYPE: StructureType = StructureType::COPY_MEMORY_INDIRECT_INFO_KHR;
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 CopyMemoryToAccelerationStructureInfoKHR {
1800    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
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 CopyMemoryToImageIndirectInfoKHR {
1814    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_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 CopyMemoryToImageInfo {
1828    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_IMAGE_INFO;
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 CopyMemoryToMicromapInfoEXT {
1842    const TYPE: StructureType = StructureType::COPY_MEMORY_TO_MICROMAP_INFO_EXT;
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 CopyMicromapInfoEXT {
1856    const TYPE: StructureType = StructureType::COPY_MICROMAP_INFO_EXT;
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 CopyMicromapToMemoryInfoEXT {
1870    const TYPE: StructureType = StructureType::COPY_MICROMAP_TO_MEMORY_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 CopyTensorInfoARM {
1884    const TYPE: StructureType = StructureType::COPY_TENSOR_INFO_ARM;
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 CuFunctionCreateInfoNVX {
1898    const TYPE: StructureType = StructureType::CU_FUNCTION_CREATE_INFO_NVX;
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 CuLaunchInfoNVX {
1912    const TYPE: StructureType = StructureType::CU_LAUNCH_INFO_NVX;
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 CuModuleCreateInfoNVX {
1926    const TYPE: StructureType = StructureType::CU_MODULE_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 CuModuleTexturingModeCreateInfoNVX {
1940    const TYPE: StructureType = StructureType::CU_MODULE_TEXTURING_MODE_CREATE_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 CudaFunctionCreateInfoNV {
1954    const TYPE: StructureType = StructureType::CUDA_FUNCTION_CREATE_INFO_NV;
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 CudaLaunchInfoNV {
1968    const TYPE: StructureType = StructureType::CUDA_LAUNCH_INFO_NV;
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 CudaModuleCreateInfoNV {
1982    const TYPE: StructureType = StructureType::CUDA_MODULE_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 CustomResolveCreateInfoEXT {
1996    const TYPE: StructureType = StructureType::CUSTOM_RESOLVE_CREATE_INFO_EXT;
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 D3D12FenceSubmitInfoKHR {
2010    const TYPE: StructureType = StructureType::D3D12_FENCE_SUBMIT_INFO_KHR;
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 DataGraphPipelineBuiltinModelCreateInfoQCOM {
2024    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM;
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 DataGraphPipelineCompilerControlCreateInfoARM {
2038    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM;
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 DataGraphPipelineConstantARM {
2052    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_CONSTANT_ARM;
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 DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
2066    const TYPE: StructureType =
2067        StructureType::DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM;
2068
2069    #[inline]
2070    fn s_type(&self) -> StructureType {
2071        self.s_type
2072    }
2073
2074    #[inline]
2075    fn next(&self) -> *const c_void {
2076        self.next
2077    }
2078}
2079
2080unsafe impl InputChainStruct for DataGraphPipelineCreateInfoARM {
2081    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_CREATE_INFO_ARM;
2082
2083    #[inline]
2084    fn s_type(&self) -> StructureType {
2085        self.s_type
2086    }
2087
2088    #[inline]
2089    fn next(&self) -> *const c_void {
2090        self.next
2091    }
2092}
2093
2094unsafe impl InputChainStruct for DataGraphPipelineDispatchInfoARM {
2095    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_DISPATCH_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 OutputChainStruct for DataGraphPipelineDispatchInfoARM {
2109    #[inline]
2110    fn next_mut(&self) -> *mut c_void {
2111        self.next
2112    }
2113}
2114
2115unsafe impl InputChainStruct for DataGraphPipelineIdentifierCreateInfoARM {
2116    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM;
2117
2118    #[inline]
2119    fn s_type(&self) -> StructureType {
2120        self.s_type
2121    }
2122
2123    #[inline]
2124    fn next(&self) -> *const c_void {
2125        self.next
2126    }
2127}
2128
2129unsafe impl InputChainStruct for DataGraphPipelineInfoARM {
2130    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_INFO_ARM;
2131
2132    #[inline]
2133    fn s_type(&self) -> StructureType {
2134        self.s_type
2135    }
2136
2137    #[inline]
2138    fn next(&self) -> *const c_void {
2139        self.next
2140    }
2141}
2142
2143unsafe impl InputChainStruct for DataGraphPipelinePropertyQueryResultARM {
2144    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_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 DataGraphPipelineResourceInfoARM {
2158    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_RESOURCE_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 DataGraphPipelineSessionBindPointRequirementARM {
2172    const TYPE: StructureType =
2173        StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM;
2174
2175    #[inline]
2176    fn s_type(&self) -> StructureType {
2177        self.s_type
2178    }
2179
2180    #[inline]
2181    fn next(&self) -> *const c_void {
2182        self.next
2183    }
2184}
2185
2186unsafe impl InputChainStruct for DataGraphPipelineSessionBindPointRequirementsInfoARM {
2187    const TYPE: StructureType =
2188        StructureType::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM;
2189
2190    #[inline]
2191    fn s_type(&self) -> StructureType {
2192        self.s_type
2193    }
2194
2195    #[inline]
2196    fn next(&self) -> *const c_void {
2197        self.next
2198    }
2199}
2200
2201unsafe impl InputChainStruct for DataGraphPipelineSessionCreateInfoARM {
2202    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM;
2203
2204    #[inline]
2205    fn s_type(&self) -> StructureType {
2206        self.s_type
2207    }
2208
2209    #[inline]
2210    fn next(&self) -> *const c_void {
2211        self.next
2212    }
2213}
2214
2215unsafe impl InputChainStruct for DataGraphPipelineSessionMemoryRequirementsInfoARM {
2216    const TYPE: StructureType =
2217        StructureType::DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM;
2218
2219    #[inline]
2220    fn s_type(&self) -> StructureType {
2221        self.s_type
2222    }
2223
2224    #[inline]
2225    fn next(&self) -> *const c_void {
2226        self.next
2227    }
2228}
2229
2230unsafe impl InputChainStruct for DataGraphPipelineShaderModuleCreateInfoARM {
2231    const TYPE: StructureType = StructureType::DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM;
2232
2233    #[inline]
2234    fn s_type(&self) -> StructureType {
2235        self.s_type
2236    }
2237
2238    #[inline]
2239    fn next(&self) -> *const c_void {
2240        self.next
2241    }
2242}
2243
2244unsafe impl InputChainStruct for DataGraphProcessingEngineCreateInfoARM {
2245    const TYPE: StructureType = StructureType::DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM;
2246
2247    #[inline]
2248    fn s_type(&self) -> StructureType {
2249        self.s_type
2250    }
2251
2252    #[inline]
2253    fn next(&self) -> *const c_void {
2254        self.next
2255    }
2256}
2257
2258unsafe impl InputChainStruct for DebugMarkerMarkerInfoEXT {
2259    const TYPE: StructureType = StructureType::DEBUG_MARKER_MARKER_INFO_EXT;
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 DebugMarkerObjectNameInfoEXT {
2273    const TYPE: StructureType = StructureType::DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
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 DebugMarkerObjectTagInfoEXT {
2287    const TYPE: StructureType = StructureType::DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
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 DebugReportCallbackCreateInfoEXT {
2301    const TYPE: StructureType = StructureType::DEBUG_REPORT_CALLBACK_CREATE_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 DebugUtilsLabelEXT {
2315    const TYPE: StructureType = StructureType::DEBUG_UTILS_LABEL_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 DebugUtilsMessengerCallbackDataEXT {
2329    const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_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 DebugUtilsMessengerCreateInfoEXT {
2343    const TYPE: StructureType = StructureType::DEBUG_UTILS_MESSENGER_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 DebugUtilsObjectNameInfoEXT {
2357    const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_NAME_INFO_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 DebugUtilsObjectTagInfoEXT {
2371    const TYPE: StructureType = StructureType::DEBUG_UTILS_OBJECT_TAG_INFO_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 DecompressMemoryInfoEXT {
2385    const TYPE: StructureType = StructureType::DECOMPRESS_MEMORY_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 DedicatedAllocationBufferCreateInfoNV {
2399    const TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
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 DedicatedAllocationImageCreateInfoNV {
2413    const TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
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 DedicatedAllocationMemoryAllocateInfoNV {
2427    const TYPE: StructureType = StructureType::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
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 DependencyInfo {
2441    const TYPE: StructureType = StructureType::DEPENDENCY_INFO;
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 DepthBiasInfoEXT {
2455    const TYPE: StructureType = StructureType::DEPTH_BIAS_INFO_EXT;
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 DepthBiasRepresentationInfoEXT {
2469    const TYPE: StructureType = StructureType::DEPTH_BIAS_REPRESENTATION_INFO_EXT;
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 DescriptorAddressInfoEXT {
2483    const TYPE: StructureType = StructureType::DESCRIPTOR_ADDRESS_INFO_EXT;
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 OutputChainStruct for DescriptorAddressInfoEXT {
2497    #[inline]
2498    fn next_mut(&self) -> *mut c_void {
2499        self.next
2500    }
2501}
2502
2503unsafe impl InputChainStruct for DescriptorBufferBindingInfoEXT {
2504    const TYPE: StructureType = StructureType::DESCRIPTOR_BUFFER_BINDING_INFO_EXT;
2505
2506    #[inline]
2507    fn s_type(&self) -> StructureType {
2508        self.s_type
2509    }
2510
2511    #[inline]
2512    fn next(&self) -> *const c_void {
2513        self.next
2514    }
2515}
2516
2517unsafe impl InputChainStruct for DescriptorBufferBindingPushDescriptorBufferHandleEXT {
2518    const TYPE: StructureType =
2519        StructureType::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT;
2520
2521    #[inline]
2522    fn s_type(&self) -> StructureType {
2523        self.s_type
2524    }
2525
2526    #[inline]
2527    fn next(&self) -> *const c_void {
2528        self.next
2529    }
2530}
2531
2532unsafe impl InputChainStruct for DescriptorGetInfoEXT {
2533    const TYPE: StructureType = StructureType::DESCRIPTOR_GET_INFO_EXT;
2534
2535    #[inline]
2536    fn s_type(&self) -> StructureType {
2537        self.s_type
2538    }
2539
2540    #[inline]
2541    fn next(&self) -> *const c_void {
2542        self.next
2543    }
2544}
2545
2546unsafe impl InputChainStruct for DescriptorGetTensorInfoARM {
2547    const TYPE: StructureType = StructureType::DESCRIPTOR_GET_TENSOR_INFO_ARM;
2548
2549    #[inline]
2550    fn s_type(&self) -> StructureType {
2551        self.s_type
2552    }
2553
2554    #[inline]
2555    fn next(&self) -> *const c_void {
2556        self.next
2557    }
2558}
2559
2560unsafe impl InputChainStruct for DescriptorPoolCreateInfo {
2561    const TYPE: StructureType = StructureType::DESCRIPTOR_POOL_CREATE_INFO;
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 DescriptorPoolInlineUniformBlockCreateInfo {
2575    const TYPE: StructureType = StructureType::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
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 DescriptorSetAllocateInfo {
2589    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_ALLOCATE_INFO;
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 DescriptorSetBindingReferenceVALVE {
2603    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE;
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 DescriptorSetLayoutBindingFlagsCreateInfo {
2617    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_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 DescriptorSetLayoutCreateInfo {
2631    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_CREATE_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 DescriptorSetLayoutHostMappingInfoVALVE {
2645    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE;
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 OutputChainStruct for DescriptorSetLayoutHostMappingInfoVALVE {
2659    #[inline]
2660    fn next_mut(&self) -> *mut c_void {
2661        self.next
2662    }
2663}
2664
2665unsafe impl InputChainStruct for DescriptorSetLayoutSupport {
2666    const TYPE: StructureType = StructureType::DESCRIPTOR_SET_LAYOUT_SUPPORT;
2667
2668    #[inline]
2669    fn s_type(&self) -> StructureType {
2670        self.s_type
2671    }
2672
2673    #[inline]
2674    fn next(&self) -> *const c_void {
2675        self.next
2676    }
2677}
2678
2679unsafe impl OutputChainStruct for DescriptorSetLayoutSupport {
2680    #[inline]
2681    fn next_mut(&self) -> *mut c_void {
2682        self.next
2683    }
2684}
2685
2686unsafe impl InputChainStruct for DescriptorSetVariableDescriptorCountAllocateInfo {
2687    const TYPE: StructureType =
2688        StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
2689
2690    #[inline]
2691    fn s_type(&self) -> StructureType {
2692        self.s_type
2693    }
2694
2695    #[inline]
2696    fn next(&self) -> *const c_void {
2697        self.next
2698    }
2699}
2700
2701unsafe impl InputChainStruct for DescriptorSetVariableDescriptorCountLayoutSupport {
2702    const TYPE: StructureType =
2703        StructureType::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
2704
2705    #[inline]
2706    fn s_type(&self) -> StructureType {
2707        self.s_type
2708    }
2709
2710    #[inline]
2711    fn next(&self) -> *const c_void {
2712        self.next
2713    }
2714}
2715
2716unsafe impl OutputChainStruct for DescriptorSetVariableDescriptorCountLayoutSupport {
2717    #[inline]
2718    fn next_mut(&self) -> *mut c_void {
2719        self.next
2720    }
2721}
2722
2723unsafe impl InputChainStruct for DescriptorUpdateTemplateCreateInfo {
2724    const TYPE: StructureType = StructureType::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
2725
2726    #[inline]
2727    fn s_type(&self) -> StructureType {
2728        self.s_type
2729    }
2730
2731    #[inline]
2732    fn next(&self) -> *const c_void {
2733        self.next
2734    }
2735}
2736
2737unsafe impl InputChainStruct for DeviceAddressBindingCallbackDataEXT {
2738    const TYPE: StructureType = StructureType::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT;
2739
2740    #[inline]
2741    fn s_type(&self) -> StructureType {
2742        self.s_type
2743    }
2744
2745    #[inline]
2746    fn next(&self) -> *const c_void {
2747        self.next
2748    }
2749}
2750
2751unsafe impl OutputChainStruct for DeviceAddressBindingCallbackDataEXT {
2752    #[inline]
2753    fn next_mut(&self) -> *mut c_void {
2754        self.next
2755    }
2756}
2757
2758unsafe impl InputChainStruct for DeviceBufferMemoryRequirements {
2759    const TYPE: StructureType = StructureType::DEVICE_BUFFER_MEMORY_REQUIREMENTS;
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 InputChainStruct for DeviceCreateInfo {
2773    const TYPE: StructureType = StructureType::DEVICE_CREATE_INFO;
2774
2775    #[inline]
2776    fn s_type(&self) -> StructureType {
2777        self.s_type
2778    }
2779
2780    #[inline]
2781    fn next(&self) -> *const c_void {
2782        self.next
2783    }
2784}
2785
2786unsafe impl InputChainStruct for DeviceDeviceMemoryReportCreateInfoEXT {
2787    const TYPE: StructureType = StructureType::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
2788
2789    #[inline]
2790    fn s_type(&self) -> StructureType {
2791        self.s_type
2792    }
2793
2794    #[inline]
2795    fn next(&self) -> *const c_void {
2796        self.next
2797    }
2798}
2799
2800unsafe impl InputChainStruct for DeviceDiagnosticsConfigCreateInfoNV {
2801    const TYPE: StructureType = StructureType::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
2802
2803    #[inline]
2804    fn s_type(&self) -> StructureType {
2805        self.s_type
2806    }
2807
2808    #[inline]
2809    fn next(&self) -> *const c_void {
2810        self.next
2811    }
2812}
2813
2814unsafe impl InputChainStruct for DeviceEventInfoEXT {
2815    const TYPE: StructureType = StructureType::DEVICE_EVENT_INFO_EXT;
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 DeviceFaultCountsEXT {
2829    const TYPE: StructureType = StructureType::DEVICE_FAULT_COUNTS_EXT;
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 OutputChainStruct for DeviceFaultCountsEXT {
2843    #[inline]
2844    fn next_mut(&self) -> *mut c_void {
2845        self.next
2846    }
2847}
2848
2849unsafe impl InputChainStruct for DeviceFaultInfoEXT {
2850    const TYPE: StructureType = StructureType::DEVICE_FAULT_INFO_EXT;
2851
2852    #[inline]
2853    fn s_type(&self) -> StructureType {
2854        self.s_type
2855    }
2856
2857    #[inline]
2858    fn next(&self) -> *const c_void {
2859        self.next
2860    }
2861}
2862
2863unsafe impl OutputChainStruct for DeviceFaultInfoEXT {
2864    #[inline]
2865    fn next_mut(&self) -> *mut c_void {
2866        self.next
2867    }
2868}
2869
2870unsafe impl InputChainStruct for DeviceGroupBindSparseInfo {
2871    const TYPE: StructureType = StructureType::DEVICE_GROUP_BIND_SPARSE_INFO;
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 DeviceGroupCommandBufferBeginInfo {
2885    const TYPE: StructureType = StructureType::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
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 InputChainStruct for DeviceGroupDeviceCreateInfo {
2899    const TYPE: StructureType = StructureType::DEVICE_GROUP_DEVICE_CREATE_INFO;
2900
2901    #[inline]
2902    fn s_type(&self) -> StructureType {
2903        self.s_type
2904    }
2905
2906    #[inline]
2907    fn next(&self) -> *const c_void {
2908        self.next
2909    }
2910}
2911
2912unsafe impl InputChainStruct for DeviceGroupPresentCapabilitiesKHR {
2913    const TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
2914
2915    #[inline]
2916    fn s_type(&self) -> StructureType {
2917        self.s_type
2918    }
2919
2920    #[inline]
2921    fn next(&self) -> *const c_void {
2922        self.next
2923    }
2924}
2925
2926unsafe impl OutputChainStruct for DeviceGroupPresentCapabilitiesKHR {
2927    #[inline]
2928    fn next_mut(&self) -> *mut c_void {
2929        self.next
2930    }
2931}
2932
2933unsafe impl InputChainStruct for DeviceGroupPresentInfoKHR {
2934    const TYPE: StructureType = StructureType::DEVICE_GROUP_PRESENT_INFO_KHR;
2935
2936    #[inline]
2937    fn s_type(&self) -> StructureType {
2938        self.s_type
2939    }
2940
2941    #[inline]
2942    fn next(&self) -> *const c_void {
2943        self.next
2944    }
2945}
2946
2947unsafe impl InputChainStruct for DeviceGroupRenderPassBeginInfo {
2948    const TYPE: StructureType = StructureType::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
2949
2950    #[inline]
2951    fn s_type(&self) -> StructureType {
2952        self.s_type
2953    }
2954
2955    #[inline]
2956    fn next(&self) -> *const c_void {
2957        self.next
2958    }
2959}
2960
2961unsafe impl InputChainStruct for DeviceGroupSubmitInfo {
2962    const TYPE: StructureType = StructureType::DEVICE_GROUP_SUBMIT_INFO;
2963
2964    #[inline]
2965    fn s_type(&self) -> StructureType {
2966        self.s_type
2967    }
2968
2969    #[inline]
2970    fn next(&self) -> *const c_void {
2971        self.next
2972    }
2973}
2974
2975unsafe impl InputChainStruct for DeviceGroupSwapchainCreateInfoKHR {
2976    const TYPE: StructureType = StructureType::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
2977
2978    #[inline]
2979    fn s_type(&self) -> StructureType {
2980        self.s_type
2981    }
2982
2983    #[inline]
2984    fn next(&self) -> *const c_void {
2985        self.next
2986    }
2987}
2988
2989unsafe impl InputChainStruct for DeviceImageMemoryRequirements {
2990    const TYPE: StructureType = StructureType::DEVICE_IMAGE_MEMORY_REQUIREMENTS;
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 DeviceImageSubresourceInfo {
3004    const TYPE: StructureType = StructureType::DEVICE_IMAGE_SUBRESOURCE_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 DeviceMemoryOpaqueCaptureAddressInfo {
3018    const TYPE: StructureType = StructureType::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_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 DeviceMemoryOverallocationCreateInfoAMD {
3032    const TYPE: StructureType = StructureType::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
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 DeviceMemoryReportCallbackDataEXT {
3046    const TYPE: StructureType = StructureType::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
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 OutputChainStruct for DeviceMemoryReportCallbackDataEXT {
3060    #[inline]
3061    fn next_mut(&self) -> *mut c_void {
3062        self.next
3063    }
3064}
3065
3066unsafe impl InputChainStruct for DevicePipelineBinaryInternalCacheControlKHR {
3067    const TYPE: StructureType = StructureType::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR;
3068
3069    #[inline]
3070    fn s_type(&self) -> StructureType {
3071        self.s_type
3072    }
3073
3074    #[inline]
3075    fn next(&self) -> *const c_void {
3076        self.next
3077    }
3078}
3079
3080unsafe impl InputChainStruct for DevicePrivateDataCreateInfo {
3081    const TYPE: StructureType = StructureType::DEVICE_PRIVATE_DATA_CREATE_INFO;
3082
3083    #[inline]
3084    fn s_type(&self) -> StructureType {
3085        self.s_type
3086    }
3087
3088    #[inline]
3089    fn next(&self) -> *const c_void {
3090        self.next
3091    }
3092}
3093
3094unsafe impl InputChainStruct for DeviceQueueCreateInfo {
3095    const TYPE: StructureType = StructureType::DEVICE_QUEUE_CREATE_INFO;
3096
3097    #[inline]
3098    fn s_type(&self) -> StructureType {
3099        self.s_type
3100    }
3101
3102    #[inline]
3103    fn next(&self) -> *const c_void {
3104        self.next
3105    }
3106}
3107
3108unsafe impl InputChainStruct for DeviceQueueGlobalPriorityCreateInfo {
3109    const TYPE: StructureType = StructureType::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO;
3110
3111    #[inline]
3112    fn s_type(&self) -> StructureType {
3113        self.s_type
3114    }
3115
3116    #[inline]
3117    fn next(&self) -> *const c_void {
3118        self.next
3119    }
3120}
3121
3122unsafe impl InputChainStruct for DeviceQueueInfo2 {
3123    const TYPE: StructureType = StructureType::DEVICE_QUEUE_INFO_2;
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 DeviceQueueShaderCoreControlCreateInfoARM {
3137    const TYPE: StructureType = StructureType::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM;
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 OutputChainStruct for DeviceQueueShaderCoreControlCreateInfoARM {
3151    #[inline]
3152    fn next_mut(&self) -> *mut c_void {
3153        self.next
3154    }
3155}
3156
3157unsafe impl InputChainStruct for DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
3158    const TYPE: StructureType =
3159        StructureType::DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV;
3160
3161    #[inline]
3162    fn s_type(&self) -> StructureType {
3163        self.s_type
3164    }
3165
3166    #[inline]
3167    fn next(&self) -> *const c_void {
3168        self.next
3169    }
3170}
3171
3172unsafe impl InputChainStruct for DeviceTensorMemoryRequirementsARM {
3173    const TYPE: StructureType = StructureType::DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM;
3174
3175    #[inline]
3176    fn s_type(&self) -> StructureType {
3177        self.s_type
3178    }
3179
3180    #[inline]
3181    fn next(&self) -> *const c_void {
3182        self.next
3183    }
3184}
3185
3186unsafe impl InputChainStruct for DirectDriverLoadingInfoLUNARG {
3187    const TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_INFO_LUNARG;
3188
3189    #[inline]
3190    fn s_type(&self) -> StructureType {
3191        self.s_type
3192    }
3193
3194    #[inline]
3195    fn next(&self) -> *const c_void {
3196        self.next
3197    }
3198}
3199
3200unsafe impl OutputChainStruct for DirectDriverLoadingInfoLUNARG {
3201    #[inline]
3202    fn next_mut(&self) -> *mut c_void {
3203        self.next
3204    }
3205}
3206
3207unsafe impl InputChainStruct for DirectDriverLoadingListLUNARG {
3208    const TYPE: StructureType = StructureType::DIRECT_DRIVER_LOADING_LIST_LUNARG;
3209
3210    #[inline]
3211    fn s_type(&self) -> StructureType {
3212        self.s_type
3213    }
3214
3215    #[inline]
3216    fn next(&self) -> *const c_void {
3217        self.next
3218    }
3219}
3220
3221unsafe impl InputChainStruct for DirectFBSurfaceCreateInfoEXT {
3222    const TYPE: StructureType = StructureType::DIRECTFB_SURFACE_CREATE_INFO_EXT;
3223
3224    #[inline]
3225    fn s_type(&self) -> StructureType {
3226        self.s_type
3227    }
3228
3229    #[inline]
3230    fn next(&self) -> *const c_void {
3231        self.next
3232    }
3233}
3234
3235unsafe impl InputChainStruct for DispatchTileInfoQCOM {
3236    const TYPE: StructureType = StructureType::DISPATCH_TILE_INFO_QCOM;
3237
3238    #[inline]
3239    fn s_type(&self) -> StructureType {
3240        self.s_type
3241    }
3242
3243    #[inline]
3244    fn next(&self) -> *const c_void {
3245        self.next
3246    }
3247}
3248
3249unsafe impl InputChainStruct for DisplayEventInfoEXT {
3250    const TYPE: StructureType = StructureType::DISPLAY_EVENT_INFO_EXT;
3251
3252    #[inline]
3253    fn s_type(&self) -> StructureType {
3254        self.s_type
3255    }
3256
3257    #[inline]
3258    fn next(&self) -> *const c_void {
3259        self.next
3260    }
3261}
3262
3263unsafe impl InputChainStruct for DisplayModeCreateInfoKHR {
3264    const TYPE: StructureType = StructureType::DISPLAY_MODE_CREATE_INFO_KHR;
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 DisplayModeProperties2KHR {
3278    const TYPE: StructureType = StructureType::DISPLAY_MODE_PROPERTIES_2_KHR;
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 OutputChainStruct for DisplayModeProperties2KHR {
3292    #[inline]
3293    fn next_mut(&self) -> *mut c_void {
3294        self.next
3295    }
3296}
3297
3298unsafe impl InputChainStruct for DisplayModeStereoPropertiesNV {
3299    const TYPE: StructureType = StructureType::DISPLAY_MODE_STEREO_PROPERTIES_NV;
3300
3301    #[inline]
3302    fn s_type(&self) -> StructureType {
3303        self.s_type
3304    }
3305
3306    #[inline]
3307    fn next(&self) -> *const c_void {
3308        self.next
3309    }
3310}
3311
3312unsafe impl OutputChainStruct for DisplayModeStereoPropertiesNV {
3313    #[inline]
3314    fn next_mut(&self) -> *mut c_void {
3315        self.next
3316    }
3317}
3318
3319unsafe impl InputChainStruct for DisplayNativeHdrSurfaceCapabilitiesAMD {
3320    const TYPE: StructureType = StructureType::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
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 OutputChainStruct for DisplayNativeHdrSurfaceCapabilitiesAMD {
3334    #[inline]
3335    fn next_mut(&self) -> *mut c_void {
3336        self.next
3337    }
3338}
3339
3340unsafe impl InputChainStruct for DisplayPlaneCapabilities2KHR {
3341    const TYPE: StructureType = StructureType::DISPLAY_PLANE_CAPABILITIES_2_KHR;
3342
3343    #[inline]
3344    fn s_type(&self) -> StructureType {
3345        self.s_type
3346    }
3347
3348    #[inline]
3349    fn next(&self) -> *const c_void {
3350        self.next
3351    }
3352}
3353
3354unsafe impl OutputChainStruct for DisplayPlaneCapabilities2KHR {
3355    #[inline]
3356    fn next_mut(&self) -> *mut c_void {
3357        self.next
3358    }
3359}
3360
3361unsafe impl InputChainStruct for DisplayPlaneInfo2KHR {
3362    const TYPE: StructureType = StructureType::DISPLAY_PLANE_INFO_2_KHR;
3363
3364    #[inline]
3365    fn s_type(&self) -> StructureType {
3366        self.s_type
3367    }
3368
3369    #[inline]
3370    fn next(&self) -> *const c_void {
3371        self.next
3372    }
3373}
3374
3375unsafe impl InputChainStruct for DisplayPlaneProperties2KHR {
3376    const TYPE: StructureType = StructureType::DISPLAY_PLANE_PROPERTIES_2_KHR;
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 DisplayPlaneProperties2KHR {
3390    #[inline]
3391    fn next_mut(&self) -> *mut c_void {
3392        self.next
3393    }
3394}
3395
3396unsafe impl InputChainStruct for DisplayPowerInfoEXT {
3397    const TYPE: StructureType = StructureType::DISPLAY_POWER_INFO_EXT;
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 InputChainStruct for DisplayPresentInfoKHR {
3411    const TYPE: StructureType = StructureType::DISPLAY_PRESENT_INFO_KHR;
3412
3413    #[inline]
3414    fn s_type(&self) -> StructureType {
3415        self.s_type
3416    }
3417
3418    #[inline]
3419    fn next(&self) -> *const c_void {
3420        self.next
3421    }
3422}
3423
3424unsafe impl InputChainStruct for DisplayProperties2KHR {
3425    const TYPE: StructureType = StructureType::DISPLAY_PROPERTIES_2_KHR;
3426
3427    #[inline]
3428    fn s_type(&self) -> StructureType {
3429        self.s_type
3430    }
3431
3432    #[inline]
3433    fn next(&self) -> *const c_void {
3434        self.next
3435    }
3436}
3437
3438unsafe impl OutputChainStruct for DisplayProperties2KHR {
3439    #[inline]
3440    fn next_mut(&self) -> *mut c_void {
3441        self.next
3442    }
3443}
3444
3445unsafe impl InputChainStruct for DisplaySurfaceCreateInfoKHR {
3446    const TYPE: StructureType = StructureType::DISPLAY_SURFACE_CREATE_INFO_KHR;
3447
3448    #[inline]
3449    fn s_type(&self) -> StructureType {
3450        self.s_type
3451    }
3452
3453    #[inline]
3454    fn next(&self) -> *const c_void {
3455        self.next
3456    }
3457}
3458
3459unsafe impl InputChainStruct for DisplaySurfaceStereoCreateInfoNV {
3460    const TYPE: StructureType = StructureType::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV;
3461
3462    #[inline]
3463    fn s_type(&self) -> StructureType {
3464        self.s_type
3465    }
3466
3467    #[inline]
3468    fn next(&self) -> *const c_void {
3469        self.next
3470    }
3471}
3472
3473unsafe impl InputChainStruct for DrmFormatModifierPropertiesList2EXT {
3474    const TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT;
3475
3476    #[inline]
3477    fn s_type(&self) -> StructureType {
3478        self.s_type
3479    }
3480
3481    #[inline]
3482    fn next(&self) -> *const c_void {
3483        self.next
3484    }
3485}
3486
3487unsafe impl OutputChainStruct for DrmFormatModifierPropertiesList2EXT {
3488    #[inline]
3489    fn next_mut(&self) -> *mut c_void {
3490        self.next
3491    }
3492}
3493
3494unsafe impl InputChainStruct for DrmFormatModifierPropertiesListEXT {
3495    const TYPE: StructureType = StructureType::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
3496
3497    #[inline]
3498    fn s_type(&self) -> StructureType {
3499        self.s_type
3500    }
3501
3502    #[inline]
3503    fn next(&self) -> *const c_void {
3504        self.next
3505    }
3506}
3507
3508unsafe impl OutputChainStruct for DrmFormatModifierPropertiesListEXT {
3509    #[inline]
3510    fn next_mut(&self) -> *mut c_void {
3511        self.next
3512    }
3513}
3514
3515unsafe impl InputChainStruct for EventCreateInfo {
3516    const TYPE: StructureType = StructureType::EVENT_CREATE_INFO;
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 ExecutionGraphPipelineCreateInfoAMDX {
3530    const TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX;
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 InputChainStruct for ExecutionGraphPipelineScratchSizeAMDX {
3544    const TYPE: StructureType = StructureType::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX;
3545
3546    #[inline]
3547    fn s_type(&self) -> StructureType {
3548        self.s_type
3549    }
3550
3551    #[inline]
3552    fn next(&self) -> *const c_void {
3553        self.next
3554    }
3555}
3556
3557unsafe impl OutputChainStruct for ExecutionGraphPipelineScratchSizeAMDX {
3558    #[inline]
3559    fn next_mut(&self) -> *mut c_void {
3560        self.next
3561    }
3562}
3563
3564unsafe impl InputChainStruct for ExportFenceCreateInfo {
3565    const TYPE: StructureType = StructureType::EXPORT_FENCE_CREATE_INFO;
3566
3567    #[inline]
3568    fn s_type(&self) -> StructureType {
3569        self.s_type
3570    }
3571
3572    #[inline]
3573    fn next(&self) -> *const c_void {
3574        self.next
3575    }
3576}
3577
3578unsafe impl InputChainStruct for ExportFenceSciSyncInfoNV {
3579    const TYPE: StructureType = StructureType::EXPORT_FENCE_SCI_SYNC_INFO_NV;
3580
3581    #[inline]
3582    fn s_type(&self) -> StructureType {
3583        self.s_type
3584    }
3585
3586    #[inline]
3587    fn next(&self) -> *const c_void {
3588        self.next
3589    }
3590}
3591
3592unsafe impl InputChainStruct for ExportFenceWin32HandleInfoKHR {
3593    const TYPE: StructureType = StructureType::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
3594
3595    #[inline]
3596    fn s_type(&self) -> StructureType {
3597        self.s_type
3598    }
3599
3600    #[inline]
3601    fn next(&self) -> *const c_void {
3602        self.next
3603    }
3604}
3605
3606unsafe impl InputChainStruct for ExportMemoryAllocateInfo {
3607    const TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO;
3608
3609    #[inline]
3610    fn s_type(&self) -> StructureType {
3611        self.s_type
3612    }
3613
3614    #[inline]
3615    fn next(&self) -> *const c_void {
3616        self.next
3617    }
3618}
3619
3620unsafe impl InputChainStruct for ExportMemoryAllocateInfoNV {
3621    const TYPE: StructureType = StructureType::EXPORT_MEMORY_ALLOCATE_INFO_NV;
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 ExportMemorySciBufInfoNV {
3635    const TYPE: StructureType = StructureType::EXPORT_MEMORY_SCI_BUF_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 ExportMemoryWin32HandleInfoKHR {
3649    const TYPE: StructureType = StructureType::EXPORT_MEMORY_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 ExportMemoryWin32HandleInfoNV {
3663    const TYPE: StructureType = StructureType::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
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 ExportMetalBufferInfoEXT {
3677    const TYPE: StructureType = StructureType::EXPORT_METAL_BUFFER_INFO_EXT;
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 ExportMetalCommandQueueInfoEXT {
3691    const TYPE: StructureType = StructureType::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT;
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 ExportMetalDeviceInfoEXT {
3705    const TYPE: StructureType = StructureType::EXPORT_METAL_DEVICE_INFO_EXT;
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 ExportMetalIOSurfaceInfoEXT {
3719    const TYPE: StructureType = StructureType::EXPORT_METAL_IO_SURFACE_INFO_EXT;
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 ExportMetalObjectCreateInfoEXT {
3733    const TYPE: StructureType = StructureType::EXPORT_METAL_OBJECT_CREATE_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 ExportMetalObjectsInfoEXT {
3747    const TYPE: StructureType = StructureType::EXPORT_METAL_OBJECTS_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 ExportMetalSharedEventInfoEXT {
3761    const TYPE: StructureType = StructureType::EXPORT_METAL_SHARED_EVENT_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 ExportMetalTextureInfoEXT {
3775    const TYPE: StructureType = StructureType::EXPORT_METAL_TEXTURE_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 ExportSemaphoreCreateInfo {
3789    const TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_CREATE_INFO;
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 ExportSemaphoreSciSyncInfoNV {
3803    const TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV;
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 ExportSemaphoreWin32HandleInfoKHR {
3817    const TYPE: StructureType = StructureType::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
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 ExternalBufferProperties {
3831    const TYPE: StructureType = StructureType::EXTERNAL_BUFFER_PROPERTIES;
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 OutputChainStruct for ExternalBufferProperties {
3845    #[inline]
3846    fn next_mut(&self) -> *mut c_void {
3847        self.next
3848    }
3849}
3850
3851unsafe impl InputChainStruct for ExternalComputeQueueCreateInfoNV {
3852    const TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV;
3853
3854    #[inline]
3855    fn s_type(&self) -> StructureType {
3856        self.s_type
3857    }
3858
3859    #[inline]
3860    fn next(&self) -> *const c_void {
3861        self.next
3862    }
3863}
3864
3865unsafe impl InputChainStruct for ExternalComputeQueueDataParamsNV {
3866    const TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV;
3867
3868    #[inline]
3869    fn s_type(&self) -> StructureType {
3870        self.s_type
3871    }
3872
3873    #[inline]
3874    fn next(&self) -> *const c_void {
3875        self.next
3876    }
3877}
3878
3879unsafe impl InputChainStruct for ExternalComputeQueueDeviceCreateInfoNV {
3880    const TYPE: StructureType = StructureType::EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV;
3881
3882    #[inline]
3883    fn s_type(&self) -> StructureType {
3884        self.s_type
3885    }
3886
3887    #[inline]
3888    fn next(&self) -> *const c_void {
3889        self.next
3890    }
3891}
3892
3893unsafe impl InputChainStruct for ExternalFenceProperties {
3894    const TYPE: StructureType = StructureType::EXTERNAL_FENCE_PROPERTIES;
3895
3896    #[inline]
3897    fn s_type(&self) -> StructureType {
3898        self.s_type
3899    }
3900
3901    #[inline]
3902    fn next(&self) -> *const c_void {
3903        self.next
3904    }
3905}
3906
3907unsafe impl OutputChainStruct for ExternalFenceProperties {
3908    #[inline]
3909    fn next_mut(&self) -> *mut c_void {
3910        self.next
3911    }
3912}
3913
3914unsafe impl InputChainStruct for ExternalFormatANDROID {
3915    const TYPE: StructureType = StructureType::EXTERNAL_FORMAT_ANDROID;
3916
3917    #[inline]
3918    fn s_type(&self) -> StructureType {
3919        self.s_type
3920    }
3921
3922    #[inline]
3923    fn next(&self) -> *const c_void {
3924        self.next
3925    }
3926}
3927
3928unsafe impl OutputChainStruct for ExternalFormatANDROID {
3929    #[inline]
3930    fn next_mut(&self) -> *mut c_void {
3931        self.next
3932    }
3933}
3934
3935unsafe impl InputChainStruct for ExternalFormatOHOS {
3936    const TYPE: StructureType = StructureType::EXTERNAL_FORMAT_OHOS;
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 OutputChainStruct for ExternalFormatOHOS {
3950    #[inline]
3951    fn next_mut(&self) -> *mut c_void {
3952        self.next
3953    }
3954}
3955
3956unsafe impl InputChainStruct for ExternalFormatQNX {
3957    const TYPE: StructureType = StructureType::EXTERNAL_FORMAT_QNX;
3958
3959    #[inline]
3960    fn s_type(&self) -> StructureType {
3961        self.s_type
3962    }
3963
3964    #[inline]
3965    fn next(&self) -> *const c_void {
3966        self.next
3967    }
3968}
3969
3970unsafe impl OutputChainStruct for ExternalFormatQNX {
3971    #[inline]
3972    fn next_mut(&self) -> *mut c_void {
3973        self.next
3974    }
3975}
3976
3977unsafe impl InputChainStruct for ExternalImageFormatProperties {
3978    const TYPE: StructureType = StructureType::EXTERNAL_IMAGE_FORMAT_PROPERTIES;
3979
3980    #[inline]
3981    fn s_type(&self) -> StructureType {
3982        self.s_type
3983    }
3984
3985    #[inline]
3986    fn next(&self) -> *const c_void {
3987        self.next
3988    }
3989}
3990
3991unsafe impl OutputChainStruct for ExternalImageFormatProperties {
3992    #[inline]
3993    fn next_mut(&self) -> *mut c_void {
3994        self.next
3995    }
3996}
3997
3998unsafe impl InputChainStruct for ExternalMemoryAcquireUnmodifiedEXT {
3999    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT;
4000
4001    #[inline]
4002    fn s_type(&self) -> StructureType {
4003        self.s_type
4004    }
4005
4006    #[inline]
4007    fn next(&self) -> *const c_void {
4008        self.next
4009    }
4010}
4011
4012unsafe impl InputChainStruct for ExternalMemoryBufferCreateInfo {
4013    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
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 InputChainStruct for ExternalMemoryImageCreateInfo {
4027    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
4028
4029    #[inline]
4030    fn s_type(&self) -> StructureType {
4031        self.s_type
4032    }
4033
4034    #[inline]
4035    fn next(&self) -> *const c_void {
4036        self.next
4037    }
4038}
4039
4040unsafe impl InputChainStruct for ExternalMemoryImageCreateInfoNV {
4041    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
4042
4043    #[inline]
4044    fn s_type(&self) -> StructureType {
4045        self.s_type
4046    }
4047
4048    #[inline]
4049    fn next(&self) -> *const c_void {
4050        self.next
4051    }
4052}
4053
4054unsafe impl InputChainStruct for ExternalMemoryTensorCreateInfoARM {
4055    const TYPE: StructureType = StructureType::EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM;
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 ExternalSemaphoreProperties {
4069    const TYPE: StructureType = StructureType::EXTERNAL_SEMAPHORE_PROPERTIES;
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 OutputChainStruct for ExternalSemaphoreProperties {
4083    #[inline]
4084    fn next_mut(&self) -> *mut c_void {
4085        self.next
4086    }
4087}
4088
4089unsafe impl InputChainStruct for ExternalTensorPropertiesARM {
4090    const TYPE: StructureType = StructureType::EXTERNAL_TENSOR_PROPERTIES_ARM;
4091
4092    #[inline]
4093    fn s_type(&self) -> StructureType {
4094        self.s_type
4095    }
4096
4097    #[inline]
4098    fn next(&self) -> *const c_void {
4099        self.next
4100    }
4101}
4102
4103unsafe impl InputChainStruct for FenceCreateInfo {
4104    const TYPE: StructureType = StructureType::FENCE_CREATE_INFO;
4105
4106    #[inline]
4107    fn s_type(&self) -> StructureType {
4108        self.s_type
4109    }
4110
4111    #[inline]
4112    fn next(&self) -> *const c_void {
4113        self.next
4114    }
4115}
4116
4117unsafe impl InputChainStruct for FenceGetFdInfoKHR {
4118    const TYPE: StructureType = StructureType::FENCE_GET_FD_INFO_KHR;
4119
4120    #[inline]
4121    fn s_type(&self) -> StructureType {
4122        self.s_type
4123    }
4124
4125    #[inline]
4126    fn next(&self) -> *const c_void {
4127        self.next
4128    }
4129}
4130
4131unsafe impl InputChainStruct for FenceGetSciSyncInfoNV {
4132    const TYPE: StructureType = StructureType::FENCE_GET_SCI_SYNC_INFO_NV;
4133
4134    #[inline]
4135    fn s_type(&self) -> StructureType {
4136        self.s_type
4137    }
4138
4139    #[inline]
4140    fn next(&self) -> *const c_void {
4141        self.next
4142    }
4143}
4144
4145unsafe impl InputChainStruct for FenceGetWin32HandleInfoKHR {
4146    const TYPE: StructureType = StructureType::FENCE_GET_WIN32_HANDLE_INFO_KHR;
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 FilterCubicImageViewImageFormatPropertiesEXT {
4160    const TYPE: StructureType = StructureType::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
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 OutputChainStruct for FilterCubicImageViewImageFormatPropertiesEXT {
4174    #[inline]
4175    fn next_mut(&self) -> *mut c_void {
4176        self.next
4177    }
4178}
4179
4180unsafe impl InputChainStruct for FormatProperties2 {
4181    const TYPE: StructureType = StructureType::FORMAT_PROPERTIES_2;
4182
4183    #[inline]
4184    fn s_type(&self) -> StructureType {
4185        self.s_type
4186    }
4187
4188    #[inline]
4189    fn next(&self) -> *const c_void {
4190        self.next
4191    }
4192}
4193
4194unsafe impl OutputChainStruct for FormatProperties2 {
4195    #[inline]
4196    fn next_mut(&self) -> *mut c_void {
4197        self.next
4198    }
4199}
4200
4201unsafe impl InputChainStruct for FormatProperties3 {
4202    const TYPE: StructureType = StructureType::FORMAT_PROPERTIES_3;
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 OutputChainStruct for FormatProperties3 {
4216    #[inline]
4217    fn next_mut(&self) -> *mut c_void {
4218        self.next
4219    }
4220}
4221
4222unsafe impl InputChainStruct for FragmentShadingRateAttachmentInfoKHR {
4223    const TYPE: StructureType = StructureType::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
4224
4225    #[inline]
4226    fn s_type(&self) -> StructureType {
4227        self.s_type
4228    }
4229
4230    #[inline]
4231    fn next(&self) -> *const c_void {
4232        self.next
4233    }
4234}
4235
4236unsafe impl InputChainStruct for FrameBoundaryEXT {
4237    const TYPE: StructureType = StructureType::FRAME_BOUNDARY_EXT;
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 InputChainStruct for FrameBoundaryTensorsARM {
4251    const TYPE: StructureType = StructureType::FRAME_BOUNDARY_TENSORS_ARM;
4252
4253    #[inline]
4254    fn s_type(&self) -> StructureType {
4255        self.s_type
4256    }
4257
4258    #[inline]
4259    fn next(&self) -> *const c_void {
4260        self.next
4261    }
4262}
4263
4264unsafe impl InputChainStruct for FramebufferAttachmentImageInfo {
4265    const TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
4266
4267    #[inline]
4268    fn s_type(&self) -> StructureType {
4269        self.s_type
4270    }
4271
4272    #[inline]
4273    fn next(&self) -> *const c_void {
4274        self.next
4275    }
4276}
4277
4278unsafe impl InputChainStruct for FramebufferAttachmentsCreateInfo {
4279    const TYPE: StructureType = StructureType::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
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 FramebufferCreateInfo {
4293    const TYPE: StructureType = StructureType::FRAMEBUFFER_CREATE_INFO;
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 FramebufferMixedSamplesCombinationNV {
4307    const TYPE: StructureType = StructureType::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
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 OutputChainStruct for FramebufferMixedSamplesCombinationNV {
4321    #[inline]
4322    fn next_mut(&self) -> *mut c_void {
4323        self.next
4324    }
4325}
4326
4327unsafe impl InputChainStruct for GeneratedCommandsInfoEXT {
4328    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_EXT;
4329
4330    #[inline]
4331    fn s_type(&self) -> StructureType {
4332        self.s_type
4333    }
4334
4335    #[inline]
4336    fn next(&self) -> *const c_void {
4337        self.next
4338    }
4339}
4340
4341unsafe impl InputChainStruct for GeneratedCommandsInfoNV {
4342    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_INFO_NV;
4343
4344    #[inline]
4345    fn s_type(&self) -> StructureType {
4346        self.s_type
4347    }
4348
4349    #[inline]
4350    fn next(&self) -> *const c_void {
4351        self.next
4352    }
4353}
4354
4355unsafe impl InputChainStruct for GeneratedCommandsMemoryRequirementsInfoEXT {
4356    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT;
4357
4358    #[inline]
4359    fn s_type(&self) -> StructureType {
4360        self.s_type
4361    }
4362
4363    #[inline]
4364    fn next(&self) -> *const c_void {
4365        self.next
4366    }
4367}
4368
4369unsafe impl InputChainStruct for GeneratedCommandsMemoryRequirementsInfoNV {
4370    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
4371
4372    #[inline]
4373    fn s_type(&self) -> StructureType {
4374        self.s_type
4375    }
4376
4377    #[inline]
4378    fn next(&self) -> *const c_void {
4379        self.next
4380    }
4381}
4382
4383unsafe impl InputChainStruct for GeneratedCommandsPipelineInfoEXT {
4384    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_PIPELINE_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 OutputChainStruct for GeneratedCommandsPipelineInfoEXT {
4398    #[inline]
4399    fn next_mut(&self) -> *mut c_void {
4400        self.next
4401    }
4402}
4403
4404unsafe impl InputChainStruct for GeneratedCommandsShaderInfoEXT {
4405    const TYPE: StructureType = StructureType::GENERATED_COMMANDS_SHADER_INFO_EXT;
4406
4407    #[inline]
4408    fn s_type(&self) -> StructureType {
4409        self.s_type
4410    }
4411
4412    #[inline]
4413    fn next(&self) -> *const c_void {
4414        self.next
4415    }
4416}
4417
4418unsafe impl OutputChainStruct for GeneratedCommandsShaderInfoEXT {
4419    #[inline]
4420    fn next_mut(&self) -> *mut c_void {
4421        self.next
4422    }
4423}
4424
4425unsafe impl InputChainStruct for GeometryAABBNV {
4426    const TYPE: StructureType = StructureType::GEOMETRY_AABB_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 GeometryNV {
4440    const TYPE: StructureType = StructureType::GEOMETRY_NV;
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 InputChainStruct for GeometryTrianglesNV {
4454    const TYPE: StructureType = StructureType::GEOMETRY_TRIANGLES_NV;
4455
4456    #[inline]
4457    fn s_type(&self) -> StructureType {
4458        self.s_type
4459    }
4460
4461    #[inline]
4462    fn next(&self) -> *const c_void {
4463        self.next
4464    }
4465}
4466
4467unsafe impl InputChainStruct for GetLatencyMarkerInfoNV {
4468    const TYPE: StructureType = StructureType::GET_LATENCY_MARKER_INFO_NV;
4469
4470    #[inline]
4471    fn s_type(&self) -> StructureType {
4472        self.s_type
4473    }
4474
4475    #[inline]
4476    fn next(&self) -> *const c_void {
4477        self.next
4478    }
4479}
4480
4481unsafe impl InputChainStruct for GraphicsPipelineCreateInfo {
4482    const TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_CREATE_INFO;
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 GraphicsPipelineLibraryCreateInfoEXT {
4496    const TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;
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 GraphicsPipelineShaderGroupsCreateInfoNV {
4510    const TYPE: StructureType = StructureType::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_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 GraphicsShaderGroupCreateInfoNV {
4524    const TYPE: StructureType = StructureType::GRAPHICS_SHADER_GROUP_CREATE_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 HdrMetadataEXT {
4538    const TYPE: StructureType = StructureType::HDR_METADATA_EXT;
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 HdrVividDynamicMetadataHUAWEI {
4552    const TYPE: StructureType = StructureType::HDR_VIVID_DYNAMIC_METADATA_HUAWEI;
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 HeadlessSurfaceCreateInfoEXT {
4566    const TYPE: StructureType = StructureType::HEADLESS_SURFACE_CREATE_INFO_EXT;
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 HostImageCopyDevicePerformanceQuery {
4580    const TYPE: StructureType = StructureType::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY;
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 OutputChainStruct for HostImageCopyDevicePerformanceQuery {
4594    #[inline]
4595    fn next_mut(&self) -> *mut c_void {
4596        self.next
4597    }
4598}
4599
4600unsafe impl InputChainStruct for HostImageLayoutTransitionInfo {
4601    const TYPE: StructureType = StructureType::HOST_IMAGE_LAYOUT_TRANSITION_INFO;
4602
4603    #[inline]
4604    fn s_type(&self) -> StructureType {
4605        self.s_type
4606    }
4607
4608    #[inline]
4609    fn next(&self) -> *const c_void {
4610        self.next
4611    }
4612}
4613
4614unsafe impl InputChainStruct for IOSSurfaceCreateInfoMVK {
4615    const TYPE: StructureType = StructureType::IOS_SURFACE_CREATE_INFO_MVK;
4616
4617    #[inline]
4618    fn s_type(&self) -> StructureType {
4619        self.s_type
4620    }
4621
4622    #[inline]
4623    fn next(&self) -> *const c_void {
4624        self.next
4625    }
4626}
4627
4628unsafe impl InputChainStruct for ImageAlignmentControlCreateInfoMESA {
4629    const TYPE: StructureType = StructureType::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA;
4630
4631    #[inline]
4632    fn s_type(&self) -> StructureType {
4633        self.s_type
4634    }
4635
4636    #[inline]
4637    fn next(&self) -> *const c_void {
4638        self.next
4639    }
4640}
4641
4642unsafe impl InputChainStruct for ImageBlit2 {
4643    const TYPE: StructureType = StructureType::IMAGE_BLIT_2;
4644
4645    #[inline]
4646    fn s_type(&self) -> StructureType {
4647        self.s_type
4648    }
4649
4650    #[inline]
4651    fn next(&self) -> *const c_void {
4652        self.next
4653    }
4654}
4655
4656unsafe impl InputChainStruct for ImageCaptureDescriptorDataInfoEXT {
4657    const TYPE: StructureType = StructureType::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
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 ImageCompressionControlEXT {
4671    const TYPE: StructureType = StructureType::IMAGE_COMPRESSION_CONTROL_EXT;
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 ImageCompressionPropertiesEXT {
4685    const TYPE: StructureType = StructureType::IMAGE_COMPRESSION_PROPERTIES_EXT;
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 OutputChainStruct for ImageCompressionPropertiesEXT {
4699    #[inline]
4700    fn next_mut(&self) -> *mut c_void {
4701        self.next
4702    }
4703}
4704
4705unsafe impl InputChainStruct for ImageConstraintsInfoFUCHSIA {
4706    const TYPE: StructureType = StructureType::IMAGE_CONSTRAINTS_INFO_FUCHSIA;
4707
4708    #[inline]
4709    fn s_type(&self) -> StructureType {
4710        self.s_type
4711    }
4712
4713    #[inline]
4714    fn next(&self) -> *const c_void {
4715        self.next
4716    }
4717}
4718
4719unsafe impl InputChainStruct for ImageCopy2 {
4720    const TYPE: StructureType = StructureType::IMAGE_COPY_2;
4721
4722    #[inline]
4723    fn s_type(&self) -> StructureType {
4724        self.s_type
4725    }
4726
4727    #[inline]
4728    fn next(&self) -> *const c_void {
4729        self.next
4730    }
4731}
4732
4733unsafe impl InputChainStruct for ImageCreateInfo {
4734    const TYPE: StructureType = StructureType::IMAGE_CREATE_INFO;
4735
4736    #[inline]
4737    fn s_type(&self) -> StructureType {
4738        self.s_type
4739    }
4740
4741    #[inline]
4742    fn next(&self) -> *const c_void {
4743        self.next
4744    }
4745}
4746
4747unsafe impl InputChainStruct for ImageDrmFormatModifierExplicitCreateInfoEXT {
4748    const TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
4749
4750    #[inline]
4751    fn s_type(&self) -> StructureType {
4752        self.s_type
4753    }
4754
4755    #[inline]
4756    fn next(&self) -> *const c_void {
4757        self.next
4758    }
4759}
4760
4761unsafe impl InputChainStruct for ImageDrmFormatModifierListCreateInfoEXT {
4762    const TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
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 ImageDrmFormatModifierPropertiesEXT {
4776    const TYPE: StructureType = StructureType::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
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 OutputChainStruct for ImageDrmFormatModifierPropertiesEXT {
4790    #[inline]
4791    fn next_mut(&self) -> *mut c_void {
4792        self.next
4793    }
4794}
4795
4796unsafe impl InputChainStruct for ImageFormatConstraintsInfoFUCHSIA {
4797    const TYPE: StructureType = StructureType::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA;
4798
4799    #[inline]
4800    fn s_type(&self) -> StructureType {
4801        self.s_type
4802    }
4803
4804    #[inline]
4805    fn next(&self) -> *const c_void {
4806        self.next
4807    }
4808}
4809
4810unsafe impl InputChainStruct for ImageFormatListCreateInfo {
4811    const TYPE: StructureType = StructureType::IMAGE_FORMAT_LIST_CREATE_INFO;
4812
4813    #[inline]
4814    fn s_type(&self) -> StructureType {
4815        self.s_type
4816    }
4817
4818    #[inline]
4819    fn next(&self) -> *const c_void {
4820        self.next
4821    }
4822}
4823
4824unsafe impl InputChainStruct for ImageFormatProperties2 {
4825    const TYPE: StructureType = StructureType::IMAGE_FORMAT_PROPERTIES_2;
4826
4827    #[inline]
4828    fn s_type(&self) -> StructureType {
4829        self.s_type
4830    }
4831
4832    #[inline]
4833    fn next(&self) -> *const c_void {
4834        self.next
4835    }
4836}
4837
4838unsafe impl OutputChainStruct for ImageFormatProperties2 {
4839    #[inline]
4840    fn next_mut(&self) -> *mut c_void {
4841        self.next
4842    }
4843}
4844
4845unsafe impl InputChainStruct for ImageMemoryBarrier {
4846    const TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER;
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 InputChainStruct for ImageMemoryBarrier2 {
4860    const TYPE: StructureType = StructureType::IMAGE_MEMORY_BARRIER_2;
4861
4862    #[inline]
4863    fn s_type(&self) -> StructureType {
4864        self.s_type
4865    }
4866
4867    #[inline]
4868    fn next(&self) -> *const c_void {
4869        self.next
4870    }
4871}
4872
4873unsafe impl InputChainStruct for ImageMemoryRequirementsInfo2 {
4874    const TYPE: StructureType = StructureType::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
4875
4876    #[inline]
4877    fn s_type(&self) -> StructureType {
4878        self.s_type
4879    }
4880
4881    #[inline]
4882    fn next(&self) -> *const c_void {
4883        self.next
4884    }
4885}
4886
4887unsafe impl InputChainStruct for ImagePipeSurfaceCreateInfoFUCHSIA {
4888    const TYPE: StructureType = StructureType::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
4889
4890    #[inline]
4891    fn s_type(&self) -> StructureType {
4892        self.s_type
4893    }
4894
4895    #[inline]
4896    fn next(&self) -> *const c_void {
4897        self.next
4898    }
4899}
4900
4901unsafe impl InputChainStruct for ImagePlaneMemoryRequirementsInfo {
4902    const TYPE: StructureType = StructureType::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
4903
4904    #[inline]
4905    fn s_type(&self) -> StructureType {
4906        self.s_type
4907    }
4908
4909    #[inline]
4910    fn next(&self) -> *const c_void {
4911        self.next
4912    }
4913}
4914
4915unsafe impl InputChainStruct for ImageResolve2 {
4916    const TYPE: StructureType = StructureType::IMAGE_RESOLVE_2;
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 ImageSparseMemoryRequirementsInfo2 {
4930    const TYPE: StructureType = StructureType::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_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 ImageStencilUsageCreateInfo {
4944    const TYPE: StructureType = StructureType::IMAGE_STENCIL_USAGE_CREATE_INFO;
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 ImageSubresource2 {
4958    const TYPE: StructureType = StructureType::IMAGE_SUBRESOURCE_2;
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 OutputChainStruct for ImageSubresource2 {
4972    #[inline]
4973    fn next_mut(&self) -> *mut c_void {
4974        self.next
4975    }
4976}
4977
4978unsafe impl InputChainStruct for ImageSwapchainCreateInfoKHR {
4979    const TYPE: StructureType = StructureType::IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
4980
4981    #[inline]
4982    fn s_type(&self) -> StructureType {
4983        self.s_type
4984    }
4985
4986    #[inline]
4987    fn next(&self) -> *const c_void {
4988        self.next
4989    }
4990}
4991
4992unsafe impl InputChainStruct for ImageToMemoryCopy {
4993    const TYPE: StructureType = StructureType::IMAGE_TO_MEMORY_COPY;
4994
4995    #[inline]
4996    fn s_type(&self) -> StructureType {
4997        self.s_type
4998    }
4999
5000    #[inline]
5001    fn next(&self) -> *const c_void {
5002        self.next
5003    }
5004}
5005
5006unsafe impl InputChainStruct for ImageViewASTCDecodeModeEXT {
5007    const TYPE: StructureType = StructureType::IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
5008
5009    #[inline]
5010    fn s_type(&self) -> StructureType {
5011        self.s_type
5012    }
5013
5014    #[inline]
5015    fn next(&self) -> *const c_void {
5016        self.next
5017    }
5018}
5019
5020unsafe impl InputChainStruct for ImageViewAddressPropertiesNVX {
5021    const TYPE: StructureType = StructureType::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
5022
5023    #[inline]
5024    fn s_type(&self) -> StructureType {
5025        self.s_type
5026    }
5027
5028    #[inline]
5029    fn next(&self) -> *const c_void {
5030        self.next
5031    }
5032}
5033
5034unsafe impl OutputChainStruct for ImageViewAddressPropertiesNVX {
5035    #[inline]
5036    fn next_mut(&self) -> *mut c_void {
5037        self.next
5038    }
5039}
5040
5041unsafe impl InputChainStruct for ImageViewCaptureDescriptorDataInfoEXT {
5042    const TYPE: StructureType = StructureType::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
5043
5044    #[inline]
5045    fn s_type(&self) -> StructureType {
5046        self.s_type
5047    }
5048
5049    #[inline]
5050    fn next(&self) -> *const c_void {
5051        self.next
5052    }
5053}
5054
5055unsafe impl InputChainStruct for ImageViewCreateInfo {
5056    const TYPE: StructureType = StructureType::IMAGE_VIEW_CREATE_INFO;
5057
5058    #[inline]
5059    fn s_type(&self) -> StructureType {
5060        self.s_type
5061    }
5062
5063    #[inline]
5064    fn next(&self) -> *const c_void {
5065        self.next
5066    }
5067}
5068
5069unsafe impl InputChainStruct for ImageViewHandleInfoNVX {
5070    const TYPE: StructureType = StructureType::IMAGE_VIEW_HANDLE_INFO_NVX;
5071
5072    #[inline]
5073    fn s_type(&self) -> StructureType {
5074        self.s_type
5075    }
5076
5077    #[inline]
5078    fn next(&self) -> *const c_void {
5079        self.next
5080    }
5081}
5082
5083unsafe impl InputChainStruct for ImageViewMinLodCreateInfoEXT {
5084    const TYPE: StructureType = StructureType::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
5085
5086    #[inline]
5087    fn s_type(&self) -> StructureType {
5088        self.s_type
5089    }
5090
5091    #[inline]
5092    fn next(&self) -> *const c_void {
5093        self.next
5094    }
5095}
5096
5097unsafe impl InputChainStruct for ImageViewSampleWeightCreateInfoQCOM {
5098    const TYPE: StructureType = StructureType::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM;
5099
5100    #[inline]
5101    fn s_type(&self) -> StructureType {
5102        self.s_type
5103    }
5104
5105    #[inline]
5106    fn next(&self) -> *const c_void {
5107        self.next
5108    }
5109}
5110
5111unsafe impl InputChainStruct for ImageViewSlicedCreateInfoEXT {
5112    const TYPE: StructureType = StructureType::IMAGE_VIEW_SLICED_CREATE_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 ImageViewUsageCreateInfo {
5126    const TYPE: StructureType = StructureType::IMAGE_VIEW_USAGE_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 ImportAndroidHardwareBufferInfoANDROID {
5140    const TYPE: StructureType = StructureType::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
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 ImportFenceFdInfoKHR {
5154    const TYPE: StructureType = StructureType::IMPORT_FENCE_FD_INFO_KHR;
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 ImportFenceSciSyncInfoNV {
5168    const TYPE: StructureType = StructureType::IMPORT_FENCE_SCI_SYNC_INFO_NV;
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 ImportFenceWin32HandleInfoKHR {
5182    const TYPE: StructureType = StructureType::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
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 ImportMemoryBufferCollectionFUCHSIA {
5196    const TYPE: StructureType = StructureType::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA;
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 ImportMemoryFdInfoKHR {
5210    const TYPE: StructureType = StructureType::IMPORT_MEMORY_FD_INFO_KHR;
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 ImportMemoryHostPointerInfoEXT {
5224    const TYPE: StructureType = StructureType::IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
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 ImportMemoryMetalHandleInfoEXT {
5238    const TYPE: StructureType = StructureType::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT;
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 ImportMemorySciBufInfoNV {
5252    const TYPE: StructureType = StructureType::IMPORT_MEMORY_SCI_BUF_INFO_NV;
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 ImportMemoryWin32HandleInfoKHR {
5266    const TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
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 ImportMemoryWin32HandleInfoNV {
5280    const TYPE: StructureType = StructureType::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
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 ImportMemoryZirconHandleInfoFUCHSIA {
5294    const TYPE: StructureType = StructureType::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
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 ImportMetalBufferInfoEXT {
5308    const TYPE: StructureType = StructureType::IMPORT_METAL_BUFFER_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 ImportMetalIOSurfaceInfoEXT {
5322    const TYPE: StructureType = StructureType::IMPORT_METAL_IO_SURFACE_INFO_EXT;
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 ImportMetalSharedEventInfoEXT {
5336    const TYPE: StructureType = StructureType::IMPORT_METAL_SHARED_EVENT_INFO_EXT;
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 ImportMetalTextureInfoEXT {
5350    const TYPE: StructureType = StructureType::IMPORT_METAL_TEXTURE_INFO_EXT;
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 ImportNativeBufferInfoOHOS {
5364    const TYPE: StructureType = StructureType::IMPORT_NATIVE_BUFFER_INFO_OHOS;
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 ImportScreenBufferInfoQNX {
5378    const TYPE: StructureType = StructureType::IMPORT_SCREEN_BUFFER_INFO_QNX;
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 ImportSemaphoreFdInfoKHR {
5392    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_FD_INFO_KHR;
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 ImportSemaphoreSciSyncInfoNV {
5406    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV;
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 ImportSemaphoreWin32HandleInfoKHR {
5420    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
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 ImportSemaphoreZirconHandleInfoFUCHSIA {
5434    const TYPE: StructureType = StructureType::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
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 IndirectCommandsLayoutCreateInfoEXT {
5448    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT;
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 IndirectCommandsLayoutCreateInfoNV {
5462    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
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 IndirectCommandsLayoutTokenEXT {
5476    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT;
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 IndirectCommandsLayoutTokenNV {
5490    const TYPE: StructureType = StructureType::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
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 IndirectExecutionSetCreateInfoEXT {
5504    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT;
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 IndirectExecutionSetPipelineInfoEXT {
5518    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_PIPELINE_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 IndirectExecutionSetShaderInfoEXT {
5532    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT;
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 IndirectExecutionSetShaderLayoutInfoEXT {
5546    const TYPE: StructureType = StructureType::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT;
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 InitializePerformanceApiInfoINTEL {
5560    const TYPE: StructureType = StructureType::INITIALIZE_PERFORMANCE_API_INFO_INTEL;
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 InstanceCreateInfo {
5574    const TYPE: StructureType = StructureType::INSTANCE_CREATE_INFO;
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 LatencySleepInfoNV {
5588    const TYPE: StructureType = StructureType::LATENCY_SLEEP_INFO_NV;
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 LatencySleepModeInfoNV {
5602    const TYPE: StructureType = StructureType::LATENCY_SLEEP_MODE_INFO_NV;
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 LatencySubmissionPresentIdNV {
5616    const TYPE: StructureType = StructureType::LATENCY_SUBMISSION_PRESENT_ID_NV;
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 LatencySurfaceCapabilitiesNV {
5630    const TYPE: StructureType = StructureType::LATENCY_SURFACE_CAPABILITIES_NV;
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 LatencyTimingsFrameReportNV {
5644    const TYPE: StructureType = StructureType::LATENCY_TIMINGS_FRAME_REPORT_NV;
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 OutputChainStruct for LatencyTimingsFrameReportNV {
5658    #[inline]
5659    fn next_mut(&self) -> *mut c_void {
5660        self.next
5661    }
5662}
5663
5664unsafe impl InputChainStruct for LayerSettingsCreateInfoEXT {
5665    const TYPE: StructureType = StructureType::LAYER_SETTINGS_CREATE_INFO_EXT;
5666
5667    #[inline]
5668    fn s_type(&self) -> StructureType {
5669        self.s_type
5670    }
5671
5672    #[inline]
5673    fn next(&self) -> *const c_void {
5674        self.next
5675    }
5676}
5677
5678unsafe impl InputChainStruct for MacOSSurfaceCreateInfoMVK {
5679    const TYPE: StructureType = StructureType::MACOS_SURFACE_CREATE_INFO_MVK;
5680
5681    #[inline]
5682    fn s_type(&self) -> StructureType {
5683        self.s_type
5684    }
5685
5686    #[inline]
5687    fn next(&self) -> *const c_void {
5688        self.next
5689    }
5690}
5691
5692unsafe impl InputChainStruct for MappedMemoryRange {
5693    const TYPE: StructureType = StructureType::MAPPED_MEMORY_RANGE;
5694
5695    #[inline]
5696    fn s_type(&self) -> StructureType {
5697        self.s_type
5698    }
5699
5700    #[inline]
5701    fn next(&self) -> *const c_void {
5702        self.next
5703    }
5704}
5705
5706unsafe impl InputChainStruct for MemoryAllocateFlagsInfo {
5707    const TYPE: StructureType = StructureType::MEMORY_ALLOCATE_FLAGS_INFO;
5708
5709    #[inline]
5710    fn s_type(&self) -> StructureType {
5711        self.s_type
5712    }
5713
5714    #[inline]
5715    fn next(&self) -> *const c_void {
5716        self.next
5717    }
5718}
5719
5720unsafe impl InputChainStruct for MemoryAllocateInfo {
5721    const TYPE: StructureType = StructureType::MEMORY_ALLOCATE_INFO;
5722
5723    #[inline]
5724    fn s_type(&self) -> StructureType {
5725        self.s_type
5726    }
5727
5728    #[inline]
5729    fn next(&self) -> *const c_void {
5730        self.next
5731    }
5732}
5733
5734unsafe impl InputChainStruct for MemoryBarrier {
5735    const TYPE: StructureType = StructureType::MEMORY_BARRIER;
5736
5737    #[inline]
5738    fn s_type(&self) -> StructureType {
5739        self.s_type
5740    }
5741
5742    #[inline]
5743    fn next(&self) -> *const c_void {
5744        self.next
5745    }
5746}
5747
5748unsafe impl InputChainStruct for MemoryBarrier2 {
5749    const TYPE: StructureType = StructureType::MEMORY_BARRIER_2;
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 MemoryBarrierAccessFlags3KHR {
5763    const TYPE: StructureType = StructureType::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR;
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 MemoryDedicatedAllocateInfo {
5777    const TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO;
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 MemoryDedicatedAllocateInfoTensorARM {
5791    const TYPE: StructureType = StructureType::MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM;
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 MemoryDedicatedRequirements {
5805    const TYPE: StructureType = StructureType::MEMORY_DEDICATED_REQUIREMENTS;
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 OutputChainStruct for MemoryDedicatedRequirements {
5819    #[inline]
5820    fn next_mut(&self) -> *mut c_void {
5821        self.next
5822    }
5823}
5824
5825unsafe impl InputChainStruct for MemoryFdPropertiesKHR {
5826    const TYPE: StructureType = StructureType::MEMORY_FD_PROPERTIES_KHR;
5827
5828    #[inline]
5829    fn s_type(&self) -> StructureType {
5830        self.s_type
5831    }
5832
5833    #[inline]
5834    fn next(&self) -> *const c_void {
5835        self.next
5836    }
5837}
5838
5839unsafe impl OutputChainStruct for MemoryFdPropertiesKHR {
5840    #[inline]
5841    fn next_mut(&self) -> *mut c_void {
5842        self.next
5843    }
5844}
5845
5846unsafe impl InputChainStruct for MemoryGetAndroidHardwareBufferInfoANDROID {
5847    const TYPE: StructureType = StructureType::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
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 MemoryGetFdInfoKHR {
5861    const TYPE: StructureType = StructureType::MEMORY_GET_FD_INFO_KHR;
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 MemoryGetMetalHandleInfoEXT {
5875    const TYPE: StructureType = StructureType::MEMORY_GET_METAL_HANDLE_INFO_EXT;
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 MemoryGetNativeBufferInfoOHOS {
5889    const TYPE: StructureType = StructureType::MEMORY_GET_NATIVE_BUFFER_INFO_OHOS;
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 InputChainStruct for MemoryGetRemoteAddressInfoNV {
5903    const TYPE: StructureType = StructureType::MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
5904
5905    #[inline]
5906    fn s_type(&self) -> StructureType {
5907        self.s_type
5908    }
5909
5910    #[inline]
5911    fn next(&self) -> *const c_void {
5912        self.next
5913    }
5914}
5915
5916unsafe impl InputChainStruct for MemoryGetSciBufInfoNV {
5917    const TYPE: StructureType = StructureType::MEMORY_GET_SCI_BUF_INFO_NV;
5918
5919    #[inline]
5920    fn s_type(&self) -> StructureType {
5921        self.s_type
5922    }
5923
5924    #[inline]
5925    fn next(&self) -> *const c_void {
5926        self.next
5927    }
5928}
5929
5930unsafe impl InputChainStruct for MemoryGetWin32HandleInfoKHR {
5931    const TYPE: StructureType = StructureType::MEMORY_GET_WIN32_HANDLE_INFO_KHR;
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 MemoryGetZirconHandleInfoFUCHSIA {
5945    const TYPE: StructureType = StructureType::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
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 MemoryHostPointerPropertiesEXT {
5959    const TYPE: StructureType = StructureType::MEMORY_HOST_POINTER_PROPERTIES_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 OutputChainStruct for MemoryHostPointerPropertiesEXT {
5973    #[inline]
5974    fn next_mut(&self) -> *mut c_void {
5975        self.next
5976    }
5977}
5978
5979unsafe impl InputChainStruct for MemoryMapInfo {
5980    const TYPE: StructureType = StructureType::MEMORY_MAP_INFO;
5981
5982    #[inline]
5983    fn s_type(&self) -> StructureType {
5984        self.s_type
5985    }
5986
5987    #[inline]
5988    fn next(&self) -> *const c_void {
5989        self.next
5990    }
5991}
5992
5993unsafe impl InputChainStruct for MemoryMapPlacedInfoEXT {
5994    const TYPE: StructureType = StructureType::MEMORY_MAP_PLACED_INFO_EXT;
5995
5996    #[inline]
5997    fn s_type(&self) -> StructureType {
5998        self.s_type
5999    }
6000
6001    #[inline]
6002    fn next(&self) -> *const c_void {
6003        self.next
6004    }
6005}
6006
6007unsafe impl InputChainStruct for MemoryMetalHandlePropertiesEXT {
6008    const TYPE: StructureType = StructureType::MEMORY_METAL_HANDLE_PROPERTIES_EXT;
6009
6010    #[inline]
6011    fn s_type(&self) -> StructureType {
6012        self.s_type
6013    }
6014
6015    #[inline]
6016    fn next(&self) -> *const c_void {
6017        self.next
6018    }
6019}
6020
6021unsafe impl OutputChainStruct for MemoryMetalHandlePropertiesEXT {
6022    #[inline]
6023    fn next_mut(&self) -> *mut c_void {
6024        self.next
6025    }
6026}
6027
6028unsafe impl InputChainStruct for MemoryOpaqueCaptureAddressAllocateInfo {
6029    const TYPE: StructureType = StructureType::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
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 MemoryPriorityAllocateInfoEXT {
6043    const TYPE: StructureType = StructureType::MEMORY_PRIORITY_ALLOCATE_INFO_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 InputChainStruct for MemoryRequirements2 {
6057    const TYPE: StructureType = StructureType::MEMORY_REQUIREMENTS_2;
6058
6059    #[inline]
6060    fn s_type(&self) -> StructureType {
6061        self.s_type
6062    }
6063
6064    #[inline]
6065    fn next(&self) -> *const c_void {
6066        self.next
6067    }
6068}
6069
6070unsafe impl OutputChainStruct for MemoryRequirements2 {
6071    #[inline]
6072    fn next_mut(&self) -> *mut c_void {
6073        self.next
6074    }
6075}
6076
6077unsafe impl InputChainStruct for MemorySciBufPropertiesNV {
6078    const TYPE: StructureType = StructureType::MEMORY_SCI_BUF_PROPERTIES_NV;
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 MemoryToImageCopy {
6092    const TYPE: StructureType = StructureType::MEMORY_TO_IMAGE_COPY;
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 InputChainStruct for MemoryUnmapInfo {
6106    const TYPE: StructureType = StructureType::MEMORY_UNMAP_INFO;
6107
6108    #[inline]
6109    fn s_type(&self) -> StructureType {
6110        self.s_type
6111    }
6112
6113    #[inline]
6114    fn next(&self) -> *const c_void {
6115        self.next
6116    }
6117}
6118
6119unsafe impl InputChainStruct for MemoryWin32HandlePropertiesKHR {
6120    const TYPE: StructureType = StructureType::MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
6121
6122    #[inline]
6123    fn s_type(&self) -> StructureType {
6124        self.s_type
6125    }
6126
6127    #[inline]
6128    fn next(&self) -> *const c_void {
6129        self.next
6130    }
6131}
6132
6133unsafe impl OutputChainStruct for MemoryWin32HandlePropertiesKHR {
6134    #[inline]
6135    fn next_mut(&self) -> *mut c_void {
6136        self.next
6137    }
6138}
6139
6140unsafe impl InputChainStruct for MemoryZirconHandlePropertiesFUCHSIA {
6141    const TYPE: StructureType = StructureType::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
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 MemoryZirconHandlePropertiesFUCHSIA {
6155    #[inline]
6156    fn next_mut(&self) -> *mut c_void {
6157        self.next
6158    }
6159}
6160
6161unsafe impl InputChainStruct for MetalSurfaceCreateInfoEXT {
6162    const TYPE: StructureType = StructureType::METAL_SURFACE_CREATE_INFO_EXT;
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 MicromapBuildInfoEXT {
6176    const TYPE: StructureType = StructureType::MICROMAP_BUILD_INFO_EXT;
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 MicromapBuildSizesInfoEXT {
6190    const TYPE: StructureType = StructureType::MICROMAP_BUILD_SIZES_INFO_EXT;
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 MicromapCreateInfoEXT {
6204    const TYPE: StructureType = StructureType::MICROMAP_CREATE_INFO_EXT;
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 InputChainStruct for MicromapVersionInfoEXT {
6218    const TYPE: StructureType = StructureType::MICROMAP_VERSION_INFO_EXT;
6219
6220    #[inline]
6221    fn s_type(&self) -> StructureType {
6222        self.s_type
6223    }
6224
6225    #[inline]
6226    fn next(&self) -> *const c_void {
6227        self.next
6228    }
6229}
6230
6231unsafe impl InputChainStruct for MultisamplePropertiesEXT {
6232    const TYPE: StructureType = StructureType::MULTISAMPLE_PROPERTIES_EXT;
6233
6234    #[inline]
6235    fn s_type(&self) -> StructureType {
6236        self.s_type
6237    }
6238
6239    #[inline]
6240    fn next(&self) -> *const c_void {
6241        self.next
6242    }
6243}
6244
6245unsafe impl OutputChainStruct for MultisamplePropertiesEXT {
6246    #[inline]
6247    fn next_mut(&self) -> *mut c_void {
6248        self.next
6249    }
6250}
6251
6252unsafe impl InputChainStruct for MultisampledRenderToSingleSampledInfoEXT {
6253    const TYPE: StructureType = StructureType::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT;
6254
6255    #[inline]
6256    fn s_type(&self) -> StructureType {
6257        self.s_type
6258    }
6259
6260    #[inline]
6261    fn next(&self) -> *const c_void {
6262        self.next
6263    }
6264}
6265
6266unsafe impl InputChainStruct for MultiviewPerViewAttributesInfoNVX {
6267    const TYPE: StructureType = StructureType::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX;
6268
6269    #[inline]
6270    fn s_type(&self) -> StructureType {
6271        self.s_type
6272    }
6273
6274    #[inline]
6275    fn next(&self) -> *const c_void {
6276        self.next
6277    }
6278}
6279
6280unsafe impl InputChainStruct for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
6281    const TYPE: StructureType =
6282        StructureType::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM;
6283
6284    #[inline]
6285    fn s_type(&self) -> StructureType {
6286        self.s_type
6287    }
6288
6289    #[inline]
6290    fn next(&self) -> *const c_void {
6291        self.next
6292    }
6293}
6294
6295unsafe impl InputChainStruct for MutableDescriptorTypeCreateInfoEXT {
6296    const TYPE: StructureType = StructureType::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT;
6297
6298    #[inline]
6299    fn s_type(&self) -> StructureType {
6300        self.s_type
6301    }
6302
6303    #[inline]
6304    fn next(&self) -> *const c_void {
6305        self.next
6306    }
6307}
6308
6309unsafe impl InputChainStruct for NativeBufferFormatPropertiesOHOS {
6310    const TYPE: StructureType = StructureType::NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS;
6311
6312    #[inline]
6313    fn s_type(&self) -> StructureType {
6314        self.s_type
6315    }
6316
6317    #[inline]
6318    fn next(&self) -> *const c_void {
6319        self.next
6320    }
6321}
6322
6323unsafe impl OutputChainStruct for NativeBufferFormatPropertiesOHOS {
6324    #[inline]
6325    fn next_mut(&self) -> *mut c_void {
6326        self.next
6327    }
6328}
6329
6330unsafe impl InputChainStruct for NativeBufferPropertiesOHOS {
6331    const TYPE: StructureType = StructureType::NATIVE_BUFFER_PROPERTIES_OHOS;
6332
6333    #[inline]
6334    fn s_type(&self) -> StructureType {
6335        self.s_type
6336    }
6337
6338    #[inline]
6339    fn next(&self) -> *const c_void {
6340        self.next
6341    }
6342}
6343
6344unsafe impl OutputChainStruct for NativeBufferPropertiesOHOS {
6345    #[inline]
6346    fn next_mut(&self) -> *mut c_void {
6347        self.next
6348    }
6349}
6350
6351unsafe impl InputChainStruct for NativeBufferUsageOHOS {
6352    const TYPE: StructureType = StructureType::NATIVE_BUFFER_USAGE_OHOS;
6353
6354    #[inline]
6355    fn s_type(&self) -> StructureType {
6356        self.s_type
6357    }
6358
6359    #[inline]
6360    fn next(&self) -> *const c_void {
6361        self.next
6362    }
6363}
6364
6365unsafe impl OutputChainStruct for NativeBufferUsageOHOS {
6366    #[inline]
6367    fn next_mut(&self) -> *mut c_void {
6368        self.next
6369    }
6370}
6371
6372unsafe impl InputChainStruct for OpaqueCaptureDescriptorDataCreateInfoEXT {
6373    const TYPE: StructureType = StructureType::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT;
6374
6375    #[inline]
6376    fn s_type(&self) -> StructureType {
6377        self.s_type
6378    }
6379
6380    #[inline]
6381    fn next(&self) -> *const c_void {
6382        self.next
6383    }
6384}
6385
6386unsafe impl InputChainStruct for OpticalFlowExecuteInfoNV {
6387    const TYPE: StructureType = StructureType::OPTICAL_FLOW_EXECUTE_INFO_NV;
6388
6389    #[inline]
6390    fn s_type(&self) -> StructureType {
6391        self.s_type
6392    }
6393
6394    #[inline]
6395    fn next(&self) -> *const c_void {
6396        self.next
6397    }
6398}
6399
6400unsafe impl OutputChainStruct for OpticalFlowExecuteInfoNV {
6401    #[inline]
6402    fn next_mut(&self) -> *mut c_void {
6403        self.next
6404    }
6405}
6406
6407unsafe impl InputChainStruct for OpticalFlowImageFormatInfoNV {
6408    const TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV;
6409
6410    #[inline]
6411    fn s_type(&self) -> StructureType {
6412        self.s_type
6413    }
6414
6415    #[inline]
6416    fn next(&self) -> *const c_void {
6417        self.next
6418    }
6419}
6420
6421unsafe impl InputChainStruct for OpticalFlowImageFormatPropertiesNV {
6422    const TYPE: StructureType = StructureType::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV;
6423
6424    #[inline]
6425    fn s_type(&self) -> StructureType {
6426        self.s_type
6427    }
6428
6429    #[inline]
6430    fn next(&self) -> *const c_void {
6431        self.next
6432    }
6433}
6434
6435unsafe impl OutputChainStruct for OpticalFlowImageFormatPropertiesNV {
6436    #[inline]
6437    fn next_mut(&self) -> *mut c_void {
6438        self.next
6439    }
6440}
6441
6442unsafe impl InputChainStruct for OpticalFlowSessionCreateInfoNV {
6443    const TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_INFO_NV;
6444
6445    #[inline]
6446    fn s_type(&self) -> StructureType {
6447        self.s_type
6448    }
6449
6450    #[inline]
6451    fn next(&self) -> *const c_void {
6452        self.next
6453    }
6454}
6455
6456unsafe impl OutputChainStruct for OpticalFlowSessionCreateInfoNV {
6457    #[inline]
6458    fn next_mut(&self) -> *mut c_void {
6459        self.next
6460    }
6461}
6462
6463unsafe impl InputChainStruct for OpticalFlowSessionCreatePrivateDataInfoNV {
6464    const TYPE: StructureType = StructureType::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV;
6465
6466    #[inline]
6467    fn s_type(&self) -> StructureType {
6468        self.s_type
6469    }
6470
6471    #[inline]
6472    fn next(&self) -> *const c_void {
6473        self.next
6474    }
6475}
6476
6477unsafe impl OutputChainStruct for OpticalFlowSessionCreatePrivateDataInfoNV {
6478    #[inline]
6479    fn next_mut(&self) -> *mut c_void {
6480        self.next
6481    }
6482}
6483
6484unsafe impl InputChainStruct for OutOfBandQueueTypeInfoNV {
6485    const TYPE: StructureType = StructureType::OUT_OF_BAND_QUEUE_TYPE_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 InputChainStruct for PartitionedAccelerationStructureFlagsNV {
6499    const TYPE: StructureType = StructureType::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV;
6500
6501    #[inline]
6502    fn s_type(&self) -> StructureType {
6503        self.s_type
6504    }
6505
6506    #[inline]
6507    fn next(&self) -> *const c_void {
6508        self.next
6509    }
6510}
6511
6512unsafe impl OutputChainStruct for PartitionedAccelerationStructureFlagsNV {
6513    #[inline]
6514    fn next_mut(&self) -> *mut c_void {
6515        self.next
6516    }
6517}
6518
6519unsafe impl InputChainStruct for PartitionedAccelerationStructureInstancesInputNV {
6520    const TYPE: StructureType =
6521        StructureType::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV;
6522
6523    #[inline]
6524    fn s_type(&self) -> StructureType {
6525        self.s_type
6526    }
6527
6528    #[inline]
6529    fn next(&self) -> *const c_void {
6530        self.next
6531    }
6532}
6533
6534unsafe impl OutputChainStruct for PartitionedAccelerationStructureInstancesInputNV {
6535    #[inline]
6536    fn next_mut(&self) -> *mut c_void {
6537        self.next
6538    }
6539}
6540
6541unsafe impl InputChainStruct for PastPresentationTimingEXT {
6542    const TYPE: StructureType = StructureType::PAST_PRESENTATION_TIMING_EXT;
6543
6544    #[inline]
6545    fn s_type(&self) -> StructureType {
6546        self.s_type
6547    }
6548
6549    #[inline]
6550    fn next(&self) -> *const c_void {
6551        self.next
6552    }
6553}
6554
6555unsafe impl OutputChainStruct for PastPresentationTimingEXT {
6556    #[inline]
6557    fn next_mut(&self) -> *mut c_void {
6558        self.next
6559    }
6560}
6561
6562unsafe impl InputChainStruct for PastPresentationTimingInfoEXT {
6563    const TYPE: StructureType = StructureType::PAST_PRESENTATION_TIMING_INFO_EXT;
6564
6565    #[inline]
6566    fn s_type(&self) -> StructureType {
6567        self.s_type
6568    }
6569
6570    #[inline]
6571    fn next(&self) -> *const c_void {
6572        self.next
6573    }
6574}
6575
6576unsafe impl InputChainStruct for PastPresentationTimingPropertiesEXT {
6577    const TYPE: StructureType = StructureType::PAST_PRESENTATION_TIMING_PROPERTIES_EXT;
6578
6579    #[inline]
6580    fn s_type(&self) -> StructureType {
6581        self.s_type
6582    }
6583
6584    #[inline]
6585    fn next(&self) -> *const c_void {
6586        self.next
6587    }
6588}
6589
6590unsafe impl OutputChainStruct for PastPresentationTimingPropertiesEXT {
6591    #[inline]
6592    fn next_mut(&self) -> *mut c_void {
6593        self.next
6594    }
6595}
6596
6597unsafe impl InputChainStruct for PerTileBeginInfoQCOM {
6598    const TYPE: StructureType = StructureType::PER_TILE_BEGIN_INFO_QCOM;
6599
6600    #[inline]
6601    fn s_type(&self) -> StructureType {
6602        self.s_type
6603    }
6604
6605    #[inline]
6606    fn next(&self) -> *const c_void {
6607        self.next
6608    }
6609}
6610
6611unsafe impl InputChainStruct for PerTileEndInfoQCOM {
6612    const TYPE: StructureType = StructureType::PER_TILE_END_INFO_QCOM;
6613
6614    #[inline]
6615    fn s_type(&self) -> StructureType {
6616        self.s_type
6617    }
6618
6619    #[inline]
6620    fn next(&self) -> *const c_void {
6621        self.next
6622    }
6623}
6624
6625unsafe impl InputChainStruct for PerformanceConfigurationAcquireInfoINTEL {
6626    const TYPE: StructureType = StructureType::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
6627
6628    #[inline]
6629    fn s_type(&self) -> StructureType {
6630        self.s_type
6631    }
6632
6633    #[inline]
6634    fn next(&self) -> *const c_void {
6635        self.next
6636    }
6637}
6638
6639unsafe impl InputChainStruct for PerformanceCounterARM {
6640    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_ARM;
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 PerformanceCounterARM {
6654    #[inline]
6655    fn next_mut(&self) -> *mut c_void {
6656        self.next
6657    }
6658}
6659
6660unsafe impl InputChainStruct for PerformanceCounterDescriptionARM {
6661    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_DESCRIPTION_ARM;
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 OutputChainStruct for PerformanceCounterDescriptionARM {
6675    #[inline]
6676    fn next_mut(&self) -> *mut c_void {
6677        self.next
6678    }
6679}
6680
6681unsafe impl InputChainStruct for PerformanceCounterDescriptionKHR {
6682    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_DESCRIPTION_KHR;
6683
6684    #[inline]
6685    fn s_type(&self) -> StructureType {
6686        self.s_type
6687    }
6688
6689    #[inline]
6690    fn next(&self) -> *const c_void {
6691        self.next
6692    }
6693}
6694
6695unsafe impl OutputChainStruct for PerformanceCounterDescriptionKHR {
6696    #[inline]
6697    fn next_mut(&self) -> *mut c_void {
6698        self.next
6699    }
6700}
6701
6702unsafe impl InputChainStruct for PerformanceCounterKHR {
6703    const TYPE: StructureType = StructureType::PERFORMANCE_COUNTER_KHR;
6704
6705    #[inline]
6706    fn s_type(&self) -> StructureType {
6707        self.s_type
6708    }
6709
6710    #[inline]
6711    fn next(&self) -> *const c_void {
6712        self.next
6713    }
6714}
6715
6716unsafe impl OutputChainStruct for PerformanceCounterKHR {
6717    #[inline]
6718    fn next_mut(&self) -> *mut c_void {
6719        self.next
6720    }
6721}
6722
6723unsafe impl InputChainStruct for PerformanceMarkerInfoINTEL {
6724    const TYPE: StructureType = StructureType::PERFORMANCE_MARKER_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 PerformanceOverrideInfoINTEL {
6738    const TYPE: StructureType = StructureType::PERFORMANCE_OVERRIDE_INFO_INTEL;
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 InputChainStruct for PerformanceQueryReservationInfoKHR {
6752    const TYPE: StructureType = StructureType::PERFORMANCE_QUERY_RESERVATION_INFO_KHR;
6753
6754    #[inline]
6755    fn s_type(&self) -> StructureType {
6756        self.s_type
6757    }
6758
6759    #[inline]
6760    fn next(&self) -> *const c_void {
6761        self.next
6762    }
6763}
6764
6765unsafe impl InputChainStruct for PerformanceQuerySubmitInfoKHR {
6766    const TYPE: StructureType = StructureType::PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
6767
6768    #[inline]
6769    fn s_type(&self) -> StructureType {
6770        self.s_type
6771    }
6772
6773    #[inline]
6774    fn next(&self) -> *const c_void {
6775        self.next
6776    }
6777}
6778
6779unsafe impl InputChainStruct for PerformanceStreamMarkerInfoINTEL {
6780    const TYPE: StructureType = StructureType::PERFORMANCE_STREAM_MARKER_INFO_INTEL;
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 InputChainStruct for PhysicalDevice16BitStorageFeatures {
6794    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
6795
6796    #[inline]
6797    fn s_type(&self) -> StructureType {
6798        self.s_type
6799    }
6800
6801    #[inline]
6802    fn next(&self) -> *const c_void {
6803        self.next
6804    }
6805}
6806
6807unsafe impl OutputChainStruct for PhysicalDevice16BitStorageFeatures {
6808    #[inline]
6809    fn next_mut(&self) -> *mut c_void {
6810        self.next
6811    }
6812}
6813
6814unsafe impl InputChainStruct for PhysicalDevice4444FormatsFeaturesEXT {
6815    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
6816
6817    #[inline]
6818    fn s_type(&self) -> StructureType {
6819        self.s_type
6820    }
6821
6822    #[inline]
6823    fn next(&self) -> *const c_void {
6824        self.next
6825    }
6826}
6827
6828unsafe impl OutputChainStruct for PhysicalDevice4444FormatsFeaturesEXT {
6829    #[inline]
6830    fn next_mut(&self) -> *mut c_void {
6831        self.next
6832    }
6833}
6834
6835unsafe impl InputChainStruct for PhysicalDevice8BitStorageFeatures {
6836    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
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 OutputChainStruct for PhysicalDevice8BitStorageFeatures {
6850    #[inline]
6851    fn next_mut(&self) -> *mut c_void {
6852        self.next
6853    }
6854}
6855
6856unsafe impl InputChainStruct for PhysicalDeviceASTCDecodeFeaturesEXT {
6857    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
6858
6859    #[inline]
6860    fn s_type(&self) -> StructureType {
6861        self.s_type
6862    }
6863
6864    #[inline]
6865    fn next(&self) -> *const c_void {
6866        self.next
6867    }
6868}
6869
6870unsafe impl OutputChainStruct for PhysicalDeviceASTCDecodeFeaturesEXT {
6871    #[inline]
6872    fn next_mut(&self) -> *mut c_void {
6873        self.next
6874    }
6875}
6876
6877unsafe impl InputChainStruct for PhysicalDeviceAccelerationStructureFeaturesKHR {
6878    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
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 OutputChainStruct for PhysicalDeviceAccelerationStructureFeaturesKHR {
6892    #[inline]
6893    fn next_mut(&self) -> *mut c_void {
6894        self.next
6895    }
6896}
6897
6898unsafe impl InputChainStruct for PhysicalDeviceAccelerationStructurePropertiesKHR {
6899    const TYPE: StructureType =
6900        StructureType::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
6901
6902    #[inline]
6903    fn s_type(&self) -> StructureType {
6904        self.s_type
6905    }
6906
6907    #[inline]
6908    fn next(&self) -> *const c_void {
6909        self.next
6910    }
6911}
6912
6913unsafe impl OutputChainStruct for PhysicalDeviceAccelerationStructurePropertiesKHR {
6914    #[inline]
6915    fn next_mut(&self) -> *mut c_void {
6916        self.next
6917    }
6918}
6919
6920unsafe impl InputChainStruct for PhysicalDeviceAddressBindingReportFeaturesEXT {
6921    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT;
6922
6923    #[inline]
6924    fn s_type(&self) -> StructureType {
6925        self.s_type
6926    }
6927
6928    #[inline]
6929    fn next(&self) -> *const c_void {
6930        self.next
6931    }
6932}
6933
6934unsafe impl OutputChainStruct for PhysicalDeviceAddressBindingReportFeaturesEXT {
6935    #[inline]
6936    fn next_mut(&self) -> *mut c_void {
6937        self.next
6938    }
6939}
6940
6941unsafe impl InputChainStruct for PhysicalDeviceAmigoProfilingFeaturesSEC {
6942    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC;
6943
6944    #[inline]
6945    fn s_type(&self) -> StructureType {
6946        self.s_type
6947    }
6948
6949    #[inline]
6950    fn next(&self) -> *const c_void {
6951        self.next
6952    }
6953}
6954
6955unsafe impl OutputChainStruct for PhysicalDeviceAmigoProfilingFeaturesSEC {
6956    #[inline]
6957    fn next_mut(&self) -> *mut c_void {
6958        self.next
6959    }
6960}
6961
6962unsafe impl InputChainStruct for PhysicalDeviceAntiLagFeaturesAMD {
6963    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD;
6964
6965    #[inline]
6966    fn s_type(&self) -> StructureType {
6967        self.s_type
6968    }
6969
6970    #[inline]
6971    fn next(&self) -> *const c_void {
6972        self.next
6973    }
6974}
6975
6976unsafe impl OutputChainStruct for PhysicalDeviceAntiLagFeaturesAMD {
6977    #[inline]
6978    fn next_mut(&self) -> *mut c_void {
6979        self.next
6980    }
6981}
6982
6983unsafe impl InputChainStruct for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
6984    const TYPE: StructureType =
6985        StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT;
6986
6987    #[inline]
6988    fn s_type(&self) -> StructureType {
6989        self.s_type
6990    }
6991
6992    #[inline]
6993    fn next(&self) -> *const c_void {
6994        self.next
6995    }
6996}
6997
6998unsafe impl OutputChainStruct for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
6999    #[inline]
7000    fn next_mut(&self) -> *mut c_void {
7001        self.next
7002    }
7003}
7004
7005unsafe impl InputChainStruct for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
7006    const TYPE: StructureType =
7007        StructureType::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT;
7008
7009    #[inline]
7010    fn s_type(&self) -> StructureType {
7011        self.s_type
7012    }
7013
7014    #[inline]
7015    fn next(&self) -> *const c_void {
7016        self.next
7017    }
7018}
7019
7020unsafe impl OutputChainStruct for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
7021    #[inline]
7022    fn next_mut(&self) -> *mut c_void {
7023        self.next
7024    }
7025}
7026
7027unsafe impl InputChainStruct for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7028    const TYPE: StructureType =
7029        StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
7030
7031    #[inline]
7032    fn s_type(&self) -> StructureType {
7033        self.s_type
7034    }
7035
7036    #[inline]
7037    fn next(&self) -> *const c_void {
7038        self.next
7039    }
7040}
7041
7042unsafe impl OutputChainStruct for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7043    #[inline]
7044    fn next_mut(&self) -> *mut c_void {
7045        self.next
7046    }
7047}
7048
7049unsafe impl InputChainStruct for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7050    const TYPE: StructureType =
7051        StructureType::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
7052
7053    #[inline]
7054    fn s_type(&self) -> StructureType {
7055        self.s_type
7056    }
7057
7058    #[inline]
7059    fn next(&self) -> *const c_void {
7060        self.next
7061    }
7062}
7063
7064unsafe impl OutputChainStruct for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7065    #[inline]
7066    fn next_mut(&self) -> *mut c_void {
7067        self.next
7068    }
7069}
7070
7071unsafe impl InputChainStruct for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
7072    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT;
7073
7074    #[inline]
7075    fn s_type(&self) -> StructureType {
7076        self.s_type
7077    }
7078
7079    #[inline]
7080    fn next(&self) -> *const c_void {
7081        self.next
7082    }
7083}
7084
7085unsafe impl OutputChainStruct for PhysicalDeviceBorderColorSwizzleFeaturesEXT {
7086    #[inline]
7087    fn next_mut(&self) -> *mut c_void {
7088        self.next
7089    }
7090}
7091
7092unsafe impl InputChainStruct for PhysicalDeviceBufferDeviceAddressFeatures {
7093    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
7094
7095    #[inline]
7096    fn s_type(&self) -> StructureType {
7097        self.s_type
7098    }
7099
7100    #[inline]
7101    fn next(&self) -> *const c_void {
7102        self.next
7103    }
7104}
7105
7106unsafe impl OutputChainStruct for PhysicalDeviceBufferDeviceAddressFeatures {
7107    #[inline]
7108    fn next_mut(&self) -> *mut c_void {
7109        self.next
7110    }
7111}
7112
7113unsafe impl InputChainStruct for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
7114    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
7115
7116    #[inline]
7117    fn s_type(&self) -> StructureType {
7118        self.s_type
7119    }
7120
7121    #[inline]
7122    fn next(&self) -> *const c_void {
7123        self.next
7124    }
7125}
7126
7127unsafe impl OutputChainStruct for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
7128    #[inline]
7129    fn next_mut(&self) -> *mut c_void {
7130        self.next
7131    }
7132}
7133
7134unsafe impl InputChainStruct for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
7135    const TYPE: StructureType =
7136        StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV;
7137
7138    #[inline]
7139    fn s_type(&self) -> StructureType {
7140        self.s_type
7141    }
7142
7143    #[inline]
7144    fn next(&self) -> *const c_void {
7145        self.next
7146    }
7147}
7148
7149unsafe impl OutputChainStruct for PhysicalDeviceClusterAccelerationStructureFeaturesNV {
7150    #[inline]
7151    fn next_mut(&self) -> *mut c_void {
7152        self.next
7153    }
7154}
7155
7156unsafe impl InputChainStruct for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
7157    const TYPE: StructureType =
7158        StructureType::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV;
7159
7160    #[inline]
7161    fn s_type(&self) -> StructureType {
7162        self.s_type
7163    }
7164
7165    #[inline]
7166    fn next(&self) -> *const c_void {
7167        self.next
7168    }
7169}
7170
7171unsafe impl OutputChainStruct for PhysicalDeviceClusterAccelerationStructurePropertiesNV {
7172    #[inline]
7173    fn next_mut(&self) -> *mut c_void {
7174        self.next
7175    }
7176}
7177
7178unsafe impl InputChainStruct for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
7179    const TYPE: StructureType =
7180        StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI;
7181
7182    #[inline]
7183    fn s_type(&self) -> StructureType {
7184        self.s_type
7185    }
7186
7187    #[inline]
7188    fn next(&self) -> *const c_void {
7189        self.next
7190    }
7191}
7192
7193unsafe impl OutputChainStruct for PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
7194    #[inline]
7195    fn next_mut(&self) -> *mut c_void {
7196        self.next
7197    }
7198}
7199
7200unsafe impl InputChainStruct for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
7201    const TYPE: StructureType =
7202        StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI;
7203
7204    #[inline]
7205    fn s_type(&self) -> StructureType {
7206        self.s_type
7207    }
7208
7209    #[inline]
7210    fn next(&self) -> *const c_void {
7211        self.next
7212    }
7213}
7214
7215unsafe impl OutputChainStruct for PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
7216    #[inline]
7217    fn next_mut(&self) -> *mut c_void {
7218        self.next
7219    }
7220}
7221
7222unsafe impl InputChainStruct for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
7223    const TYPE: StructureType =
7224        StructureType::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI;
7225
7226    #[inline]
7227    fn s_type(&self) -> StructureType {
7228        self.s_type
7229    }
7230
7231    #[inline]
7232    fn next(&self) -> *const c_void {
7233        self.next
7234    }
7235}
7236
7237unsafe impl OutputChainStruct for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
7238    #[inline]
7239    fn next_mut(&self) -> *mut c_void {
7240        self.next
7241    }
7242}
7243
7244unsafe impl InputChainStruct for PhysicalDeviceCoherentMemoryFeaturesAMD {
7245    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
7246
7247    #[inline]
7248    fn s_type(&self) -> StructureType {
7249        self.s_type
7250    }
7251
7252    #[inline]
7253    fn next(&self) -> *const c_void {
7254        self.next
7255    }
7256}
7257
7258unsafe impl OutputChainStruct for PhysicalDeviceCoherentMemoryFeaturesAMD {
7259    #[inline]
7260    fn next_mut(&self) -> *mut c_void {
7261        self.next
7262    }
7263}
7264
7265unsafe impl InputChainStruct for PhysicalDeviceColorWriteEnableFeaturesEXT {
7266    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT;
7267
7268    #[inline]
7269    fn s_type(&self) -> StructureType {
7270        self.s_type
7271    }
7272
7273    #[inline]
7274    fn next(&self) -> *const c_void {
7275        self.next
7276    }
7277}
7278
7279unsafe impl OutputChainStruct for PhysicalDeviceColorWriteEnableFeaturesEXT {
7280    #[inline]
7281    fn next_mut(&self) -> *mut c_void {
7282        self.next
7283    }
7284}
7285
7286unsafe impl InputChainStruct for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
7287    const TYPE: StructureType =
7288        StructureType::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV;
7289
7290    #[inline]
7291    fn s_type(&self) -> StructureType {
7292        self.s_type
7293    }
7294
7295    #[inline]
7296    fn next(&self) -> *const c_void {
7297        self.next
7298    }
7299}
7300
7301unsafe impl OutputChainStruct for PhysicalDeviceCommandBufferInheritanceFeaturesNV {
7302    #[inline]
7303    fn next_mut(&self) -> *mut c_void {
7304        self.next
7305    }
7306}
7307
7308unsafe impl InputChainStruct for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
7309    const TYPE: StructureType =
7310        StructureType::PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV;
7311
7312    #[inline]
7313    fn s_type(&self) -> StructureType {
7314        self.s_type
7315    }
7316
7317    #[inline]
7318    fn next(&self) -> *const c_void {
7319        self.next
7320    }
7321}
7322
7323unsafe impl OutputChainStruct for PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
7324    #[inline]
7325    fn next_mut(&self) -> *mut c_void {
7326        self.next
7327    }
7328}
7329
7330unsafe impl InputChainStruct for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
7331    const TYPE: StructureType =
7332        StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR;
7333
7334    #[inline]
7335    fn s_type(&self) -> StructureType {
7336        self.s_type
7337    }
7338
7339    #[inline]
7340    fn next(&self) -> *const c_void {
7341        self.next
7342    }
7343}
7344
7345unsafe impl OutputChainStruct for PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
7346    #[inline]
7347    fn next_mut(&self) -> *mut c_void {
7348        self.next
7349    }
7350}
7351
7352unsafe impl InputChainStruct for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
7353    const TYPE: StructureType =
7354        StructureType::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR;
7355
7356    #[inline]
7357    fn s_type(&self) -> StructureType {
7358        self.s_type
7359    }
7360
7361    #[inline]
7362    fn next(&self) -> *const c_void {
7363        self.next
7364    }
7365}
7366
7367unsafe impl OutputChainStruct for PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
7368    #[inline]
7369    fn next_mut(&self) -> *mut c_void {
7370        self.next
7371    }
7372}
7373
7374unsafe impl InputChainStruct for PhysicalDeviceConditionalRenderingFeaturesEXT {
7375    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
7376
7377    #[inline]
7378    fn s_type(&self) -> StructureType {
7379        self.s_type
7380    }
7381
7382    #[inline]
7383    fn next(&self) -> *const c_void {
7384        self.next
7385    }
7386}
7387
7388unsafe impl OutputChainStruct for PhysicalDeviceConditionalRenderingFeaturesEXT {
7389    #[inline]
7390    fn next_mut(&self) -> *mut c_void {
7391        self.next
7392    }
7393}
7394
7395unsafe impl InputChainStruct for PhysicalDeviceConservativeRasterizationPropertiesEXT {
7396    const TYPE: StructureType =
7397        StructureType::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
7398
7399    #[inline]
7400    fn s_type(&self) -> StructureType {
7401        self.s_type
7402    }
7403
7404    #[inline]
7405    fn next(&self) -> *const c_void {
7406        self.next
7407    }
7408}
7409
7410unsafe impl OutputChainStruct for PhysicalDeviceConservativeRasterizationPropertiesEXT {
7411    #[inline]
7412    fn next_mut(&self) -> *mut c_void {
7413        self.next
7414    }
7415}
7416
7417unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrix2FeaturesNV {
7418    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;
7419
7420    #[inline]
7421    fn s_type(&self) -> StructureType {
7422        self.s_type
7423    }
7424
7425    #[inline]
7426    fn next(&self) -> *const c_void {
7427        self.next
7428    }
7429}
7430
7431unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrix2FeaturesNV {
7432    #[inline]
7433    fn next_mut(&self) -> *mut c_void {
7434        self.next
7435    }
7436}
7437
7438unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrix2PropertiesNV {
7439    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV;
7440
7441    #[inline]
7442    fn s_type(&self) -> StructureType {
7443        self.s_type
7444    }
7445
7446    #[inline]
7447    fn next(&self) -> *const c_void {
7448        self.next
7449    }
7450}
7451
7452unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrix2PropertiesNV {
7453    #[inline]
7454    fn next_mut(&self) -> *mut c_void {
7455        self.next
7456    }
7457}
7458
7459unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesKHR {
7460    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR;
7461
7462    #[inline]
7463    fn s_type(&self) -> StructureType {
7464        self.s_type
7465    }
7466
7467    #[inline]
7468    fn next(&self) -> *const c_void {
7469        self.next
7470    }
7471}
7472
7473unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesKHR {
7474    #[inline]
7475    fn next_mut(&self) -> *mut c_void {
7476        self.next
7477    }
7478}
7479
7480unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesNV {
7481    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
7482
7483    #[inline]
7484    fn s_type(&self) -> StructureType {
7485        self.s_type
7486    }
7487
7488    #[inline]
7489    fn next(&self) -> *const c_void {
7490        self.next
7491    }
7492}
7493
7494unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixFeaturesNV {
7495    #[inline]
7496    fn next_mut(&self) -> *mut c_void {
7497        self.next
7498    }
7499}
7500
7501unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesKHR {
7502    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR;
7503
7504    #[inline]
7505    fn s_type(&self) -> StructureType {
7506        self.s_type
7507    }
7508
7509    #[inline]
7510    fn next(&self) -> *const c_void {
7511        self.next
7512    }
7513}
7514
7515unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesKHR {
7516    #[inline]
7517    fn next_mut(&self) -> *mut c_void {
7518        self.next
7519    }
7520}
7521
7522unsafe impl InputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesNV {
7523    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
7524
7525    #[inline]
7526    fn s_type(&self) -> StructureType {
7527        self.s_type
7528    }
7529
7530    #[inline]
7531    fn next(&self) -> *const c_void {
7532        self.next
7533    }
7534}
7535
7536unsafe impl OutputChainStruct for PhysicalDeviceCooperativeMatrixPropertiesNV {
7537    #[inline]
7538    fn next_mut(&self) -> *mut c_void {
7539        self.next
7540    }
7541}
7542
7543unsafe impl InputChainStruct for PhysicalDeviceCooperativeVectorFeaturesNV {
7544    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV;
7545
7546    #[inline]
7547    fn s_type(&self) -> StructureType {
7548        self.s_type
7549    }
7550
7551    #[inline]
7552    fn next(&self) -> *const c_void {
7553        self.next
7554    }
7555}
7556
7557unsafe impl OutputChainStruct for PhysicalDeviceCooperativeVectorFeaturesNV {
7558    #[inline]
7559    fn next_mut(&self) -> *mut c_void {
7560        self.next
7561    }
7562}
7563
7564unsafe impl InputChainStruct for PhysicalDeviceCooperativeVectorPropertiesNV {
7565    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV;
7566
7567    #[inline]
7568    fn s_type(&self) -> StructureType {
7569        self.s_type
7570    }
7571
7572    #[inline]
7573    fn next(&self) -> *const c_void {
7574        self.next
7575    }
7576}
7577
7578unsafe impl OutputChainStruct for PhysicalDeviceCooperativeVectorPropertiesNV {
7579    #[inline]
7580    fn next_mut(&self) -> *mut c_void {
7581        self.next
7582    }
7583}
7584
7585unsafe impl InputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
7586    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR;
7587
7588    #[inline]
7589    fn s_type(&self) -> StructureType {
7590        self.s_type
7591    }
7592
7593    #[inline]
7594    fn next(&self) -> *const c_void {
7595        self.next
7596    }
7597}
7598
7599unsafe impl OutputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
7600    #[inline]
7601    fn next_mut(&self) -> *mut c_void {
7602        self.next
7603    }
7604}
7605
7606unsafe impl InputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
7607    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV;
7608
7609    #[inline]
7610    fn s_type(&self) -> StructureType {
7611        self.s_type
7612    }
7613
7614    #[inline]
7615    fn next(&self) -> *const c_void {
7616        self.next
7617    }
7618}
7619
7620unsafe impl OutputChainStruct for PhysicalDeviceCopyMemoryIndirectFeaturesNV {
7621    #[inline]
7622    fn next_mut(&self) -> *mut c_void {
7623        self.next
7624    }
7625}
7626
7627unsafe impl InputChainStruct for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
7628    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR;
7629
7630    #[inline]
7631    fn s_type(&self) -> StructureType {
7632        self.s_type
7633    }
7634
7635    #[inline]
7636    fn next(&self) -> *const c_void {
7637        self.next
7638    }
7639}
7640
7641unsafe impl OutputChainStruct for PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
7642    #[inline]
7643    fn next_mut(&self) -> *mut c_void {
7644        self.next
7645    }
7646}
7647
7648unsafe impl InputChainStruct for PhysicalDeviceCornerSampledImageFeaturesNV {
7649    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
7650
7651    #[inline]
7652    fn s_type(&self) -> StructureType {
7653        self.s_type
7654    }
7655
7656    #[inline]
7657    fn next(&self) -> *const c_void {
7658        self.next
7659    }
7660}
7661
7662unsafe impl OutputChainStruct for PhysicalDeviceCornerSampledImageFeaturesNV {
7663    #[inline]
7664    fn next_mut(&self) -> *mut c_void {
7665        self.next
7666    }
7667}
7668
7669unsafe impl InputChainStruct for PhysicalDeviceCoverageReductionModeFeaturesNV {
7670    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
7671
7672    #[inline]
7673    fn s_type(&self) -> StructureType {
7674        self.s_type
7675    }
7676
7677    #[inline]
7678    fn next(&self) -> *const c_void {
7679        self.next
7680    }
7681}
7682
7683unsafe impl OutputChainStruct for PhysicalDeviceCoverageReductionModeFeaturesNV {
7684    #[inline]
7685    fn next_mut(&self) -> *mut c_void {
7686        self.next
7687    }
7688}
7689
7690unsafe impl InputChainStruct for PhysicalDeviceCubicClampFeaturesQCOM {
7691    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM;
7692
7693    #[inline]
7694    fn s_type(&self) -> StructureType {
7695        self.s_type
7696    }
7697
7698    #[inline]
7699    fn next(&self) -> *const c_void {
7700        self.next
7701    }
7702}
7703
7704unsafe impl OutputChainStruct for PhysicalDeviceCubicClampFeaturesQCOM {
7705    #[inline]
7706    fn next_mut(&self) -> *mut c_void {
7707        self.next
7708    }
7709}
7710
7711unsafe impl InputChainStruct for PhysicalDeviceCubicWeightsFeaturesQCOM {
7712    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM;
7713
7714    #[inline]
7715    fn s_type(&self) -> StructureType {
7716        self.s_type
7717    }
7718
7719    #[inline]
7720    fn next(&self) -> *const c_void {
7721        self.next
7722    }
7723}
7724
7725unsafe impl OutputChainStruct for PhysicalDeviceCubicWeightsFeaturesQCOM {
7726    #[inline]
7727    fn next_mut(&self) -> *mut c_void {
7728        self.next
7729    }
7730}
7731
7732unsafe impl InputChainStruct for PhysicalDeviceCudaKernelLaunchFeaturesNV {
7733    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV;
7734
7735    #[inline]
7736    fn s_type(&self) -> StructureType {
7737        self.s_type
7738    }
7739
7740    #[inline]
7741    fn next(&self) -> *const c_void {
7742        self.next
7743    }
7744}
7745
7746unsafe impl OutputChainStruct for PhysicalDeviceCudaKernelLaunchFeaturesNV {
7747    #[inline]
7748    fn next_mut(&self) -> *mut c_void {
7749        self.next
7750    }
7751}
7752
7753unsafe impl InputChainStruct for PhysicalDeviceCudaKernelLaunchPropertiesNV {
7754    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV;
7755
7756    #[inline]
7757    fn s_type(&self) -> StructureType {
7758        self.s_type
7759    }
7760
7761    #[inline]
7762    fn next(&self) -> *const c_void {
7763        self.next
7764    }
7765}
7766
7767unsafe impl OutputChainStruct for PhysicalDeviceCudaKernelLaunchPropertiesNV {
7768    #[inline]
7769    fn next_mut(&self) -> *mut c_void {
7770        self.next
7771    }
7772}
7773
7774unsafe impl InputChainStruct for PhysicalDeviceCustomBorderColorFeaturesEXT {
7775    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
7776
7777    #[inline]
7778    fn s_type(&self) -> StructureType {
7779        self.s_type
7780    }
7781
7782    #[inline]
7783    fn next(&self) -> *const c_void {
7784        self.next
7785    }
7786}
7787
7788unsafe impl OutputChainStruct for PhysicalDeviceCustomBorderColorFeaturesEXT {
7789    #[inline]
7790    fn next_mut(&self) -> *mut c_void {
7791        self.next
7792    }
7793}
7794
7795unsafe impl InputChainStruct for PhysicalDeviceCustomBorderColorPropertiesEXT {
7796    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
7797
7798    #[inline]
7799    fn s_type(&self) -> StructureType {
7800        self.s_type
7801    }
7802
7803    #[inline]
7804    fn next(&self) -> *const c_void {
7805        self.next
7806    }
7807}
7808
7809unsafe impl OutputChainStruct for PhysicalDeviceCustomBorderColorPropertiesEXT {
7810    #[inline]
7811    fn next_mut(&self) -> *mut c_void {
7812        self.next
7813    }
7814}
7815
7816unsafe impl InputChainStruct for PhysicalDeviceCustomResolveFeaturesEXT {
7817    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT;
7818
7819    #[inline]
7820    fn s_type(&self) -> StructureType {
7821        self.s_type
7822    }
7823
7824    #[inline]
7825    fn next(&self) -> *const c_void {
7826        self.next
7827    }
7828}
7829
7830unsafe impl OutputChainStruct for PhysicalDeviceCustomResolveFeaturesEXT {
7831    #[inline]
7832    fn next_mut(&self) -> *mut c_void {
7833        self.next
7834    }
7835}
7836
7837unsafe impl InputChainStruct for PhysicalDeviceDataGraphFeaturesARM {
7838    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM;
7839
7840    #[inline]
7841    fn s_type(&self) -> StructureType {
7842        self.s_type
7843    }
7844
7845    #[inline]
7846    fn next(&self) -> *const c_void {
7847        self.next
7848    }
7849}
7850
7851unsafe impl OutputChainStruct for PhysicalDeviceDataGraphFeaturesARM {
7852    #[inline]
7853    fn next_mut(&self) -> *mut c_void {
7854        self.next
7855    }
7856}
7857
7858unsafe impl InputChainStruct for PhysicalDeviceDataGraphModelFeaturesQCOM {
7859    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM;
7860
7861    #[inline]
7862    fn s_type(&self) -> StructureType {
7863        self.s_type
7864    }
7865
7866    #[inline]
7867    fn next(&self) -> *const c_void {
7868        self.next
7869    }
7870}
7871
7872unsafe impl OutputChainStruct for PhysicalDeviceDataGraphModelFeaturesQCOM {
7873    #[inline]
7874    fn next_mut(&self) -> *mut c_void {
7875        self.next
7876    }
7877}
7878
7879unsafe impl InputChainStruct for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
7880    const TYPE: StructureType =
7881        StructureType::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
7882
7883    #[inline]
7884    fn s_type(&self) -> StructureType {
7885        self.s_type
7886    }
7887
7888    #[inline]
7889    fn next(&self) -> *const c_void {
7890        self.next
7891    }
7892}
7893
7894unsafe impl OutputChainStruct for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
7895    #[inline]
7896    fn next_mut(&self) -> *mut c_void {
7897        self.next
7898    }
7899}
7900
7901unsafe impl InputChainStruct for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
7902    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX;
7903
7904    #[inline]
7905    fn s_type(&self) -> StructureType {
7906        self.s_type
7907    }
7908
7909    #[inline]
7910    fn next(&self) -> *const c_void {
7911        self.next
7912    }
7913}
7914
7915unsafe impl OutputChainStruct for PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
7916    #[inline]
7917    fn next_mut(&self) -> *mut c_void {
7918        self.next
7919    }
7920}
7921
7922unsafe impl InputChainStruct for PhysicalDeviceDepthBiasControlFeaturesEXT {
7923    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT;
7924
7925    #[inline]
7926    fn s_type(&self) -> StructureType {
7927        self.s_type
7928    }
7929
7930    #[inline]
7931    fn next(&self) -> *const c_void {
7932        self.next
7933    }
7934}
7935
7936unsafe impl OutputChainStruct for PhysicalDeviceDepthBiasControlFeaturesEXT {
7937    #[inline]
7938    fn next_mut(&self) -> *mut c_void {
7939        self.next
7940    }
7941}
7942
7943unsafe impl InputChainStruct for PhysicalDeviceDepthClampControlFeaturesEXT {
7944    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT;
7945
7946    #[inline]
7947    fn s_type(&self) -> StructureType {
7948        self.s_type
7949    }
7950
7951    #[inline]
7952    fn next(&self) -> *const c_void {
7953        self.next
7954    }
7955}
7956
7957unsafe impl OutputChainStruct for PhysicalDeviceDepthClampControlFeaturesEXT {
7958    #[inline]
7959    fn next_mut(&self) -> *mut c_void {
7960        self.next
7961    }
7962}
7963
7964unsafe impl InputChainStruct for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
7965    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR;
7966
7967    #[inline]
7968    fn s_type(&self) -> StructureType {
7969        self.s_type
7970    }
7971
7972    #[inline]
7973    fn next(&self) -> *const c_void {
7974        self.next
7975    }
7976}
7977
7978unsafe impl OutputChainStruct for PhysicalDeviceDepthClampZeroOneFeaturesKHR {
7979    #[inline]
7980    fn next_mut(&self) -> *mut c_void {
7981        self.next
7982    }
7983}
7984
7985unsafe impl InputChainStruct for PhysicalDeviceDepthClipControlFeaturesEXT {
7986    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT;
7987
7988    #[inline]
7989    fn s_type(&self) -> StructureType {
7990        self.s_type
7991    }
7992
7993    #[inline]
7994    fn next(&self) -> *const c_void {
7995        self.next
7996    }
7997}
7998
7999unsafe impl OutputChainStruct for PhysicalDeviceDepthClipControlFeaturesEXT {
8000    #[inline]
8001    fn next_mut(&self) -> *mut c_void {
8002        self.next
8003    }
8004}
8005
8006unsafe impl InputChainStruct for PhysicalDeviceDepthClipEnableFeaturesEXT {
8007    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
8008
8009    #[inline]
8010    fn s_type(&self) -> StructureType {
8011        self.s_type
8012    }
8013
8014    #[inline]
8015    fn next(&self) -> *const c_void {
8016        self.next
8017    }
8018}
8019
8020unsafe impl OutputChainStruct for PhysicalDeviceDepthClipEnableFeaturesEXT {
8021    #[inline]
8022    fn next_mut(&self) -> *mut c_void {
8023        self.next
8024    }
8025}
8026
8027unsafe impl InputChainStruct for PhysicalDeviceDepthStencilResolveProperties {
8028    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
8029
8030    #[inline]
8031    fn s_type(&self) -> StructureType {
8032        self.s_type
8033    }
8034
8035    #[inline]
8036    fn next(&self) -> *const c_void {
8037        self.next
8038    }
8039}
8040
8041unsafe impl OutputChainStruct for PhysicalDeviceDepthStencilResolveProperties {
8042    #[inline]
8043    fn next_mut(&self) -> *mut c_void {
8044        self.next
8045    }
8046}
8047
8048unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
8049    const TYPE: StructureType =
8050        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT;
8051
8052    #[inline]
8053    fn s_type(&self) -> StructureType {
8054        self.s_type
8055    }
8056
8057    #[inline]
8058    fn next(&self) -> *const c_void {
8059        self.next
8060    }
8061}
8062
8063unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
8064    #[inline]
8065    fn next_mut(&self) -> *mut c_void {
8066        self.next
8067    }
8068}
8069
8070unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferFeaturesEXT {
8071    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT;
8072
8073    #[inline]
8074    fn s_type(&self) -> StructureType {
8075        self.s_type
8076    }
8077
8078    #[inline]
8079    fn next(&self) -> *const c_void {
8080        self.next
8081    }
8082}
8083
8084unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferFeaturesEXT {
8085    #[inline]
8086    fn next_mut(&self) -> *mut c_void {
8087        self.next
8088    }
8089}
8090
8091unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferPropertiesEXT {
8092    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT;
8093
8094    #[inline]
8095    fn s_type(&self) -> StructureType {
8096        self.s_type
8097    }
8098
8099    #[inline]
8100    fn next(&self) -> *const c_void {
8101        self.next
8102    }
8103}
8104
8105unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferPropertiesEXT {
8106    #[inline]
8107    fn next_mut(&self) -> *mut c_void {
8108        self.next
8109    }
8110}
8111
8112unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferTensorFeaturesARM {
8113    const TYPE: StructureType =
8114        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM;
8115
8116    #[inline]
8117    fn s_type(&self) -> StructureType {
8118        self.s_type
8119    }
8120
8121    #[inline]
8122    fn next(&self) -> *const c_void {
8123        self.next
8124    }
8125}
8126
8127unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferTensorFeaturesARM {
8128    #[inline]
8129    fn next_mut(&self) -> *mut c_void {
8130        self.next
8131    }
8132}
8133
8134unsafe impl InputChainStruct for PhysicalDeviceDescriptorBufferTensorPropertiesARM {
8135    const TYPE: StructureType =
8136        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM;
8137
8138    #[inline]
8139    fn s_type(&self) -> StructureType {
8140        self.s_type
8141    }
8142
8143    #[inline]
8144    fn next(&self) -> *const c_void {
8145        self.next
8146    }
8147}
8148
8149unsafe impl OutputChainStruct for PhysicalDeviceDescriptorBufferTensorPropertiesARM {
8150    #[inline]
8151    fn next_mut(&self) -> *mut c_void {
8152        self.next
8153    }
8154}
8155
8156unsafe impl InputChainStruct for PhysicalDeviceDescriptorIndexingFeatures {
8157    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
8158
8159    #[inline]
8160    fn s_type(&self) -> StructureType {
8161        self.s_type
8162    }
8163
8164    #[inline]
8165    fn next(&self) -> *const c_void {
8166        self.next
8167    }
8168}
8169
8170unsafe impl OutputChainStruct for PhysicalDeviceDescriptorIndexingFeatures {
8171    #[inline]
8172    fn next_mut(&self) -> *mut c_void {
8173        self.next
8174    }
8175}
8176
8177unsafe impl InputChainStruct for PhysicalDeviceDescriptorIndexingProperties {
8178    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
8179
8180    #[inline]
8181    fn s_type(&self) -> StructureType {
8182        self.s_type
8183    }
8184
8185    #[inline]
8186    fn next(&self) -> *const c_void {
8187        self.next
8188    }
8189}
8190
8191unsafe impl OutputChainStruct for PhysicalDeviceDescriptorIndexingProperties {
8192    #[inline]
8193    fn next_mut(&self) -> *mut c_void {
8194        self.next
8195    }
8196}
8197
8198unsafe impl InputChainStruct for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
8199    const TYPE: StructureType =
8200        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV;
8201
8202    #[inline]
8203    fn s_type(&self) -> StructureType {
8204        self.s_type
8205    }
8206
8207    #[inline]
8208    fn next(&self) -> *const c_void {
8209        self.next
8210    }
8211}
8212
8213unsafe impl OutputChainStruct for PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
8214    #[inline]
8215    fn next_mut(&self) -> *mut c_void {
8216        self.next
8217    }
8218}
8219
8220unsafe impl InputChainStruct for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
8221    const TYPE: StructureType =
8222        StructureType::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE;
8223
8224    #[inline]
8225    fn s_type(&self) -> StructureType {
8226        self.s_type
8227    }
8228
8229    #[inline]
8230    fn next(&self) -> *const c_void {
8231        self.next
8232    }
8233}
8234
8235unsafe impl OutputChainStruct for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
8236    #[inline]
8237    fn next_mut(&self) -> *mut c_void {
8238        self.next
8239    }
8240}
8241
8242unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
8243    const TYPE: StructureType =
8244        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV;
8245
8246    #[inline]
8247    fn s_type(&self) -> StructureType {
8248        self.s_type
8249    }
8250
8251    #[inline]
8252    fn next(&self) -> *const c_void {
8253        self.next
8254    }
8255}
8256
8257unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
8258    #[inline]
8259    fn next_mut(&self) -> *mut c_void {
8260        self.next
8261    }
8262}
8263
8264unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
8265    const TYPE: StructureType =
8266        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT;
8267
8268    #[inline]
8269    fn s_type(&self) -> StructureType {
8270        self.s_type
8271    }
8272
8273    #[inline]
8274    fn next(&self) -> *const c_void {
8275        self.next
8276    }
8277}
8278
8279unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
8280    #[inline]
8281    fn next_mut(&self) -> *mut c_void {
8282        self.next
8283    }
8284}
8285
8286unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
8287    const TYPE: StructureType =
8288        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
8289
8290    #[inline]
8291    fn s_type(&self) -> StructureType {
8292        self.s_type
8293    }
8294
8295    #[inline]
8296    fn next(&self) -> *const c_void {
8297        self.next
8298    }
8299}
8300
8301unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
8302    #[inline]
8303    fn next_mut(&self) -> *mut c_void {
8304        self.next
8305    }
8306}
8307
8308unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
8309    const TYPE: StructureType =
8310        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT;
8311
8312    #[inline]
8313    fn s_type(&self) -> StructureType {
8314        self.s_type
8315    }
8316
8317    #[inline]
8318    fn next(&self) -> *const c_void {
8319        self.next
8320    }
8321}
8322
8323unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
8324    #[inline]
8325    fn next_mut(&self) -> *mut c_void {
8326        self.next
8327    }
8328}
8329
8330unsafe impl InputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
8331    const TYPE: StructureType =
8332        StructureType::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
8333
8334    #[inline]
8335    fn s_type(&self) -> StructureType {
8336        self.s_type
8337    }
8338
8339    #[inline]
8340    fn next(&self) -> *const c_void {
8341        self.next
8342    }
8343}
8344
8345unsafe impl OutputChainStruct for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
8346    #[inline]
8347    fn next_mut(&self) -> *mut c_void {
8348        self.next
8349    }
8350}
8351
8352unsafe impl InputChainStruct for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
8353    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
8354
8355    #[inline]
8356    fn s_type(&self) -> StructureType {
8357        self.s_type
8358    }
8359
8360    #[inline]
8361    fn next(&self) -> *const c_void {
8362        self.next
8363    }
8364}
8365
8366unsafe impl OutputChainStruct for PhysicalDeviceDeviceMemoryReportFeaturesEXT {
8367    #[inline]
8368    fn next_mut(&self) -> *mut c_void {
8369        self.next
8370    }
8371}
8372
8373unsafe impl InputChainStruct for PhysicalDeviceDiagnosticsConfigFeaturesNV {
8374    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV;
8375
8376    #[inline]
8377    fn s_type(&self) -> StructureType {
8378        self.s_type
8379    }
8380
8381    #[inline]
8382    fn next(&self) -> *const c_void {
8383        self.next
8384    }
8385}
8386
8387unsafe impl OutputChainStruct for PhysicalDeviceDiagnosticsConfigFeaturesNV {
8388    #[inline]
8389    fn next_mut(&self) -> *mut c_void {
8390        self.next
8391    }
8392}
8393
8394unsafe impl InputChainStruct for PhysicalDeviceDiscardRectanglePropertiesEXT {
8395    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
8396
8397    #[inline]
8398    fn s_type(&self) -> StructureType {
8399        self.s_type
8400    }
8401
8402    #[inline]
8403    fn next(&self) -> *const c_void {
8404        self.next
8405    }
8406}
8407
8408unsafe impl OutputChainStruct for PhysicalDeviceDiscardRectanglePropertiesEXT {
8409    #[inline]
8410    fn next_mut(&self) -> *mut c_void {
8411        self.next
8412    }
8413}
8414
8415unsafe impl InputChainStruct for PhysicalDeviceDisplacementMicromapFeaturesNV {
8416    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV;
8417
8418    #[inline]
8419    fn s_type(&self) -> StructureType {
8420        self.s_type
8421    }
8422
8423    #[inline]
8424    fn next(&self) -> *const c_void {
8425        self.next
8426    }
8427}
8428
8429unsafe impl OutputChainStruct for PhysicalDeviceDisplacementMicromapFeaturesNV {
8430    #[inline]
8431    fn next_mut(&self) -> *mut c_void {
8432        self.next
8433    }
8434}
8435
8436unsafe impl InputChainStruct for PhysicalDeviceDisplacementMicromapPropertiesNV {
8437    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV;
8438
8439    #[inline]
8440    fn s_type(&self) -> StructureType {
8441        self.s_type
8442    }
8443
8444    #[inline]
8445    fn next(&self) -> *const c_void {
8446        self.next
8447    }
8448}
8449
8450unsafe impl OutputChainStruct for PhysicalDeviceDisplacementMicromapPropertiesNV {
8451    #[inline]
8452    fn next_mut(&self) -> *mut c_void {
8453        self.next
8454    }
8455}
8456
8457unsafe impl InputChainStruct for PhysicalDeviceDriverProperties {
8458    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRIVER_PROPERTIES;
8459
8460    #[inline]
8461    fn s_type(&self) -> StructureType {
8462        self.s_type
8463    }
8464
8465    #[inline]
8466    fn next(&self) -> *const c_void {
8467        self.next
8468    }
8469}
8470
8471unsafe impl OutputChainStruct for PhysicalDeviceDriverProperties {
8472    #[inline]
8473    fn next_mut(&self) -> *mut c_void {
8474        self.next
8475    }
8476}
8477
8478unsafe impl InputChainStruct for PhysicalDeviceDrmPropertiesEXT {
8479    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
8480
8481    #[inline]
8482    fn s_type(&self) -> StructureType {
8483        self.s_type
8484    }
8485
8486    #[inline]
8487    fn next(&self) -> *const c_void {
8488        self.next
8489    }
8490}
8491
8492unsafe impl OutputChainStruct for PhysicalDeviceDrmPropertiesEXT {
8493    #[inline]
8494    fn next_mut(&self) -> *mut c_void {
8495        self.next
8496    }
8497}
8498
8499unsafe impl InputChainStruct for PhysicalDeviceDynamicRenderingFeatures {
8500    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
8501
8502    #[inline]
8503    fn s_type(&self) -> StructureType {
8504        self.s_type
8505    }
8506
8507    #[inline]
8508    fn next(&self) -> *const c_void {
8509        self.next
8510    }
8511}
8512
8513unsafe impl OutputChainStruct for PhysicalDeviceDynamicRenderingFeatures {
8514    #[inline]
8515    fn next_mut(&self) -> *mut c_void {
8516        self.next
8517    }
8518}
8519
8520unsafe impl InputChainStruct for PhysicalDeviceDynamicRenderingLocalReadFeatures {
8521    const TYPE: StructureType =
8522        StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES;
8523
8524    #[inline]
8525    fn s_type(&self) -> StructureType {
8526        self.s_type
8527    }
8528
8529    #[inline]
8530    fn next(&self) -> *const c_void {
8531        self.next
8532    }
8533}
8534
8535unsafe impl OutputChainStruct for PhysicalDeviceDynamicRenderingLocalReadFeatures {
8536    #[inline]
8537    fn next_mut(&self) -> *mut c_void {
8538        self.next
8539    }
8540}
8541
8542unsafe impl InputChainStruct for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
8543    const TYPE: StructureType =
8544        StructureType::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT;
8545
8546    #[inline]
8547    fn s_type(&self) -> StructureType {
8548        self.s_type
8549    }
8550
8551    #[inline]
8552    fn next(&self) -> *const c_void {
8553        self.next
8554    }
8555}
8556
8557unsafe impl OutputChainStruct for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
8558    #[inline]
8559    fn next_mut(&self) -> *mut c_void {
8560        self.next
8561    }
8562}
8563
8564unsafe impl InputChainStruct for PhysicalDeviceExclusiveScissorFeaturesNV {
8565    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
8566
8567    #[inline]
8568    fn s_type(&self) -> StructureType {
8569        self.s_type
8570    }
8571
8572    #[inline]
8573    fn next(&self) -> *const c_void {
8574        self.next
8575    }
8576}
8577
8578unsafe impl OutputChainStruct for PhysicalDeviceExclusiveScissorFeaturesNV {
8579    #[inline]
8580    fn next_mut(&self) -> *mut c_void {
8581        self.next
8582    }
8583}
8584
8585unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
8586    const TYPE: StructureType =
8587        StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
8588
8589    #[inline]
8590    fn s_type(&self) -> StructureType {
8591        self.s_type
8592    }
8593
8594    #[inline]
8595    fn next(&self) -> *const c_void {
8596        self.next
8597    }
8598}
8599
8600unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicState2FeaturesEXT {
8601    #[inline]
8602    fn next_mut(&self) -> *mut c_void {
8603        self.next
8604    }
8605}
8606
8607unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
8608    const TYPE: StructureType =
8609        StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
8610
8611    #[inline]
8612    fn s_type(&self) -> StructureType {
8613        self.s_type
8614    }
8615
8616    #[inline]
8617    fn next(&self) -> *const c_void {
8618        self.next
8619    }
8620}
8621
8622unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicState3FeaturesEXT {
8623    #[inline]
8624    fn next_mut(&self) -> *mut c_void {
8625        self.next
8626    }
8627}
8628
8629unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
8630    const TYPE: StructureType =
8631        StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT;
8632
8633    #[inline]
8634    fn s_type(&self) -> StructureType {
8635        self.s_type
8636    }
8637
8638    #[inline]
8639    fn next(&self) -> *const c_void {
8640        self.next
8641    }
8642}
8643
8644unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicState3PropertiesEXT {
8645    #[inline]
8646    fn next_mut(&self) -> *mut c_void {
8647        self.next
8648    }
8649}
8650
8651unsafe impl InputChainStruct for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
8652    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
8653
8654    #[inline]
8655    fn s_type(&self) -> StructureType {
8656        self.s_type
8657    }
8658
8659    #[inline]
8660    fn next(&self) -> *const c_void {
8661        self.next
8662    }
8663}
8664
8665unsafe impl OutputChainStruct for PhysicalDeviceExtendedDynamicStateFeaturesEXT {
8666    #[inline]
8667    fn next_mut(&self) -> *mut c_void {
8668        self.next
8669    }
8670}
8671
8672unsafe impl InputChainStruct for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
8673    const TYPE: StructureType =
8674        StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV;
8675
8676    #[inline]
8677    fn s_type(&self) -> StructureType {
8678        self.s_type
8679    }
8680
8681    #[inline]
8682    fn next(&self) -> *const c_void {
8683        self.next
8684    }
8685}
8686
8687unsafe impl OutputChainStruct for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
8688    #[inline]
8689    fn next_mut(&self) -> *mut c_void {
8690        self.next
8691    }
8692}
8693
8694unsafe impl InputChainStruct for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
8695    const TYPE: StructureType =
8696        StructureType::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV;
8697
8698    #[inline]
8699    fn s_type(&self) -> StructureType {
8700        self.s_type
8701    }
8702
8703    #[inline]
8704    fn next(&self) -> *const c_void {
8705        self.next
8706    }
8707}
8708
8709unsafe impl OutputChainStruct for PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
8710    #[inline]
8711    fn next_mut(&self) -> *mut c_void {
8712        self.next
8713    }
8714}
8715
8716unsafe impl InputChainStruct for PhysicalDeviceExternalBufferInfo {
8717    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
8718
8719    #[inline]
8720    fn s_type(&self) -> StructureType {
8721        self.s_type
8722    }
8723
8724    #[inline]
8725    fn next(&self) -> *const c_void {
8726        self.next
8727    }
8728}
8729
8730unsafe impl InputChainStruct for PhysicalDeviceExternalComputeQueuePropertiesNV {
8731    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV;
8732
8733    #[inline]
8734    fn s_type(&self) -> StructureType {
8735        self.s_type
8736    }
8737
8738    #[inline]
8739    fn next(&self) -> *const c_void {
8740        self.next
8741    }
8742}
8743
8744unsafe impl OutputChainStruct for PhysicalDeviceExternalComputeQueuePropertiesNV {
8745    #[inline]
8746    fn next_mut(&self) -> *mut c_void {
8747        self.next
8748    }
8749}
8750
8751unsafe impl InputChainStruct for PhysicalDeviceExternalFenceInfo {
8752    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
8753
8754    #[inline]
8755    fn s_type(&self) -> StructureType {
8756        self.s_type
8757    }
8758
8759    #[inline]
8760    fn next(&self) -> *const c_void {
8761        self.next
8762    }
8763}
8764
8765unsafe impl InputChainStruct for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
8766    const TYPE: StructureType =
8767        StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID;
8768
8769    #[inline]
8770    fn s_type(&self) -> StructureType {
8771        self.s_type
8772    }
8773
8774    #[inline]
8775    fn next(&self) -> *const c_void {
8776        self.next
8777    }
8778}
8779
8780unsafe impl OutputChainStruct for PhysicalDeviceExternalFormatResolveFeaturesANDROID {
8781    #[inline]
8782    fn next_mut(&self) -> *mut c_void {
8783        self.next
8784    }
8785}
8786
8787unsafe impl InputChainStruct for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
8788    const TYPE: StructureType =
8789        StructureType::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID;
8790
8791    #[inline]
8792    fn s_type(&self) -> StructureType {
8793        self.s_type
8794    }
8795
8796    #[inline]
8797    fn next(&self) -> *const c_void {
8798        self.next
8799    }
8800}
8801
8802unsafe impl OutputChainStruct for PhysicalDeviceExternalFormatResolvePropertiesANDROID {
8803    #[inline]
8804    fn next_mut(&self) -> *mut c_void {
8805        self.next
8806    }
8807}
8808
8809unsafe impl InputChainStruct for PhysicalDeviceExternalImageFormatInfo {
8810    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
8811
8812    #[inline]
8813    fn s_type(&self) -> StructureType {
8814        self.s_type
8815    }
8816
8817    #[inline]
8818    fn next(&self) -> *const c_void {
8819        self.next
8820    }
8821}
8822
8823unsafe impl InputChainStruct for PhysicalDeviceExternalMemoryHostPropertiesEXT {
8824    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
8825
8826    #[inline]
8827    fn s_type(&self) -> StructureType {
8828        self.s_type
8829    }
8830
8831    #[inline]
8832    fn next(&self) -> *const c_void {
8833        self.next
8834    }
8835}
8836
8837unsafe impl OutputChainStruct for PhysicalDeviceExternalMemoryHostPropertiesEXT {
8838    #[inline]
8839    fn next_mut(&self) -> *mut c_void {
8840        self.next
8841    }
8842}
8843
8844unsafe impl InputChainStruct for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
8845    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
8846
8847    #[inline]
8848    fn s_type(&self) -> StructureType {
8849        self.s_type
8850    }
8851
8852    #[inline]
8853    fn next(&self) -> *const c_void {
8854        self.next
8855    }
8856}
8857
8858unsafe impl OutputChainStruct for PhysicalDeviceExternalMemoryRDMAFeaturesNV {
8859    #[inline]
8860    fn next_mut(&self) -> *mut c_void {
8861        self.next
8862    }
8863}
8864
8865unsafe impl InputChainStruct for PhysicalDeviceExternalMemorySciBufFeaturesNV {
8866    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV;
8867
8868    #[inline]
8869    fn s_type(&self) -> StructureType {
8870        self.s_type
8871    }
8872
8873    #[inline]
8874    fn next(&self) -> *const c_void {
8875        self.next
8876    }
8877}
8878
8879unsafe impl OutputChainStruct for PhysicalDeviceExternalMemorySciBufFeaturesNV {
8880    #[inline]
8881    fn next_mut(&self) -> *mut c_void {
8882        self.next
8883    }
8884}
8885
8886unsafe impl InputChainStruct for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
8887    const TYPE: StructureType =
8888        StructureType::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX;
8889
8890    #[inline]
8891    fn s_type(&self) -> StructureType {
8892        self.s_type
8893    }
8894
8895    #[inline]
8896    fn next(&self) -> *const c_void {
8897        self.next
8898    }
8899}
8900
8901unsafe impl OutputChainStruct for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
8902    #[inline]
8903    fn next_mut(&self) -> *mut c_void {
8904        self.next
8905    }
8906}
8907
8908unsafe impl InputChainStruct for PhysicalDeviceExternalSciSync2FeaturesNV {
8909    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV;
8910
8911    #[inline]
8912    fn s_type(&self) -> StructureType {
8913        self.s_type
8914    }
8915
8916    #[inline]
8917    fn next(&self) -> *const c_void {
8918        self.next
8919    }
8920}
8921
8922unsafe impl OutputChainStruct for PhysicalDeviceExternalSciSync2FeaturesNV {
8923    #[inline]
8924    fn next_mut(&self) -> *mut c_void {
8925        self.next
8926    }
8927}
8928
8929unsafe impl InputChainStruct for PhysicalDeviceExternalSciSyncFeaturesNV {
8930    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV;
8931
8932    #[inline]
8933    fn s_type(&self) -> StructureType {
8934        self.s_type
8935    }
8936
8937    #[inline]
8938    fn next(&self) -> *const c_void {
8939        self.next
8940    }
8941}
8942
8943unsafe impl OutputChainStruct for PhysicalDeviceExternalSciSyncFeaturesNV {
8944    #[inline]
8945    fn next_mut(&self) -> *mut c_void {
8946        self.next
8947    }
8948}
8949
8950unsafe impl InputChainStruct for PhysicalDeviceExternalSemaphoreInfo {
8951    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
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 InputChainStruct for PhysicalDeviceExternalTensorInfoARM {
8965    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM;
8966
8967    #[inline]
8968    fn s_type(&self) -> StructureType {
8969        self.s_type
8970    }
8971
8972    #[inline]
8973    fn next(&self) -> *const c_void {
8974        self.next
8975    }
8976}
8977
8978unsafe impl InputChainStruct for PhysicalDeviceFaultFeaturesEXT {
8979    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FAULT_FEATURES_EXT;
8980
8981    #[inline]
8982    fn s_type(&self) -> StructureType {
8983        self.s_type
8984    }
8985
8986    #[inline]
8987    fn next(&self) -> *const c_void {
8988        self.next
8989    }
8990}
8991
8992unsafe impl OutputChainStruct for PhysicalDeviceFaultFeaturesEXT {
8993    #[inline]
8994    fn next_mut(&self) -> *mut c_void {
8995        self.next
8996    }
8997}
8998
8999unsafe impl InputChainStruct for PhysicalDeviceFeatures2 {
9000    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FEATURES_2;
9001
9002    #[inline]
9003    fn s_type(&self) -> StructureType {
9004        self.s_type
9005    }
9006
9007    #[inline]
9008    fn next(&self) -> *const c_void {
9009        self.next
9010    }
9011}
9012
9013unsafe impl OutputChainStruct for PhysicalDeviceFeatures2 {
9014    #[inline]
9015    fn next_mut(&self) -> *mut c_void {
9016        self.next
9017    }
9018}
9019
9020unsafe impl InputChainStruct for PhysicalDeviceFloatControlsProperties {
9021    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
9022
9023    #[inline]
9024    fn s_type(&self) -> StructureType {
9025        self.s_type
9026    }
9027
9028    #[inline]
9029    fn next(&self) -> *const c_void {
9030        self.next
9031    }
9032}
9033
9034unsafe impl OutputChainStruct for PhysicalDeviceFloatControlsProperties {
9035    #[inline]
9036    fn next_mut(&self) -> *mut c_void {
9037        self.next
9038    }
9039}
9040
9041unsafe impl InputChainStruct for PhysicalDeviceFormatPackFeaturesARM {
9042    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM;
9043
9044    #[inline]
9045    fn s_type(&self) -> StructureType {
9046        self.s_type
9047    }
9048
9049    #[inline]
9050    fn next(&self) -> *const c_void {
9051        self.next
9052    }
9053}
9054
9055unsafe impl OutputChainStruct for PhysicalDeviceFormatPackFeaturesARM {
9056    #[inline]
9057    fn next_mut(&self) -> *mut c_void {
9058        self.next
9059    }
9060}
9061
9062unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
9063    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
9064
9065    #[inline]
9066    fn s_type(&self) -> StructureType {
9067        self.s_type
9068    }
9069
9070    #[inline]
9071    fn next(&self) -> *const c_void {
9072        self.next
9073    }
9074}
9075
9076unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMap2FeaturesEXT {
9077    #[inline]
9078    fn next_mut(&self) -> *mut c_void {
9079        self.next
9080    }
9081}
9082
9083unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
9084    const TYPE: StructureType =
9085        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
9086
9087    #[inline]
9088    fn s_type(&self) -> StructureType {
9089        self.s_type
9090    }
9091
9092    #[inline]
9093    fn next(&self) -> *const c_void {
9094        self.next
9095    }
9096}
9097
9098unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMap2PropertiesEXT {
9099    #[inline]
9100    fn next_mut(&self) -> *mut c_void {
9101        self.next
9102    }
9103}
9104
9105unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapFeaturesEXT {
9106    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
9107
9108    #[inline]
9109    fn s_type(&self) -> StructureType {
9110        self.s_type
9111    }
9112
9113    #[inline]
9114    fn next(&self) -> *const c_void {
9115        self.next
9116    }
9117}
9118
9119unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapFeaturesEXT {
9120    #[inline]
9121    fn next_mut(&self) -> *mut c_void {
9122        self.next
9123    }
9124}
9125
9126unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
9127    const TYPE: StructureType =
9128        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE;
9129
9130    #[inline]
9131    fn s_type(&self) -> StructureType {
9132        self.s_type
9133    }
9134
9135    #[inline]
9136    fn next(&self) -> *const c_void {
9137        self.next
9138    }
9139}
9140
9141unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
9142    #[inline]
9143    fn next_mut(&self) -> *mut c_void {
9144        self.next
9145    }
9146}
9147
9148unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
9149    const TYPE: StructureType =
9150        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE;
9151
9152    #[inline]
9153    fn s_type(&self) -> StructureType {
9154        self.s_type
9155    }
9156
9157    #[inline]
9158    fn next(&self) -> *const c_void {
9159        self.next
9160    }
9161}
9162
9163unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
9164    #[inline]
9165    fn next_mut(&self) -> *mut c_void {
9166        self.next
9167    }
9168}
9169
9170unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
9171    const TYPE: StructureType =
9172        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT;
9173
9174    #[inline]
9175    fn s_type(&self) -> StructureType {
9176        self.s_type
9177    }
9178
9179    #[inline]
9180    fn next(&self) -> *const c_void {
9181        self.next
9182    }
9183}
9184
9185unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
9186    #[inline]
9187    fn next_mut(&self) -> *mut c_void {
9188        self.next
9189    }
9190}
9191
9192unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
9193    const TYPE: StructureType =
9194        StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT;
9195
9196    #[inline]
9197    fn s_type(&self) -> StructureType {
9198        self.s_type
9199    }
9200
9201    #[inline]
9202    fn next(&self) -> *const c_void {
9203        self.next
9204    }
9205}
9206
9207unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
9208    #[inline]
9209    fn next_mut(&self) -> *mut c_void {
9210        self.next
9211    }
9212}
9213
9214unsafe impl InputChainStruct for PhysicalDeviceFragmentDensityMapPropertiesEXT {
9215    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
9216
9217    #[inline]
9218    fn s_type(&self) -> StructureType {
9219        self.s_type
9220    }
9221
9222    #[inline]
9223    fn next(&self) -> *const c_void {
9224        self.next
9225    }
9226}
9227
9228unsafe impl OutputChainStruct for PhysicalDeviceFragmentDensityMapPropertiesEXT {
9229    #[inline]
9230    fn next_mut(&self) -> *mut c_void {
9231        self.next
9232    }
9233}
9234
9235unsafe impl InputChainStruct for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
9236    const TYPE: StructureType =
9237        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
9238
9239    #[inline]
9240    fn s_type(&self) -> StructureType {
9241        self.s_type
9242    }
9243
9244    #[inline]
9245    fn next(&self) -> *const c_void {
9246        self.next
9247    }
9248}
9249
9250unsafe impl OutputChainStruct for PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
9251    #[inline]
9252    fn next_mut(&self) -> *mut c_void {
9253        self.next
9254    }
9255}
9256
9257unsafe impl InputChainStruct for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
9258    const TYPE: StructureType =
9259        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR;
9260
9261    #[inline]
9262    fn s_type(&self) -> StructureType {
9263        self.s_type
9264    }
9265
9266    #[inline]
9267    fn next(&self) -> *const c_void {
9268        self.next
9269    }
9270}
9271
9272unsafe impl OutputChainStruct for PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
9273    #[inline]
9274    fn next_mut(&self) -> *mut c_void {
9275        self.next
9276    }
9277}
9278
9279unsafe impl InputChainStruct for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
9280    const TYPE: StructureType =
9281        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
9282
9283    #[inline]
9284    fn s_type(&self) -> StructureType {
9285        self.s_type
9286    }
9287
9288    #[inline]
9289    fn next(&self) -> *const c_void {
9290        self.next
9291    }
9292}
9293
9294unsafe impl OutputChainStruct for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
9295    #[inline]
9296    fn next_mut(&self) -> *mut c_void {
9297        self.next
9298    }
9299}
9300
9301unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
9302    const TYPE: StructureType =
9303        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
9304
9305    #[inline]
9306    fn s_type(&self) -> StructureType {
9307        self.s_type
9308    }
9309
9310    #[inline]
9311    fn next(&self) -> *const c_void {
9312        self.next
9313    }
9314}
9315
9316unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
9317    #[inline]
9318    fn next_mut(&self) -> *mut c_void {
9319        self.next
9320    }
9321}
9322
9323unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
9324    const TYPE: StructureType =
9325        StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
9326
9327    #[inline]
9328    fn s_type(&self) -> StructureType {
9329        self.s_type
9330    }
9331
9332    #[inline]
9333    fn next(&self) -> *const c_void {
9334        self.next
9335    }
9336}
9337
9338unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
9339    #[inline]
9340    fn next_mut(&self) -> *mut c_void {
9341        self.next
9342    }
9343}
9344
9345unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateFeaturesKHR {
9346    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
9347
9348    #[inline]
9349    fn s_type(&self) -> StructureType {
9350        self.s_type
9351    }
9352
9353    #[inline]
9354    fn next(&self) -> *const c_void {
9355        self.next
9356    }
9357}
9358
9359unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateFeaturesKHR {
9360    #[inline]
9361    fn next_mut(&self) -> *mut c_void {
9362        self.next
9363    }
9364}
9365
9366unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRateKHR {
9367    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
9368
9369    #[inline]
9370    fn s_type(&self) -> StructureType {
9371        self.s_type
9372    }
9373
9374    #[inline]
9375    fn next(&self) -> *const c_void {
9376        self.next
9377    }
9378}
9379
9380unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRateKHR {
9381    #[inline]
9382    fn next_mut(&self) -> *mut c_void {
9383        self.next
9384    }
9385}
9386
9387unsafe impl InputChainStruct for PhysicalDeviceFragmentShadingRatePropertiesKHR {
9388    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
9389
9390    #[inline]
9391    fn s_type(&self) -> StructureType {
9392        self.s_type
9393    }
9394
9395    #[inline]
9396    fn next(&self) -> *const c_void {
9397        self.next
9398    }
9399}
9400
9401unsafe impl OutputChainStruct for PhysicalDeviceFragmentShadingRatePropertiesKHR {
9402    #[inline]
9403    fn next_mut(&self) -> *mut c_void {
9404        self.next
9405    }
9406}
9407
9408unsafe impl InputChainStruct for PhysicalDeviceFrameBoundaryFeaturesEXT {
9409    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT;
9410
9411    #[inline]
9412    fn s_type(&self) -> StructureType {
9413        self.s_type
9414    }
9415
9416    #[inline]
9417    fn next(&self) -> *const c_void {
9418        self.next
9419    }
9420}
9421
9422unsafe impl OutputChainStruct for PhysicalDeviceFrameBoundaryFeaturesEXT {
9423    #[inline]
9424    fn next_mut(&self) -> *mut c_void {
9425        self.next
9426    }
9427}
9428
9429unsafe impl InputChainStruct for PhysicalDeviceGlobalPriorityQueryFeatures {
9430    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES;
9431
9432    #[inline]
9433    fn s_type(&self) -> StructureType {
9434        self.s_type
9435    }
9436
9437    #[inline]
9438    fn next(&self) -> *const c_void {
9439        self.next
9440    }
9441}
9442
9443unsafe impl OutputChainStruct for PhysicalDeviceGlobalPriorityQueryFeatures {
9444    #[inline]
9445    fn next_mut(&self) -> *mut c_void {
9446        self.next
9447    }
9448}
9449
9450unsafe impl InputChainStruct for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
9451    const TYPE: StructureType =
9452        StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
9453
9454    #[inline]
9455    fn s_type(&self) -> StructureType {
9456        self.s_type
9457    }
9458
9459    #[inline]
9460    fn next(&self) -> *const c_void {
9461        self.next
9462    }
9463}
9464
9465unsafe impl OutputChainStruct for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
9466    #[inline]
9467    fn next_mut(&self) -> *mut c_void {
9468        self.next
9469    }
9470}
9471
9472unsafe impl InputChainStruct for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
9473    const TYPE: StructureType =
9474        StructureType::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT;
9475
9476    #[inline]
9477    fn s_type(&self) -> StructureType {
9478        self.s_type
9479    }
9480
9481    #[inline]
9482    fn next(&self) -> *const c_void {
9483        self.next
9484    }
9485}
9486
9487unsafe impl OutputChainStruct for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
9488    #[inline]
9489    fn next_mut(&self) -> *mut c_void {
9490        self.next
9491    }
9492}
9493
9494unsafe impl InputChainStruct for PhysicalDeviceGroupProperties {
9495    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_GROUP_PROPERTIES;
9496
9497    #[inline]
9498    fn s_type(&self) -> StructureType {
9499        self.s_type
9500    }
9501
9502    #[inline]
9503    fn next(&self) -> *const c_void {
9504        self.next
9505    }
9506}
9507
9508unsafe impl OutputChainStruct for PhysicalDeviceGroupProperties {
9509    #[inline]
9510    fn next_mut(&self) -> *mut c_void {
9511        self.next
9512    }
9513}
9514
9515unsafe impl InputChainStruct for PhysicalDeviceHdrVividFeaturesHUAWEI {
9516    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI;
9517
9518    #[inline]
9519    fn s_type(&self) -> StructureType {
9520        self.s_type
9521    }
9522
9523    #[inline]
9524    fn next(&self) -> *const c_void {
9525        self.next
9526    }
9527}
9528
9529unsafe impl OutputChainStruct for PhysicalDeviceHdrVividFeaturesHUAWEI {
9530    #[inline]
9531    fn next_mut(&self) -> *mut c_void {
9532        self.next
9533    }
9534}
9535
9536unsafe impl InputChainStruct for PhysicalDeviceHostImageCopyFeatures {
9537    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES;
9538
9539    #[inline]
9540    fn s_type(&self) -> StructureType {
9541        self.s_type
9542    }
9543
9544    #[inline]
9545    fn next(&self) -> *const c_void {
9546        self.next
9547    }
9548}
9549
9550unsafe impl OutputChainStruct for PhysicalDeviceHostImageCopyFeatures {
9551    #[inline]
9552    fn next_mut(&self) -> *mut c_void {
9553        self.next
9554    }
9555}
9556
9557unsafe impl InputChainStruct for PhysicalDeviceHostImageCopyProperties {
9558    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES;
9559
9560    #[inline]
9561    fn s_type(&self) -> StructureType {
9562        self.s_type
9563    }
9564
9565    #[inline]
9566    fn next(&self) -> *const c_void {
9567        self.next
9568    }
9569}
9570
9571unsafe impl OutputChainStruct for PhysicalDeviceHostImageCopyProperties {
9572    #[inline]
9573    fn next_mut(&self) -> *mut c_void {
9574        self.next
9575    }
9576}
9577
9578unsafe impl InputChainStruct for PhysicalDeviceHostQueryResetFeatures {
9579    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
9580
9581    #[inline]
9582    fn s_type(&self) -> StructureType {
9583        self.s_type
9584    }
9585
9586    #[inline]
9587    fn next(&self) -> *const c_void {
9588        self.next
9589    }
9590}
9591
9592unsafe impl OutputChainStruct for PhysicalDeviceHostQueryResetFeatures {
9593    #[inline]
9594    fn next_mut(&self) -> *mut c_void {
9595        self.next
9596    }
9597}
9598
9599unsafe impl InputChainStruct for PhysicalDeviceIDProperties {
9600    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ID_PROPERTIES;
9601
9602    #[inline]
9603    fn s_type(&self) -> StructureType {
9604        self.s_type
9605    }
9606
9607    #[inline]
9608    fn next(&self) -> *const c_void {
9609        self.next
9610    }
9611}
9612
9613unsafe impl OutputChainStruct for PhysicalDeviceIDProperties {
9614    #[inline]
9615    fn next_mut(&self) -> *mut c_void {
9616        self.next
9617    }
9618}
9619
9620unsafe impl InputChainStruct for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
9621    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT;
9622
9623    #[inline]
9624    fn s_type(&self) -> StructureType {
9625        self.s_type
9626    }
9627
9628    #[inline]
9629    fn next(&self) -> *const c_void {
9630        self.next
9631    }
9632}
9633
9634unsafe impl OutputChainStruct for PhysicalDeviceImage2DViewOf3DFeaturesEXT {
9635    #[inline]
9636    fn next_mut(&self) -> *mut c_void {
9637        self.next
9638    }
9639}
9640
9641unsafe impl InputChainStruct for PhysicalDeviceImageAlignmentControlFeaturesMESA {
9642    const TYPE: StructureType =
9643        StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA;
9644
9645    #[inline]
9646    fn s_type(&self) -> StructureType {
9647        self.s_type
9648    }
9649
9650    #[inline]
9651    fn next(&self) -> *const c_void {
9652        self.next
9653    }
9654}
9655
9656unsafe impl OutputChainStruct for PhysicalDeviceImageAlignmentControlFeaturesMESA {
9657    #[inline]
9658    fn next_mut(&self) -> *mut c_void {
9659        self.next
9660    }
9661}
9662
9663unsafe impl InputChainStruct for PhysicalDeviceImageAlignmentControlPropertiesMESA {
9664    const TYPE: StructureType =
9665        StructureType::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA;
9666
9667    #[inline]
9668    fn s_type(&self) -> StructureType {
9669        self.s_type
9670    }
9671
9672    #[inline]
9673    fn next(&self) -> *const c_void {
9674        self.next
9675    }
9676}
9677
9678unsafe impl OutputChainStruct for PhysicalDeviceImageAlignmentControlPropertiesMESA {
9679    #[inline]
9680    fn next_mut(&self) -> *mut c_void {
9681        self.next
9682    }
9683}
9684
9685unsafe impl InputChainStruct for PhysicalDeviceImageCompressionControlFeaturesEXT {
9686    const TYPE: StructureType =
9687        StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT;
9688
9689    #[inline]
9690    fn s_type(&self) -> StructureType {
9691        self.s_type
9692    }
9693
9694    #[inline]
9695    fn next(&self) -> *const c_void {
9696        self.next
9697    }
9698}
9699
9700unsafe impl OutputChainStruct for PhysicalDeviceImageCompressionControlFeaturesEXT {
9701    #[inline]
9702    fn next_mut(&self) -> *mut c_void {
9703        self.next
9704    }
9705}
9706
9707unsafe impl InputChainStruct for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
9708    const TYPE: StructureType =
9709        StructureType::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT;
9710
9711    #[inline]
9712    fn s_type(&self) -> StructureType {
9713        self.s_type
9714    }
9715
9716    #[inline]
9717    fn next(&self) -> *const c_void {
9718        self.next
9719    }
9720}
9721
9722unsafe impl OutputChainStruct for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
9723    #[inline]
9724    fn next_mut(&self) -> *mut c_void {
9725        self.next
9726    }
9727}
9728
9729unsafe impl InputChainStruct for PhysicalDeviceImageDrmFormatModifierInfoEXT {
9730    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
9731
9732    #[inline]
9733    fn s_type(&self) -> StructureType {
9734        self.s_type
9735    }
9736
9737    #[inline]
9738    fn next(&self) -> *const c_void {
9739        self.next
9740    }
9741}
9742
9743unsafe impl InputChainStruct for PhysicalDeviceImageFormatInfo2 {
9744    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
9745
9746    #[inline]
9747    fn s_type(&self) -> StructureType {
9748        self.s_type
9749    }
9750
9751    #[inline]
9752    fn next(&self) -> *const c_void {
9753        self.next
9754    }
9755}
9756
9757unsafe impl InputChainStruct for PhysicalDeviceImageProcessing2FeaturesQCOM {
9758    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM;
9759
9760    #[inline]
9761    fn s_type(&self) -> StructureType {
9762        self.s_type
9763    }
9764
9765    #[inline]
9766    fn next(&self) -> *const c_void {
9767        self.next
9768    }
9769}
9770
9771unsafe impl OutputChainStruct for PhysicalDeviceImageProcessing2FeaturesQCOM {
9772    #[inline]
9773    fn next_mut(&self) -> *mut c_void {
9774        self.next
9775    }
9776}
9777
9778unsafe impl InputChainStruct for PhysicalDeviceImageProcessing2PropertiesQCOM {
9779    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM;
9780
9781    #[inline]
9782    fn s_type(&self) -> StructureType {
9783        self.s_type
9784    }
9785
9786    #[inline]
9787    fn next(&self) -> *const c_void {
9788        self.next
9789    }
9790}
9791
9792unsafe impl OutputChainStruct for PhysicalDeviceImageProcessing2PropertiesQCOM {
9793    #[inline]
9794    fn next_mut(&self) -> *mut c_void {
9795        self.next
9796    }
9797}
9798
9799unsafe impl InputChainStruct for PhysicalDeviceImageProcessingFeaturesQCOM {
9800    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM;
9801
9802    #[inline]
9803    fn s_type(&self) -> StructureType {
9804        self.s_type
9805    }
9806
9807    #[inline]
9808    fn next(&self) -> *const c_void {
9809        self.next
9810    }
9811}
9812
9813unsafe impl OutputChainStruct for PhysicalDeviceImageProcessingFeaturesQCOM {
9814    #[inline]
9815    fn next_mut(&self) -> *mut c_void {
9816        self.next
9817    }
9818}
9819
9820unsafe impl InputChainStruct for PhysicalDeviceImageProcessingPropertiesQCOM {
9821    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM;
9822
9823    #[inline]
9824    fn s_type(&self) -> StructureType {
9825        self.s_type
9826    }
9827
9828    #[inline]
9829    fn next(&self) -> *const c_void {
9830        self.next
9831    }
9832}
9833
9834unsafe impl OutputChainStruct for PhysicalDeviceImageProcessingPropertiesQCOM {
9835    #[inline]
9836    fn next_mut(&self) -> *mut c_void {
9837        self.next
9838    }
9839}
9840
9841unsafe impl InputChainStruct for PhysicalDeviceImageRobustnessFeatures {
9842    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
9843
9844    #[inline]
9845    fn s_type(&self) -> StructureType {
9846        self.s_type
9847    }
9848
9849    #[inline]
9850    fn next(&self) -> *const c_void {
9851        self.next
9852    }
9853}
9854
9855unsafe impl OutputChainStruct for PhysicalDeviceImageRobustnessFeatures {
9856    #[inline]
9857    fn next_mut(&self) -> *mut c_void {
9858        self.next
9859    }
9860}
9861
9862unsafe impl InputChainStruct for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
9863    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT;
9864
9865    #[inline]
9866    fn s_type(&self) -> StructureType {
9867        self.s_type
9868    }
9869
9870    #[inline]
9871    fn next(&self) -> *const c_void {
9872        self.next
9873    }
9874}
9875
9876unsafe impl OutputChainStruct for PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
9877    #[inline]
9878    fn next_mut(&self) -> *mut c_void {
9879        self.next
9880    }
9881}
9882
9883unsafe impl InputChainStruct for PhysicalDeviceImageViewImageFormatInfoEXT {
9884    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
9885
9886    #[inline]
9887    fn s_type(&self) -> StructureType {
9888        self.s_type
9889    }
9890
9891    #[inline]
9892    fn next(&self) -> *const c_void {
9893        self.next
9894    }
9895}
9896
9897unsafe impl OutputChainStruct for PhysicalDeviceImageViewImageFormatInfoEXT {
9898    #[inline]
9899    fn next_mut(&self) -> *mut c_void {
9900        self.next
9901    }
9902}
9903
9904unsafe impl InputChainStruct for PhysicalDeviceImageViewMinLodFeaturesEXT {
9905    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT;
9906
9907    #[inline]
9908    fn s_type(&self) -> StructureType {
9909        self.s_type
9910    }
9911
9912    #[inline]
9913    fn next(&self) -> *const c_void {
9914        self.next
9915    }
9916}
9917
9918unsafe impl OutputChainStruct for PhysicalDeviceImageViewMinLodFeaturesEXT {
9919    #[inline]
9920    fn next_mut(&self) -> *mut c_void {
9921        self.next
9922    }
9923}
9924
9925unsafe impl InputChainStruct for PhysicalDeviceImagelessFramebufferFeatures {
9926    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
9927
9928    #[inline]
9929    fn s_type(&self) -> StructureType {
9930        self.s_type
9931    }
9932
9933    #[inline]
9934    fn next(&self) -> *const c_void {
9935        self.next
9936    }
9937}
9938
9939unsafe impl OutputChainStruct for PhysicalDeviceImagelessFramebufferFeatures {
9940    #[inline]
9941    fn next_mut(&self) -> *mut c_void {
9942        self.next
9943    }
9944}
9945
9946unsafe impl InputChainStruct for PhysicalDeviceIndexTypeUint8Features {
9947    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES;
9948
9949    #[inline]
9950    fn s_type(&self) -> StructureType {
9951        self.s_type
9952    }
9953
9954    #[inline]
9955    fn next(&self) -> *const c_void {
9956        self.next
9957    }
9958}
9959
9960unsafe impl OutputChainStruct for PhysicalDeviceIndexTypeUint8Features {
9961    #[inline]
9962    fn next_mut(&self) -> *mut c_void {
9963        self.next
9964    }
9965}
9966
9967unsafe impl InputChainStruct for PhysicalDeviceInheritedViewportScissorFeaturesNV {
9968    const TYPE: StructureType =
9969        StructureType::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
9970
9971    #[inline]
9972    fn s_type(&self) -> StructureType {
9973        self.s_type
9974    }
9975
9976    #[inline]
9977    fn next(&self) -> *const c_void {
9978        self.next
9979    }
9980}
9981
9982unsafe impl OutputChainStruct for PhysicalDeviceInheritedViewportScissorFeaturesNV {
9983    #[inline]
9984    fn next_mut(&self) -> *mut c_void {
9985        self.next
9986    }
9987}
9988
9989unsafe impl InputChainStruct for PhysicalDeviceInlineUniformBlockFeatures {
9990    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
9991
9992    #[inline]
9993    fn s_type(&self) -> StructureType {
9994        self.s_type
9995    }
9996
9997    #[inline]
9998    fn next(&self) -> *const c_void {
9999        self.next
10000    }
10001}
10002
10003unsafe impl OutputChainStruct for PhysicalDeviceInlineUniformBlockFeatures {
10004    #[inline]
10005    fn next_mut(&self) -> *mut c_void {
10006        self.next
10007    }
10008}
10009
10010unsafe impl InputChainStruct for PhysicalDeviceInlineUniformBlockProperties {
10011    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
10012
10013    #[inline]
10014    fn s_type(&self) -> StructureType {
10015        self.s_type
10016    }
10017
10018    #[inline]
10019    fn next(&self) -> *const c_void {
10020        self.next
10021    }
10022}
10023
10024unsafe impl OutputChainStruct for PhysicalDeviceInlineUniformBlockProperties {
10025    #[inline]
10026    fn next_mut(&self) -> *mut c_void {
10027        self.next
10028    }
10029}
10030
10031unsafe impl InputChainStruct for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
10032    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI;
10033
10034    #[inline]
10035    fn s_type(&self) -> StructureType {
10036        self.s_type
10037    }
10038
10039    #[inline]
10040    fn next(&self) -> *const c_void {
10041        self.next
10042    }
10043}
10044
10045unsafe impl OutputChainStruct for PhysicalDeviceInvocationMaskFeaturesHUAWEI {
10046    #[inline]
10047    fn next_mut(&self) -> *mut c_void {
10048        self.next
10049    }
10050}
10051
10052unsafe impl InputChainStruct for PhysicalDeviceLayeredApiPropertiesKHR {
10053    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR;
10054
10055    #[inline]
10056    fn s_type(&self) -> StructureType {
10057        self.s_type
10058    }
10059
10060    #[inline]
10061    fn next(&self) -> *const c_void {
10062        self.next
10063    }
10064}
10065
10066unsafe impl OutputChainStruct for PhysicalDeviceLayeredApiPropertiesKHR {
10067    #[inline]
10068    fn next_mut(&self) -> *mut c_void {
10069        self.next
10070    }
10071}
10072
10073unsafe impl InputChainStruct for PhysicalDeviceLayeredApiPropertiesListKHR {
10074    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR;
10075
10076    #[inline]
10077    fn s_type(&self) -> StructureType {
10078        self.s_type
10079    }
10080
10081    #[inline]
10082    fn next(&self) -> *const c_void {
10083        self.next
10084    }
10085}
10086
10087unsafe impl OutputChainStruct for PhysicalDeviceLayeredApiPropertiesListKHR {
10088    #[inline]
10089    fn next_mut(&self) -> *mut c_void {
10090        self.next
10091    }
10092}
10093
10094unsafe impl InputChainStruct for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
10095    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR;
10096
10097    #[inline]
10098    fn s_type(&self) -> StructureType {
10099        self.s_type
10100    }
10101
10102    #[inline]
10103    fn next(&self) -> *const c_void {
10104        self.next
10105    }
10106}
10107
10108unsafe impl OutputChainStruct for PhysicalDeviceLayeredApiVulkanPropertiesKHR {
10109    #[inline]
10110    fn next_mut(&self) -> *mut c_void {
10111        self.next
10112    }
10113}
10114
10115unsafe impl InputChainStruct for PhysicalDeviceLayeredDriverPropertiesMSFT {
10116    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT;
10117
10118    #[inline]
10119    fn s_type(&self) -> StructureType {
10120        self.s_type
10121    }
10122
10123    #[inline]
10124    fn next(&self) -> *const c_void {
10125        self.next
10126    }
10127}
10128
10129unsafe impl OutputChainStruct for PhysicalDeviceLayeredDriverPropertiesMSFT {
10130    #[inline]
10131    fn next_mut(&self) -> *mut c_void {
10132        self.next
10133    }
10134}
10135
10136unsafe impl InputChainStruct for PhysicalDeviceLegacyDitheringFeaturesEXT {
10137    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT;
10138
10139    #[inline]
10140    fn s_type(&self) -> StructureType {
10141        self.s_type
10142    }
10143
10144    #[inline]
10145    fn next(&self) -> *const c_void {
10146        self.next
10147    }
10148}
10149
10150unsafe impl OutputChainStruct for PhysicalDeviceLegacyDitheringFeaturesEXT {
10151    #[inline]
10152    fn next_mut(&self) -> *mut c_void {
10153        self.next
10154    }
10155}
10156
10157unsafe impl InputChainStruct for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
10158    const TYPE: StructureType =
10159        StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT;
10160
10161    #[inline]
10162    fn s_type(&self) -> StructureType {
10163        self.s_type
10164    }
10165
10166    #[inline]
10167    fn next(&self) -> *const c_void {
10168        self.next
10169    }
10170}
10171
10172unsafe impl OutputChainStruct for PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
10173    #[inline]
10174    fn next_mut(&self) -> *mut c_void {
10175        self.next
10176    }
10177}
10178
10179unsafe impl InputChainStruct for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
10180    const TYPE: StructureType =
10181        StructureType::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT;
10182
10183    #[inline]
10184    fn s_type(&self) -> StructureType {
10185        self.s_type
10186    }
10187
10188    #[inline]
10189    fn next(&self) -> *const c_void {
10190        self.next
10191    }
10192}
10193
10194unsafe impl OutputChainStruct for PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
10195    #[inline]
10196    fn next_mut(&self) -> *mut c_void {
10197        self.next
10198    }
10199}
10200
10201unsafe impl InputChainStruct for PhysicalDeviceLineRasterizationFeatures {
10202    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES;
10203
10204    #[inline]
10205    fn s_type(&self) -> StructureType {
10206        self.s_type
10207    }
10208
10209    #[inline]
10210    fn next(&self) -> *const c_void {
10211        self.next
10212    }
10213}
10214
10215unsafe impl OutputChainStruct for PhysicalDeviceLineRasterizationFeatures {
10216    #[inline]
10217    fn next_mut(&self) -> *mut c_void {
10218        self.next
10219    }
10220}
10221
10222unsafe impl InputChainStruct for PhysicalDeviceLineRasterizationProperties {
10223    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES;
10224
10225    #[inline]
10226    fn s_type(&self) -> StructureType {
10227        self.s_type
10228    }
10229
10230    #[inline]
10231    fn next(&self) -> *const c_void {
10232        self.next
10233    }
10234}
10235
10236unsafe impl OutputChainStruct for PhysicalDeviceLineRasterizationProperties {
10237    #[inline]
10238    fn next_mut(&self) -> *mut c_void {
10239        self.next
10240    }
10241}
10242
10243unsafe impl InputChainStruct for PhysicalDeviceLinearColorAttachmentFeaturesNV {
10244    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV;
10245
10246    #[inline]
10247    fn s_type(&self) -> StructureType {
10248        self.s_type
10249    }
10250
10251    #[inline]
10252    fn next(&self) -> *const c_void {
10253        self.next
10254    }
10255}
10256
10257unsafe impl OutputChainStruct for PhysicalDeviceLinearColorAttachmentFeaturesNV {
10258    #[inline]
10259    fn next_mut(&self) -> *mut c_void {
10260        self.next
10261    }
10262}
10263
10264unsafe impl InputChainStruct for PhysicalDeviceMaintenance10FeaturesKHR {
10265    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR;
10266
10267    #[inline]
10268    fn s_type(&self) -> StructureType {
10269        self.s_type
10270    }
10271
10272    #[inline]
10273    fn next(&self) -> *const c_void {
10274        self.next
10275    }
10276}
10277
10278unsafe impl OutputChainStruct for PhysicalDeviceMaintenance10FeaturesKHR {
10279    #[inline]
10280    fn next_mut(&self) -> *mut c_void {
10281        self.next
10282    }
10283}
10284
10285unsafe impl InputChainStruct for PhysicalDeviceMaintenance10PropertiesKHR {
10286    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR;
10287
10288    #[inline]
10289    fn s_type(&self) -> StructureType {
10290        self.s_type
10291    }
10292
10293    #[inline]
10294    fn next(&self) -> *const c_void {
10295        self.next
10296    }
10297}
10298
10299unsafe impl OutputChainStruct for PhysicalDeviceMaintenance10PropertiesKHR {
10300    #[inline]
10301    fn next_mut(&self) -> *mut c_void {
10302        self.next
10303    }
10304}
10305
10306unsafe impl InputChainStruct for PhysicalDeviceMaintenance3Properties {
10307    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
10308
10309    #[inline]
10310    fn s_type(&self) -> StructureType {
10311        self.s_type
10312    }
10313
10314    #[inline]
10315    fn next(&self) -> *const c_void {
10316        self.next
10317    }
10318}
10319
10320unsafe impl OutputChainStruct for PhysicalDeviceMaintenance3Properties {
10321    #[inline]
10322    fn next_mut(&self) -> *mut c_void {
10323        self.next
10324    }
10325}
10326
10327unsafe impl InputChainStruct for PhysicalDeviceMaintenance4Features {
10328    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
10329
10330    #[inline]
10331    fn s_type(&self) -> StructureType {
10332        self.s_type
10333    }
10334
10335    #[inline]
10336    fn next(&self) -> *const c_void {
10337        self.next
10338    }
10339}
10340
10341unsafe impl OutputChainStruct for PhysicalDeviceMaintenance4Features {
10342    #[inline]
10343    fn next_mut(&self) -> *mut c_void {
10344        self.next
10345    }
10346}
10347
10348unsafe impl InputChainStruct for PhysicalDeviceMaintenance4Properties {
10349    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
10350
10351    #[inline]
10352    fn s_type(&self) -> StructureType {
10353        self.s_type
10354    }
10355
10356    #[inline]
10357    fn next(&self) -> *const c_void {
10358        self.next
10359    }
10360}
10361
10362unsafe impl OutputChainStruct for PhysicalDeviceMaintenance4Properties {
10363    #[inline]
10364    fn next_mut(&self) -> *mut c_void {
10365        self.next
10366    }
10367}
10368
10369unsafe impl InputChainStruct for PhysicalDeviceMaintenance5Features {
10370    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES;
10371
10372    #[inline]
10373    fn s_type(&self) -> StructureType {
10374        self.s_type
10375    }
10376
10377    #[inline]
10378    fn next(&self) -> *const c_void {
10379        self.next
10380    }
10381}
10382
10383unsafe impl OutputChainStruct for PhysicalDeviceMaintenance5Features {
10384    #[inline]
10385    fn next_mut(&self) -> *mut c_void {
10386        self.next
10387    }
10388}
10389
10390unsafe impl InputChainStruct for PhysicalDeviceMaintenance5Properties {
10391    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES;
10392
10393    #[inline]
10394    fn s_type(&self) -> StructureType {
10395        self.s_type
10396    }
10397
10398    #[inline]
10399    fn next(&self) -> *const c_void {
10400        self.next
10401    }
10402}
10403
10404unsafe impl OutputChainStruct for PhysicalDeviceMaintenance5Properties {
10405    #[inline]
10406    fn next_mut(&self) -> *mut c_void {
10407        self.next
10408    }
10409}
10410
10411unsafe impl InputChainStruct for PhysicalDeviceMaintenance6Features {
10412    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES;
10413
10414    #[inline]
10415    fn s_type(&self) -> StructureType {
10416        self.s_type
10417    }
10418
10419    #[inline]
10420    fn next(&self) -> *const c_void {
10421        self.next
10422    }
10423}
10424
10425unsafe impl OutputChainStruct for PhysicalDeviceMaintenance6Features {
10426    #[inline]
10427    fn next_mut(&self) -> *mut c_void {
10428        self.next
10429    }
10430}
10431
10432unsafe impl InputChainStruct for PhysicalDeviceMaintenance6Properties {
10433    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES;
10434
10435    #[inline]
10436    fn s_type(&self) -> StructureType {
10437        self.s_type
10438    }
10439
10440    #[inline]
10441    fn next(&self) -> *const c_void {
10442        self.next
10443    }
10444}
10445
10446unsafe impl OutputChainStruct for PhysicalDeviceMaintenance6Properties {
10447    #[inline]
10448    fn next_mut(&self) -> *mut c_void {
10449        self.next
10450    }
10451}
10452
10453unsafe impl InputChainStruct for PhysicalDeviceMaintenance7FeaturesKHR {
10454    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR;
10455
10456    #[inline]
10457    fn s_type(&self) -> StructureType {
10458        self.s_type
10459    }
10460
10461    #[inline]
10462    fn next(&self) -> *const c_void {
10463        self.next
10464    }
10465}
10466
10467unsafe impl OutputChainStruct for PhysicalDeviceMaintenance7FeaturesKHR {
10468    #[inline]
10469    fn next_mut(&self) -> *mut c_void {
10470        self.next
10471    }
10472}
10473
10474unsafe impl InputChainStruct for PhysicalDeviceMaintenance7PropertiesKHR {
10475    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR;
10476
10477    #[inline]
10478    fn s_type(&self) -> StructureType {
10479        self.s_type
10480    }
10481
10482    #[inline]
10483    fn next(&self) -> *const c_void {
10484        self.next
10485    }
10486}
10487
10488unsafe impl OutputChainStruct for PhysicalDeviceMaintenance7PropertiesKHR {
10489    #[inline]
10490    fn next_mut(&self) -> *mut c_void {
10491        self.next
10492    }
10493}
10494
10495unsafe impl InputChainStruct for PhysicalDeviceMaintenance8FeaturesKHR {
10496    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR;
10497
10498    #[inline]
10499    fn s_type(&self) -> StructureType {
10500        self.s_type
10501    }
10502
10503    #[inline]
10504    fn next(&self) -> *const c_void {
10505        self.next
10506    }
10507}
10508
10509unsafe impl OutputChainStruct for PhysicalDeviceMaintenance8FeaturesKHR {
10510    #[inline]
10511    fn next_mut(&self) -> *mut c_void {
10512        self.next
10513    }
10514}
10515
10516unsafe impl InputChainStruct for PhysicalDeviceMaintenance9FeaturesKHR {
10517    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR;
10518
10519    #[inline]
10520    fn s_type(&self) -> StructureType {
10521        self.s_type
10522    }
10523
10524    #[inline]
10525    fn next(&self) -> *const c_void {
10526        self.next
10527    }
10528}
10529
10530unsafe impl OutputChainStruct for PhysicalDeviceMaintenance9FeaturesKHR {
10531    #[inline]
10532    fn next_mut(&self) -> *mut c_void {
10533        self.next
10534    }
10535}
10536
10537unsafe impl InputChainStruct for PhysicalDeviceMaintenance9PropertiesKHR {
10538    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR;
10539
10540    #[inline]
10541    fn s_type(&self) -> StructureType {
10542        self.s_type
10543    }
10544
10545    #[inline]
10546    fn next(&self) -> *const c_void {
10547        self.next
10548    }
10549}
10550
10551unsafe impl OutputChainStruct for PhysicalDeviceMaintenance9PropertiesKHR {
10552    #[inline]
10553    fn next_mut(&self) -> *mut c_void {
10554        self.next
10555    }
10556}
10557
10558unsafe impl InputChainStruct for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
10559    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT;
10560
10561    #[inline]
10562    fn s_type(&self) -> StructureType {
10563        self.s_type
10564    }
10565
10566    #[inline]
10567    fn next(&self) -> *const c_void {
10568        self.next
10569    }
10570}
10571
10572unsafe impl OutputChainStruct for PhysicalDeviceMapMemoryPlacedFeaturesEXT {
10573    #[inline]
10574    fn next_mut(&self) -> *mut c_void {
10575        self.next
10576    }
10577}
10578
10579unsafe impl InputChainStruct for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
10580    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT;
10581
10582    #[inline]
10583    fn s_type(&self) -> StructureType {
10584        self.s_type
10585    }
10586
10587    #[inline]
10588    fn next(&self) -> *const c_void {
10589        self.next
10590    }
10591}
10592
10593unsafe impl OutputChainStruct for PhysicalDeviceMapMemoryPlacedPropertiesEXT {
10594    #[inline]
10595    fn next_mut(&self) -> *mut c_void {
10596        self.next
10597    }
10598}
10599
10600unsafe impl InputChainStruct for PhysicalDeviceMemoryBudgetPropertiesEXT {
10601    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
10602
10603    #[inline]
10604    fn s_type(&self) -> StructureType {
10605        self.s_type
10606    }
10607
10608    #[inline]
10609    fn next(&self) -> *const c_void {
10610        self.next
10611    }
10612}
10613
10614unsafe impl OutputChainStruct for PhysicalDeviceMemoryBudgetPropertiesEXT {
10615    #[inline]
10616    fn next_mut(&self) -> *mut c_void {
10617        self.next
10618    }
10619}
10620
10621unsafe impl InputChainStruct for PhysicalDeviceMemoryDecompressionFeaturesEXT {
10622    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT;
10623
10624    #[inline]
10625    fn s_type(&self) -> StructureType {
10626        self.s_type
10627    }
10628
10629    #[inline]
10630    fn next(&self) -> *const c_void {
10631        self.next
10632    }
10633}
10634
10635unsafe impl OutputChainStruct for PhysicalDeviceMemoryDecompressionFeaturesEXT {
10636    #[inline]
10637    fn next_mut(&self) -> *mut c_void {
10638        self.next
10639    }
10640}
10641
10642unsafe impl InputChainStruct for PhysicalDeviceMemoryDecompressionPropertiesEXT {
10643    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT;
10644
10645    #[inline]
10646    fn s_type(&self) -> StructureType {
10647        self.s_type
10648    }
10649
10650    #[inline]
10651    fn next(&self) -> *const c_void {
10652        self.next
10653    }
10654}
10655
10656unsafe impl OutputChainStruct for PhysicalDeviceMemoryDecompressionPropertiesEXT {
10657    #[inline]
10658    fn next_mut(&self) -> *mut c_void {
10659        self.next
10660    }
10661}
10662
10663unsafe impl InputChainStruct for PhysicalDeviceMemoryPriorityFeaturesEXT {
10664    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
10665
10666    #[inline]
10667    fn s_type(&self) -> StructureType {
10668        self.s_type
10669    }
10670
10671    #[inline]
10672    fn next(&self) -> *const c_void {
10673        self.next
10674    }
10675}
10676
10677unsafe impl OutputChainStruct for PhysicalDeviceMemoryPriorityFeaturesEXT {
10678    #[inline]
10679    fn next_mut(&self) -> *mut c_void {
10680        self.next
10681    }
10682}
10683
10684unsafe impl InputChainStruct for PhysicalDeviceMemoryProperties2 {
10685    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
10686
10687    #[inline]
10688    fn s_type(&self) -> StructureType {
10689        self.s_type
10690    }
10691
10692    #[inline]
10693    fn next(&self) -> *const c_void {
10694        self.next
10695    }
10696}
10697
10698unsafe impl OutputChainStruct for PhysicalDeviceMemoryProperties2 {
10699    #[inline]
10700    fn next_mut(&self) -> *mut c_void {
10701        self.next
10702    }
10703}
10704
10705unsafe impl InputChainStruct for PhysicalDeviceMeshShaderFeaturesEXT {
10706    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT;
10707
10708    #[inline]
10709    fn s_type(&self) -> StructureType {
10710        self.s_type
10711    }
10712
10713    #[inline]
10714    fn next(&self) -> *const c_void {
10715        self.next
10716    }
10717}
10718
10719unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderFeaturesEXT {
10720    #[inline]
10721    fn next_mut(&self) -> *mut c_void {
10722        self.next
10723    }
10724}
10725
10726unsafe impl InputChainStruct for PhysicalDeviceMeshShaderFeaturesNV {
10727    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
10728
10729    #[inline]
10730    fn s_type(&self) -> StructureType {
10731        self.s_type
10732    }
10733
10734    #[inline]
10735    fn next(&self) -> *const c_void {
10736        self.next
10737    }
10738}
10739
10740unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderFeaturesNV {
10741    #[inline]
10742    fn next_mut(&self) -> *mut c_void {
10743        self.next
10744    }
10745}
10746
10747unsafe impl InputChainStruct for PhysicalDeviceMeshShaderPropertiesEXT {
10748    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT;
10749
10750    #[inline]
10751    fn s_type(&self) -> StructureType {
10752        self.s_type
10753    }
10754
10755    #[inline]
10756    fn next(&self) -> *const c_void {
10757        self.next
10758    }
10759}
10760
10761unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderPropertiesEXT {
10762    #[inline]
10763    fn next_mut(&self) -> *mut c_void {
10764        self.next
10765    }
10766}
10767
10768unsafe impl InputChainStruct for PhysicalDeviceMeshShaderPropertiesNV {
10769    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
10770
10771    #[inline]
10772    fn s_type(&self) -> StructureType {
10773        self.s_type
10774    }
10775
10776    #[inline]
10777    fn next(&self) -> *const c_void {
10778        self.next
10779    }
10780}
10781
10782unsafe impl OutputChainStruct for PhysicalDeviceMeshShaderPropertiesNV {
10783    #[inline]
10784    fn next_mut(&self) -> *mut c_void {
10785        self.next
10786    }
10787}
10788
10789unsafe impl InputChainStruct for PhysicalDeviceMultiDrawFeaturesEXT {
10790    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
10791
10792    #[inline]
10793    fn s_type(&self) -> StructureType {
10794        self.s_type
10795    }
10796
10797    #[inline]
10798    fn next(&self) -> *const c_void {
10799        self.next
10800    }
10801}
10802
10803unsafe impl OutputChainStruct for PhysicalDeviceMultiDrawFeaturesEXT {
10804    #[inline]
10805    fn next_mut(&self) -> *mut c_void {
10806        self.next
10807    }
10808}
10809
10810unsafe impl InputChainStruct for PhysicalDeviceMultiDrawPropertiesEXT {
10811    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
10812
10813    #[inline]
10814    fn s_type(&self) -> StructureType {
10815        self.s_type
10816    }
10817
10818    #[inline]
10819    fn next(&self) -> *const c_void {
10820        self.next
10821    }
10822}
10823
10824unsafe impl OutputChainStruct for PhysicalDeviceMultiDrawPropertiesEXT {
10825    #[inline]
10826    fn next_mut(&self) -> *mut c_void {
10827        self.next
10828    }
10829}
10830
10831unsafe impl InputChainStruct for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
10832    const TYPE: StructureType =
10833        StructureType::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT;
10834
10835    #[inline]
10836    fn s_type(&self) -> StructureType {
10837        self.s_type
10838    }
10839
10840    #[inline]
10841    fn next(&self) -> *const c_void {
10842        self.next
10843    }
10844}
10845
10846unsafe impl OutputChainStruct for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
10847    #[inline]
10848    fn next_mut(&self) -> *mut c_void {
10849        self.next
10850    }
10851}
10852
10853unsafe impl InputChainStruct for PhysicalDeviceMultiviewFeatures {
10854    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
10855
10856    #[inline]
10857    fn s_type(&self) -> StructureType {
10858        self.s_type
10859    }
10860
10861    #[inline]
10862    fn next(&self) -> *const c_void {
10863        self.next
10864    }
10865}
10866
10867unsafe impl OutputChainStruct for PhysicalDeviceMultiviewFeatures {
10868    #[inline]
10869    fn next_mut(&self) -> *mut c_void {
10870        self.next
10871    }
10872}
10873
10874unsafe impl InputChainStruct for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
10875    const TYPE: StructureType =
10876        StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
10877
10878    #[inline]
10879    fn s_type(&self) -> StructureType {
10880        self.s_type
10881    }
10882
10883    #[inline]
10884    fn next(&self) -> *const c_void {
10885        self.next
10886    }
10887}
10888
10889unsafe impl OutputChainStruct for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
10890    #[inline]
10891    fn next_mut(&self) -> *mut c_void {
10892        self.next
10893    }
10894}
10895
10896unsafe impl InputChainStruct for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
10897    const TYPE: StructureType =
10898        StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM;
10899
10900    #[inline]
10901    fn s_type(&self) -> StructureType {
10902        self.s_type
10903    }
10904
10905    #[inline]
10906    fn next(&self) -> *const c_void {
10907        self.next
10908    }
10909}
10910
10911unsafe impl OutputChainStruct for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
10912    #[inline]
10913    fn next_mut(&self) -> *mut c_void {
10914        self.next
10915    }
10916}
10917
10918unsafe impl InputChainStruct for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
10919    const TYPE: StructureType =
10920        StructureType::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM;
10921
10922    #[inline]
10923    fn s_type(&self) -> StructureType {
10924        self.s_type
10925    }
10926
10927    #[inline]
10928    fn next(&self) -> *const c_void {
10929        self.next
10930    }
10931}
10932
10933unsafe impl OutputChainStruct for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
10934    #[inline]
10935    fn next_mut(&self) -> *mut c_void {
10936        self.next
10937    }
10938}
10939
10940unsafe impl InputChainStruct for PhysicalDeviceMultiviewProperties {
10941    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
10942
10943    #[inline]
10944    fn s_type(&self) -> StructureType {
10945        self.s_type
10946    }
10947
10948    #[inline]
10949    fn next(&self) -> *const c_void {
10950        self.next
10951    }
10952}
10953
10954unsafe impl OutputChainStruct for PhysicalDeviceMultiviewProperties {
10955    #[inline]
10956    fn next_mut(&self) -> *mut c_void {
10957        self.next
10958    }
10959}
10960
10961unsafe impl InputChainStruct for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
10962    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT;
10963
10964    #[inline]
10965    fn s_type(&self) -> StructureType {
10966        self.s_type
10967    }
10968
10969    #[inline]
10970    fn next(&self) -> *const c_void {
10971        self.next
10972    }
10973}
10974
10975unsafe impl OutputChainStruct for PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
10976    #[inline]
10977    fn next_mut(&self) -> *mut c_void {
10978        self.next
10979    }
10980}
10981
10982unsafe impl InputChainStruct for PhysicalDeviceNestedCommandBufferFeaturesEXT {
10983    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT;
10984
10985    #[inline]
10986    fn s_type(&self) -> StructureType {
10987        self.s_type
10988    }
10989
10990    #[inline]
10991    fn next(&self) -> *const c_void {
10992        self.next
10993    }
10994}
10995
10996unsafe impl OutputChainStruct for PhysicalDeviceNestedCommandBufferFeaturesEXT {
10997    #[inline]
10998    fn next_mut(&self) -> *mut c_void {
10999        self.next
11000    }
11001}
11002
11003unsafe impl InputChainStruct for PhysicalDeviceNestedCommandBufferPropertiesEXT {
11004    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT;
11005
11006    #[inline]
11007    fn s_type(&self) -> StructureType {
11008        self.s_type
11009    }
11010
11011    #[inline]
11012    fn next(&self) -> *const c_void {
11013        self.next
11014    }
11015}
11016
11017unsafe impl OutputChainStruct for PhysicalDeviceNestedCommandBufferPropertiesEXT {
11018    #[inline]
11019    fn next_mut(&self) -> *mut c_void {
11020        self.next
11021    }
11022}
11023
11024unsafe impl InputChainStruct for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
11025    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT;
11026
11027    #[inline]
11028    fn s_type(&self) -> StructureType {
11029        self.s_type
11030    }
11031
11032    #[inline]
11033    fn next(&self) -> *const c_void {
11034        self.next
11035    }
11036}
11037
11038unsafe impl OutputChainStruct for PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
11039    #[inline]
11040    fn next_mut(&self) -> *mut c_void {
11041        self.next
11042    }
11043}
11044
11045unsafe impl InputChainStruct for PhysicalDeviceOpacityMicromapFeaturesEXT {
11046    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT;
11047
11048    #[inline]
11049    fn s_type(&self) -> StructureType {
11050        self.s_type
11051    }
11052
11053    #[inline]
11054    fn next(&self) -> *const c_void {
11055        self.next
11056    }
11057}
11058
11059unsafe impl OutputChainStruct for PhysicalDeviceOpacityMicromapFeaturesEXT {
11060    #[inline]
11061    fn next_mut(&self) -> *mut c_void {
11062        self.next
11063    }
11064}
11065
11066unsafe impl InputChainStruct for PhysicalDeviceOpacityMicromapPropertiesEXT {
11067    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT;
11068
11069    #[inline]
11070    fn s_type(&self) -> StructureType {
11071        self.s_type
11072    }
11073
11074    #[inline]
11075    fn next(&self) -> *const c_void {
11076        self.next
11077    }
11078}
11079
11080unsafe impl OutputChainStruct for PhysicalDeviceOpacityMicromapPropertiesEXT {
11081    #[inline]
11082    fn next_mut(&self) -> *mut c_void {
11083        self.next
11084    }
11085}
11086
11087unsafe impl InputChainStruct for PhysicalDeviceOpticalFlowFeaturesNV {
11088    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV;
11089
11090    #[inline]
11091    fn s_type(&self) -> StructureType {
11092        self.s_type
11093    }
11094
11095    #[inline]
11096    fn next(&self) -> *const c_void {
11097        self.next
11098    }
11099}
11100
11101unsafe impl OutputChainStruct for PhysicalDeviceOpticalFlowFeaturesNV {
11102    #[inline]
11103    fn next_mut(&self) -> *mut c_void {
11104        self.next
11105    }
11106}
11107
11108unsafe impl InputChainStruct for PhysicalDeviceOpticalFlowPropertiesNV {
11109    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV;
11110
11111    #[inline]
11112    fn s_type(&self) -> StructureType {
11113        self.s_type
11114    }
11115
11116    #[inline]
11117    fn next(&self) -> *const c_void {
11118        self.next
11119    }
11120}
11121
11122unsafe impl OutputChainStruct for PhysicalDeviceOpticalFlowPropertiesNV {
11123    #[inline]
11124    fn next_mut(&self) -> *mut c_void {
11125        self.next
11126    }
11127}
11128
11129unsafe impl InputChainStruct for PhysicalDevicePCIBusInfoPropertiesEXT {
11130    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
11131
11132    #[inline]
11133    fn s_type(&self) -> StructureType {
11134        self.s_type
11135    }
11136
11137    #[inline]
11138    fn next(&self) -> *const c_void {
11139        self.next
11140    }
11141}
11142
11143unsafe impl OutputChainStruct for PhysicalDevicePCIBusInfoPropertiesEXT {
11144    #[inline]
11145    fn next_mut(&self) -> *mut c_void {
11146        self.next
11147    }
11148}
11149
11150unsafe impl InputChainStruct for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
11151    const TYPE: StructureType =
11152        StructureType::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT;
11153
11154    #[inline]
11155    fn s_type(&self) -> StructureType {
11156        self.s_type
11157    }
11158
11159    #[inline]
11160    fn next(&self) -> *const c_void {
11161        self.next
11162    }
11163}
11164
11165unsafe impl OutputChainStruct for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
11166    #[inline]
11167    fn next_mut(&self) -> *mut c_void {
11168        self.next
11169    }
11170}
11171
11172unsafe impl InputChainStruct for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
11173    const TYPE: StructureType =
11174        StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV;
11175
11176    #[inline]
11177    fn s_type(&self) -> StructureType {
11178        self.s_type
11179    }
11180
11181    #[inline]
11182    fn next(&self) -> *const c_void {
11183        self.next
11184    }
11185}
11186
11187unsafe impl OutputChainStruct for PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
11188    #[inline]
11189    fn next_mut(&self) -> *mut c_void {
11190        self.next
11191    }
11192}
11193
11194unsafe impl InputChainStruct for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
11195    const TYPE: StructureType =
11196        StructureType::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV;
11197
11198    #[inline]
11199    fn s_type(&self) -> StructureType {
11200        self.s_type
11201    }
11202
11203    #[inline]
11204    fn next(&self) -> *const c_void {
11205        self.next
11206    }
11207}
11208
11209unsafe impl OutputChainStruct for PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
11210    #[inline]
11211    fn next_mut(&self) -> *mut c_void {
11212        self.next
11213    }
11214}
11215
11216unsafe impl InputChainStruct for PhysicalDevicePerStageDescriptorSetFeaturesNV {
11217    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV;
11218
11219    #[inline]
11220    fn s_type(&self) -> StructureType {
11221        self.s_type
11222    }
11223
11224    #[inline]
11225    fn next(&self) -> *const c_void {
11226        self.next
11227    }
11228}
11229
11230unsafe impl OutputChainStruct for PhysicalDevicePerStageDescriptorSetFeaturesNV {
11231    #[inline]
11232    fn next_mut(&self) -> *mut c_void {
11233        self.next
11234    }
11235}
11236
11237unsafe impl InputChainStruct for PhysicalDevicePerformanceCountersByRegionFeaturesARM {
11238    const TYPE: StructureType =
11239        StructureType::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM;
11240
11241    #[inline]
11242    fn s_type(&self) -> StructureType {
11243        self.s_type
11244    }
11245
11246    #[inline]
11247    fn next(&self) -> *const c_void {
11248        self.next
11249    }
11250}
11251
11252unsafe impl OutputChainStruct for PhysicalDevicePerformanceCountersByRegionFeaturesARM {
11253    #[inline]
11254    fn next_mut(&self) -> *mut c_void {
11255        self.next
11256    }
11257}
11258
11259unsafe impl InputChainStruct for PhysicalDevicePerformanceCountersByRegionPropertiesARM {
11260    const TYPE: StructureType =
11261        StructureType::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM;
11262
11263    #[inline]
11264    fn s_type(&self) -> StructureType {
11265        self.s_type
11266    }
11267
11268    #[inline]
11269    fn next(&self) -> *const c_void {
11270        self.next
11271    }
11272}
11273
11274unsafe impl OutputChainStruct for PhysicalDevicePerformanceCountersByRegionPropertiesARM {
11275    #[inline]
11276    fn next_mut(&self) -> *mut c_void {
11277        self.next
11278    }
11279}
11280
11281unsafe impl InputChainStruct for PhysicalDevicePerformanceQueryFeaturesKHR {
11282    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
11283
11284    #[inline]
11285    fn s_type(&self) -> StructureType {
11286        self.s_type
11287    }
11288
11289    #[inline]
11290    fn next(&self) -> *const c_void {
11291        self.next
11292    }
11293}
11294
11295unsafe impl OutputChainStruct for PhysicalDevicePerformanceQueryFeaturesKHR {
11296    #[inline]
11297    fn next_mut(&self) -> *mut c_void {
11298        self.next
11299    }
11300}
11301
11302unsafe impl InputChainStruct for PhysicalDevicePerformanceQueryPropertiesKHR {
11303    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
11304
11305    #[inline]
11306    fn s_type(&self) -> StructureType {
11307        self.s_type
11308    }
11309
11310    #[inline]
11311    fn next(&self) -> *const c_void {
11312        self.next
11313    }
11314}
11315
11316unsafe impl OutputChainStruct for PhysicalDevicePerformanceQueryPropertiesKHR {
11317    #[inline]
11318    fn next_mut(&self) -> *mut c_void {
11319        self.next
11320    }
11321}
11322
11323unsafe impl InputChainStruct for PhysicalDevicePipelineBinaryFeaturesKHR {
11324    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR;
11325
11326    #[inline]
11327    fn s_type(&self) -> StructureType {
11328        self.s_type
11329    }
11330
11331    #[inline]
11332    fn next(&self) -> *const c_void {
11333        self.next
11334    }
11335}
11336
11337unsafe impl OutputChainStruct for PhysicalDevicePipelineBinaryFeaturesKHR {
11338    #[inline]
11339    fn next_mut(&self) -> *mut c_void {
11340        self.next
11341    }
11342}
11343
11344unsafe impl InputChainStruct for PhysicalDevicePipelineBinaryPropertiesKHR {
11345    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR;
11346
11347    #[inline]
11348    fn s_type(&self) -> StructureType {
11349        self.s_type
11350    }
11351
11352    #[inline]
11353    fn next(&self) -> *const c_void {
11354        self.next
11355    }
11356}
11357
11358unsafe impl OutputChainStruct for PhysicalDevicePipelineBinaryPropertiesKHR {
11359    #[inline]
11360    fn next_mut(&self) -> *mut c_void {
11361        self.next
11362    }
11363}
11364
11365unsafe impl InputChainStruct for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
11366    const TYPE: StructureType =
11367        StructureType::PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC;
11368
11369    #[inline]
11370    fn s_type(&self) -> StructureType {
11371        self.s_type
11372    }
11373
11374    #[inline]
11375    fn next(&self) -> *const c_void {
11376        self.next
11377    }
11378}
11379
11380unsafe impl OutputChainStruct for PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
11381    #[inline]
11382    fn next_mut(&self) -> *mut c_void {
11383        self.next
11384    }
11385}
11386
11387unsafe impl InputChainStruct for PhysicalDevicePipelineCreationCacheControlFeatures {
11388    const TYPE: StructureType =
11389        StructureType::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
11390
11391    #[inline]
11392    fn s_type(&self) -> StructureType {
11393        self.s_type
11394    }
11395
11396    #[inline]
11397    fn next(&self) -> *const c_void {
11398        self.next
11399    }
11400}
11401
11402unsafe impl OutputChainStruct for PhysicalDevicePipelineCreationCacheControlFeatures {
11403    #[inline]
11404    fn next_mut(&self) -> *mut c_void {
11405        self.next
11406    }
11407}
11408
11409unsafe impl InputChainStruct for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11410    const TYPE: StructureType =
11411        StructureType::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
11412
11413    #[inline]
11414    fn s_type(&self) -> StructureType {
11415        self.s_type
11416    }
11417
11418    #[inline]
11419    fn next(&self) -> *const c_void {
11420        self.next
11421    }
11422}
11423
11424unsafe impl OutputChainStruct for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11425    #[inline]
11426    fn next_mut(&self) -> *mut c_void {
11427        self.next
11428    }
11429}
11430
11431unsafe impl InputChainStruct for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
11432    const TYPE: StructureType =
11433        StructureType::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT;
11434
11435    #[inline]
11436    fn s_type(&self) -> StructureType {
11437        self.s_type
11438    }
11439
11440    #[inline]
11441    fn next(&self) -> *const c_void {
11442        self.next
11443    }
11444}
11445
11446unsafe impl OutputChainStruct for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
11447    #[inline]
11448    fn next_mut(&self) -> *mut c_void {
11449        self.next
11450    }
11451}
11452
11453unsafe impl InputChainStruct for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
11454    const TYPE: StructureType =
11455        StructureType::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM;
11456
11457    #[inline]
11458    fn s_type(&self) -> StructureType {
11459        self.s_type
11460    }
11461
11462    #[inline]
11463    fn next(&self) -> *const c_void {
11464        self.next
11465    }
11466}
11467
11468unsafe impl OutputChainStruct for PhysicalDevicePipelineOpacityMicromapFeaturesARM {
11469    #[inline]
11470    fn next_mut(&self) -> *mut c_void {
11471        self.next
11472    }
11473}
11474
11475unsafe impl InputChainStruct for PhysicalDevicePipelinePropertiesFeaturesEXT {
11476    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT;
11477
11478    #[inline]
11479    fn s_type(&self) -> StructureType {
11480        self.s_type
11481    }
11482
11483    #[inline]
11484    fn next(&self) -> *const c_void {
11485        self.next
11486    }
11487}
11488
11489unsafe impl OutputChainStruct for PhysicalDevicePipelinePropertiesFeaturesEXT {
11490    #[inline]
11491    fn next_mut(&self) -> *mut c_void {
11492        self.next
11493    }
11494}
11495
11496unsafe impl InputChainStruct for PhysicalDevicePipelineProtectedAccessFeatures {
11497    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES;
11498
11499    #[inline]
11500    fn s_type(&self) -> StructureType {
11501        self.s_type
11502    }
11503
11504    #[inline]
11505    fn next(&self) -> *const c_void {
11506        self.next
11507    }
11508}
11509
11510unsafe impl OutputChainStruct for PhysicalDevicePipelineProtectedAccessFeatures {
11511    #[inline]
11512    fn next_mut(&self) -> *mut c_void {
11513        self.next
11514    }
11515}
11516
11517unsafe impl InputChainStruct for PhysicalDevicePipelineRobustnessFeatures {
11518    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES;
11519
11520    #[inline]
11521    fn s_type(&self) -> StructureType {
11522        self.s_type
11523    }
11524
11525    #[inline]
11526    fn next(&self) -> *const c_void {
11527        self.next
11528    }
11529}
11530
11531unsafe impl OutputChainStruct for PhysicalDevicePipelineRobustnessFeatures {
11532    #[inline]
11533    fn next_mut(&self) -> *mut c_void {
11534        self.next
11535    }
11536}
11537
11538unsafe impl InputChainStruct for PhysicalDevicePipelineRobustnessProperties {
11539    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES;
11540
11541    #[inline]
11542    fn s_type(&self) -> StructureType {
11543        self.s_type
11544    }
11545
11546    #[inline]
11547    fn next(&self) -> *const c_void {
11548        self.next
11549    }
11550}
11551
11552unsafe impl OutputChainStruct for PhysicalDevicePipelineRobustnessProperties {
11553    #[inline]
11554    fn next_mut(&self) -> *mut c_void {
11555        self.next
11556    }
11557}
11558
11559unsafe impl InputChainStruct for PhysicalDevicePointClippingProperties {
11560    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
11561
11562    #[inline]
11563    fn s_type(&self) -> StructureType {
11564        self.s_type
11565    }
11566
11567    #[inline]
11568    fn next(&self) -> *const c_void {
11569        self.next
11570    }
11571}
11572
11573unsafe impl OutputChainStruct for PhysicalDevicePointClippingProperties {
11574    #[inline]
11575    fn next_mut(&self) -> *mut c_void {
11576        self.next
11577    }
11578}
11579
11580unsafe impl InputChainStruct for PhysicalDevicePortabilitySubsetFeaturesKHR {
11581    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
11582
11583    #[inline]
11584    fn s_type(&self) -> StructureType {
11585        self.s_type
11586    }
11587
11588    #[inline]
11589    fn next(&self) -> *const c_void {
11590        self.next
11591    }
11592}
11593
11594unsafe impl OutputChainStruct for PhysicalDevicePortabilitySubsetFeaturesKHR {
11595    #[inline]
11596    fn next_mut(&self) -> *mut c_void {
11597        self.next
11598    }
11599}
11600
11601unsafe impl InputChainStruct for PhysicalDevicePortabilitySubsetPropertiesKHR {
11602    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
11603
11604    #[inline]
11605    fn s_type(&self) -> StructureType {
11606        self.s_type
11607    }
11608
11609    #[inline]
11610    fn next(&self) -> *const c_void {
11611        self.next
11612    }
11613}
11614
11615unsafe impl OutputChainStruct for PhysicalDevicePortabilitySubsetPropertiesKHR {
11616    #[inline]
11617    fn next_mut(&self) -> *mut c_void {
11618        self.next
11619    }
11620}
11621
11622unsafe impl InputChainStruct for PhysicalDevicePresentBarrierFeaturesNV {
11623    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV;
11624
11625    #[inline]
11626    fn s_type(&self) -> StructureType {
11627        self.s_type
11628    }
11629
11630    #[inline]
11631    fn next(&self) -> *const c_void {
11632        self.next
11633    }
11634}
11635
11636unsafe impl OutputChainStruct for PhysicalDevicePresentBarrierFeaturesNV {
11637    #[inline]
11638    fn next_mut(&self) -> *mut c_void {
11639        self.next
11640    }
11641}
11642
11643unsafe impl InputChainStruct for PhysicalDevicePresentId2FeaturesKHR {
11644    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR;
11645
11646    #[inline]
11647    fn s_type(&self) -> StructureType {
11648        self.s_type
11649    }
11650
11651    #[inline]
11652    fn next(&self) -> *const c_void {
11653        self.next
11654    }
11655}
11656
11657unsafe impl OutputChainStruct for PhysicalDevicePresentId2FeaturesKHR {
11658    #[inline]
11659    fn next_mut(&self) -> *mut c_void {
11660        self.next
11661    }
11662}
11663
11664unsafe impl InputChainStruct for PhysicalDevicePresentIdFeaturesKHR {
11665    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR;
11666
11667    #[inline]
11668    fn s_type(&self) -> StructureType {
11669        self.s_type
11670    }
11671
11672    #[inline]
11673    fn next(&self) -> *const c_void {
11674        self.next
11675    }
11676}
11677
11678unsafe impl OutputChainStruct for PhysicalDevicePresentIdFeaturesKHR {
11679    #[inline]
11680    fn next_mut(&self) -> *mut c_void {
11681        self.next
11682    }
11683}
11684
11685unsafe impl InputChainStruct for PhysicalDevicePresentMeteringFeaturesNV {
11686    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV;
11687
11688    #[inline]
11689    fn s_type(&self) -> StructureType {
11690        self.s_type
11691    }
11692
11693    #[inline]
11694    fn next(&self) -> *const c_void {
11695        self.next
11696    }
11697}
11698
11699unsafe impl OutputChainStruct for PhysicalDevicePresentMeteringFeaturesNV {
11700    #[inline]
11701    fn next_mut(&self) -> *mut c_void {
11702        self.next
11703    }
11704}
11705
11706unsafe impl InputChainStruct for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
11707    const TYPE: StructureType =
11708        StructureType::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR;
11709
11710    #[inline]
11711    fn s_type(&self) -> StructureType {
11712        self.s_type
11713    }
11714
11715    #[inline]
11716    fn next(&self) -> *const c_void {
11717        self.next
11718    }
11719}
11720
11721unsafe impl OutputChainStruct for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
11722    #[inline]
11723    fn next_mut(&self) -> *mut c_void {
11724        self.next
11725    }
11726}
11727
11728unsafe impl InputChainStruct for PhysicalDevicePresentTimingFeaturesEXT {
11729    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT;
11730
11731    #[inline]
11732    fn s_type(&self) -> StructureType {
11733        self.s_type
11734    }
11735
11736    #[inline]
11737    fn next(&self) -> *const c_void {
11738        self.next
11739    }
11740}
11741
11742unsafe impl OutputChainStruct for PhysicalDevicePresentTimingFeaturesEXT {
11743    #[inline]
11744    fn next_mut(&self) -> *mut c_void {
11745        self.next
11746    }
11747}
11748
11749unsafe impl InputChainStruct for PhysicalDevicePresentWait2FeaturesKHR {
11750    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR;
11751
11752    #[inline]
11753    fn s_type(&self) -> StructureType {
11754        self.s_type
11755    }
11756
11757    #[inline]
11758    fn next(&self) -> *const c_void {
11759        self.next
11760    }
11761}
11762
11763unsafe impl OutputChainStruct for PhysicalDevicePresentWait2FeaturesKHR {
11764    #[inline]
11765    fn next_mut(&self) -> *mut c_void {
11766        self.next
11767    }
11768}
11769
11770unsafe impl InputChainStruct for PhysicalDevicePresentWaitFeaturesKHR {
11771    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR;
11772
11773    #[inline]
11774    fn s_type(&self) -> StructureType {
11775        self.s_type
11776    }
11777
11778    #[inline]
11779    fn next(&self) -> *const c_void {
11780        self.next
11781    }
11782}
11783
11784unsafe impl OutputChainStruct for PhysicalDevicePresentWaitFeaturesKHR {
11785    #[inline]
11786    fn next_mut(&self) -> *mut c_void {
11787        self.next
11788    }
11789}
11790
11791unsafe impl InputChainStruct for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
11792    const TYPE: StructureType =
11793        StructureType::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT;
11794
11795    #[inline]
11796    fn s_type(&self) -> StructureType {
11797        self.s_type
11798    }
11799
11800    #[inline]
11801    fn next(&self) -> *const c_void {
11802        self.next
11803    }
11804}
11805
11806unsafe impl OutputChainStruct for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
11807    #[inline]
11808    fn next_mut(&self) -> *mut c_void {
11809        self.next
11810    }
11811}
11812
11813unsafe impl InputChainStruct for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
11814    const TYPE: StructureType =
11815        StructureType::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT;
11816
11817    #[inline]
11818    fn s_type(&self) -> StructureType {
11819        self.s_type
11820    }
11821
11822    #[inline]
11823    fn next(&self) -> *const c_void {
11824        self.next
11825    }
11826}
11827
11828unsafe impl OutputChainStruct for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
11829    #[inline]
11830    fn next_mut(&self) -> *mut c_void {
11831        self.next
11832    }
11833}
11834
11835unsafe impl InputChainStruct for PhysicalDevicePrivateDataFeatures {
11836    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
11837
11838    #[inline]
11839    fn s_type(&self) -> StructureType {
11840        self.s_type
11841    }
11842
11843    #[inline]
11844    fn next(&self) -> *const c_void {
11845        self.next
11846    }
11847}
11848
11849unsafe impl OutputChainStruct for PhysicalDevicePrivateDataFeatures {
11850    #[inline]
11851    fn next_mut(&self) -> *mut c_void {
11852        self.next
11853    }
11854}
11855
11856unsafe impl InputChainStruct for PhysicalDeviceProperties2 {
11857    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROPERTIES_2;
11858
11859    #[inline]
11860    fn s_type(&self) -> StructureType {
11861        self.s_type
11862    }
11863
11864    #[inline]
11865    fn next(&self) -> *const c_void {
11866        self.next
11867    }
11868}
11869
11870unsafe impl OutputChainStruct for PhysicalDeviceProperties2 {
11871    #[inline]
11872    fn next_mut(&self) -> *mut c_void {
11873        self.next
11874    }
11875}
11876
11877unsafe impl InputChainStruct for PhysicalDeviceProtectedMemoryFeatures {
11878    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
11879
11880    #[inline]
11881    fn s_type(&self) -> StructureType {
11882        self.s_type
11883    }
11884
11885    #[inline]
11886    fn next(&self) -> *const c_void {
11887        self.next
11888    }
11889}
11890
11891unsafe impl OutputChainStruct for PhysicalDeviceProtectedMemoryFeatures {
11892    #[inline]
11893    fn next_mut(&self) -> *mut c_void {
11894        self.next
11895    }
11896}
11897
11898unsafe impl InputChainStruct for PhysicalDeviceProtectedMemoryProperties {
11899    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
11900
11901    #[inline]
11902    fn s_type(&self) -> StructureType {
11903        self.s_type
11904    }
11905
11906    #[inline]
11907    fn next(&self) -> *const c_void {
11908        self.next
11909    }
11910}
11911
11912unsafe impl OutputChainStruct for PhysicalDeviceProtectedMemoryProperties {
11913    #[inline]
11914    fn next_mut(&self) -> *mut c_void {
11915        self.next
11916    }
11917}
11918
11919unsafe impl InputChainStruct for PhysicalDeviceProvokingVertexFeaturesEXT {
11920    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
11921
11922    #[inline]
11923    fn s_type(&self) -> StructureType {
11924        self.s_type
11925    }
11926
11927    #[inline]
11928    fn next(&self) -> *const c_void {
11929        self.next
11930    }
11931}
11932
11933unsafe impl OutputChainStruct for PhysicalDeviceProvokingVertexFeaturesEXT {
11934    #[inline]
11935    fn next_mut(&self) -> *mut c_void {
11936        self.next
11937    }
11938}
11939
11940unsafe impl InputChainStruct for PhysicalDeviceProvokingVertexPropertiesEXT {
11941    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
11942
11943    #[inline]
11944    fn s_type(&self) -> StructureType {
11945        self.s_type
11946    }
11947
11948    #[inline]
11949    fn next(&self) -> *const c_void {
11950        self.next
11951    }
11952}
11953
11954unsafe impl OutputChainStruct for PhysicalDeviceProvokingVertexPropertiesEXT {
11955    #[inline]
11956    fn next_mut(&self) -> *mut c_void {
11957        self.next
11958    }
11959}
11960
11961unsafe impl InputChainStruct for PhysicalDevicePushDescriptorProperties {
11962    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES;
11963
11964    #[inline]
11965    fn s_type(&self) -> StructureType {
11966        self.s_type
11967    }
11968
11969    #[inline]
11970    fn next(&self) -> *const c_void {
11971        self.next
11972    }
11973}
11974
11975unsafe impl OutputChainStruct for PhysicalDevicePushDescriptorProperties {
11976    #[inline]
11977    fn next_mut(&self) -> *mut c_void {
11978        self.next
11979    }
11980}
11981
11982unsafe impl InputChainStruct for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
11983    const TYPE: StructureType =
11984        StructureType::PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM;
11985
11986    #[inline]
11987    fn s_type(&self) -> StructureType {
11988        self.s_type
11989    }
11990
11991    #[inline]
11992    fn next(&self) -> *const c_void {
11993        self.next
11994    }
11995}
11996
11997unsafe impl InputChainStruct for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
11998    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT;
11999
12000    #[inline]
12001    fn s_type(&self) -> StructureType {
12002        self.s_type
12003    }
12004
12005    #[inline]
12006    fn next(&self) -> *const c_void {
12007        self.next
12008    }
12009}
12010
12011unsafe impl OutputChainStruct for PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
12012    #[inline]
12013    fn next_mut(&self) -> *mut c_void {
12014        self.next
12015    }
12016}
12017
12018unsafe impl InputChainStruct for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
12019    const TYPE: StructureType =
12020        StructureType::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT;
12021
12022    #[inline]
12023    fn s_type(&self) -> StructureType {
12024        self.s_type
12025    }
12026
12027    #[inline]
12028    fn next(&self) -> *const c_void {
12029        self.next
12030    }
12031}
12032
12033unsafe impl OutputChainStruct for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
12034    #[inline]
12035    fn next_mut(&self) -> *mut c_void {
12036        self.next
12037    }
12038}
12039
12040unsafe impl InputChainStruct for PhysicalDeviceRawAccessChainsFeaturesNV {
12041    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV;
12042
12043    #[inline]
12044    fn s_type(&self) -> StructureType {
12045        self.s_type
12046    }
12047
12048    #[inline]
12049    fn next(&self) -> *const c_void {
12050        self.next
12051    }
12052}
12053
12054unsafe impl OutputChainStruct for PhysicalDeviceRawAccessChainsFeaturesNV {
12055    #[inline]
12056    fn next_mut(&self) -> *mut c_void {
12057        self.next
12058    }
12059}
12060
12061unsafe impl InputChainStruct for PhysicalDeviceRayQueryFeaturesKHR {
12062    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
12063
12064    #[inline]
12065    fn s_type(&self) -> StructureType {
12066        self.s_type
12067    }
12068
12069    #[inline]
12070    fn next(&self) -> *const c_void {
12071        self.next
12072    }
12073}
12074
12075unsafe impl OutputChainStruct for PhysicalDeviceRayQueryFeaturesKHR {
12076    #[inline]
12077    fn next_mut(&self) -> *mut c_void {
12078        self.next
12079    }
12080}
12081
12082unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
12083    const TYPE: StructureType =
12084        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT;
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 PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
12098    #[inline]
12099    fn next_mut(&self) -> *mut c_void {
12100        self.next
12101    }
12102}
12103
12104unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
12105    const TYPE: StructureType =
12106        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV;
12107
12108    #[inline]
12109    fn s_type(&self) -> StructureType {
12110        self.s_type
12111    }
12112
12113    #[inline]
12114    fn next(&self) -> *const c_void {
12115        self.next
12116    }
12117}
12118
12119unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
12120    #[inline]
12121    fn next_mut(&self) -> *mut c_void {
12122        self.next
12123    }
12124}
12125
12126unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
12127    const TYPE: StructureType =
12128        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT;
12129
12130    #[inline]
12131    fn s_type(&self) -> StructureType {
12132        self.s_type
12133    }
12134
12135    #[inline]
12136    fn next(&self) -> *const c_void {
12137        self.next
12138    }
12139}
12140
12141unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
12142    #[inline]
12143    fn next_mut(&self) -> *mut c_void {
12144        self.next
12145    }
12146}
12147
12148unsafe impl InputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
12149    const TYPE: StructureType =
12150        StructureType::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV;
12151
12152    #[inline]
12153    fn s_type(&self) -> StructureType {
12154        self.s_type
12155    }
12156
12157    #[inline]
12158    fn next(&self) -> *const c_void {
12159        self.next
12160    }
12161}
12162
12163unsafe impl OutputChainStruct for PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
12164    #[inline]
12165    fn next_mut(&self) -> *mut c_void {
12166        self.next
12167    }
12168}
12169
12170unsafe impl InputChainStruct for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
12171    const TYPE: StructureType =
12172        StructureType::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV;
12173
12174    #[inline]
12175    fn s_type(&self) -> StructureType {
12176        self.s_type
12177    }
12178
12179    #[inline]
12180    fn next(&self) -> *const c_void {
12181        self.next
12182    }
12183}
12184
12185unsafe impl OutputChainStruct for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
12186    #[inline]
12187    fn next_mut(&self) -> *mut c_void {
12188        self.next
12189    }
12190}
12191
12192unsafe impl InputChainStruct for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12193    const TYPE: StructureType =
12194        StructureType::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR;
12195
12196    #[inline]
12197    fn s_type(&self) -> StructureType {
12198        self.s_type
12199    }
12200
12201    #[inline]
12202    fn next(&self) -> *const c_void {
12203        self.next
12204    }
12205}
12206
12207unsafe impl OutputChainStruct for PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12208    #[inline]
12209    fn next_mut(&self) -> *mut c_void {
12210        self.next
12211    }
12212}
12213
12214unsafe impl InputChainStruct for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
12215    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
12216
12217    #[inline]
12218    fn s_type(&self) -> StructureType {
12219        self.s_type
12220    }
12221
12222    #[inline]
12223    fn next(&self) -> *const c_void {
12224        self.next
12225    }
12226}
12227
12228unsafe impl OutputChainStruct for PhysicalDeviceRayTracingMotionBlurFeaturesNV {
12229    #[inline]
12230    fn next_mut(&self) -> *mut c_void {
12231        self.next
12232    }
12233}
12234
12235unsafe impl InputChainStruct for PhysicalDeviceRayTracingPipelineFeaturesKHR {
12236    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
12237
12238    #[inline]
12239    fn s_type(&self) -> StructureType {
12240        self.s_type
12241    }
12242
12243    #[inline]
12244    fn next(&self) -> *const c_void {
12245        self.next
12246    }
12247}
12248
12249unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPipelineFeaturesKHR {
12250    #[inline]
12251    fn next_mut(&self) -> *mut c_void {
12252        self.next
12253    }
12254}
12255
12256unsafe impl InputChainStruct for PhysicalDeviceRayTracingPipelinePropertiesKHR {
12257    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
12258
12259    #[inline]
12260    fn s_type(&self) -> StructureType {
12261        self.s_type
12262    }
12263
12264    #[inline]
12265    fn next(&self) -> *const c_void {
12266        self.next
12267    }
12268}
12269
12270unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPipelinePropertiesKHR {
12271    #[inline]
12272    fn next_mut(&self) -> *mut c_void {
12273        self.next
12274    }
12275}
12276
12277unsafe impl InputChainStruct for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12278    const TYPE: StructureType =
12279        StructureType::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR;
12280
12281    #[inline]
12282    fn s_type(&self) -> StructureType {
12283        self.s_type
12284    }
12285
12286    #[inline]
12287    fn next(&self) -> *const c_void {
12288        self.next
12289    }
12290}
12291
12292unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12293    #[inline]
12294    fn next_mut(&self) -> *mut c_void {
12295        self.next
12296    }
12297}
12298
12299unsafe impl InputChainStruct for PhysicalDeviceRayTracingPropertiesNV {
12300    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
12301
12302    #[inline]
12303    fn s_type(&self) -> StructureType {
12304        self.s_type
12305    }
12306
12307    #[inline]
12308    fn next(&self) -> *const c_void {
12309        self.next
12310    }
12311}
12312
12313unsafe impl OutputChainStruct for PhysicalDeviceRayTracingPropertiesNV {
12314    #[inline]
12315    fn next_mut(&self) -> *mut c_void {
12316        self.next
12317    }
12318}
12319
12320unsafe impl InputChainStruct for PhysicalDeviceRayTracingValidationFeaturesNV {
12321    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV;
12322
12323    #[inline]
12324    fn s_type(&self) -> StructureType {
12325        self.s_type
12326    }
12327
12328    #[inline]
12329    fn next(&self) -> *const c_void {
12330        self.next
12331    }
12332}
12333
12334unsafe impl OutputChainStruct for PhysicalDeviceRayTracingValidationFeaturesNV {
12335    #[inline]
12336    fn next_mut(&self) -> *mut c_void {
12337        self.next
12338    }
12339}
12340
12341unsafe impl InputChainStruct for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
12342    const TYPE: StructureType =
12343        StructureType::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG;
12344
12345    #[inline]
12346    fn s_type(&self) -> StructureType {
12347        self.s_type
12348    }
12349
12350    #[inline]
12351    fn next(&self) -> *const c_void {
12352        self.next
12353    }
12354}
12355
12356unsafe impl OutputChainStruct for PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
12357    #[inline]
12358    fn next_mut(&self) -> *mut c_void {
12359        self.next
12360    }
12361}
12362
12363unsafe impl InputChainStruct for PhysicalDeviceRenderPassStripedFeaturesARM {
12364    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM;
12365
12366    #[inline]
12367    fn s_type(&self) -> StructureType {
12368        self.s_type
12369    }
12370
12371    #[inline]
12372    fn next(&self) -> *const c_void {
12373        self.next
12374    }
12375}
12376
12377unsafe impl OutputChainStruct for PhysicalDeviceRenderPassStripedFeaturesARM {
12378    #[inline]
12379    fn next_mut(&self) -> *mut c_void {
12380        self.next
12381    }
12382}
12383
12384unsafe impl InputChainStruct for PhysicalDeviceRenderPassStripedPropertiesARM {
12385    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM;
12386
12387    #[inline]
12388    fn s_type(&self) -> StructureType {
12389        self.s_type
12390    }
12391
12392    #[inline]
12393    fn next(&self) -> *const c_void {
12394        self.next
12395    }
12396}
12397
12398unsafe impl OutputChainStruct for PhysicalDeviceRenderPassStripedPropertiesARM {
12399    #[inline]
12400    fn next_mut(&self) -> *mut c_void {
12401        self.next
12402    }
12403}
12404
12405unsafe impl InputChainStruct for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12406    const TYPE: StructureType =
12407        StructureType::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
12408
12409    #[inline]
12410    fn s_type(&self) -> StructureType {
12411        self.s_type
12412    }
12413
12414    #[inline]
12415    fn next(&self) -> *const c_void {
12416        self.next
12417    }
12418}
12419
12420unsafe impl OutputChainStruct for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12421    #[inline]
12422    fn next_mut(&self) -> *mut c_void {
12423        self.next
12424    }
12425}
12426
12427unsafe impl InputChainStruct for PhysicalDeviceRobustness2FeaturesKHR {
12428    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR;
12429
12430    #[inline]
12431    fn s_type(&self) -> StructureType {
12432        self.s_type
12433    }
12434
12435    #[inline]
12436    fn next(&self) -> *const c_void {
12437        self.next
12438    }
12439}
12440
12441unsafe impl OutputChainStruct for PhysicalDeviceRobustness2FeaturesKHR {
12442    #[inline]
12443    fn next_mut(&self) -> *mut c_void {
12444        self.next
12445    }
12446}
12447
12448unsafe impl InputChainStruct for PhysicalDeviceRobustness2PropertiesKHR {
12449    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR;
12450
12451    #[inline]
12452    fn s_type(&self) -> StructureType {
12453        self.s_type
12454    }
12455
12456    #[inline]
12457    fn next(&self) -> *const c_void {
12458        self.next
12459    }
12460}
12461
12462unsafe impl OutputChainStruct for PhysicalDeviceRobustness2PropertiesKHR {
12463    #[inline]
12464    fn next_mut(&self) -> *mut c_void {
12465        self.next
12466    }
12467}
12468
12469unsafe impl InputChainStruct for PhysicalDeviceSampleLocationsPropertiesEXT {
12470    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
12471
12472    #[inline]
12473    fn s_type(&self) -> StructureType {
12474        self.s_type
12475    }
12476
12477    #[inline]
12478    fn next(&self) -> *const c_void {
12479        self.next
12480    }
12481}
12482
12483unsafe impl OutputChainStruct for PhysicalDeviceSampleLocationsPropertiesEXT {
12484    #[inline]
12485    fn next_mut(&self) -> *mut c_void {
12486        self.next
12487    }
12488}
12489
12490unsafe impl InputChainStruct for PhysicalDeviceSamplerFilterMinmaxProperties {
12491    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
12492
12493    #[inline]
12494    fn s_type(&self) -> StructureType {
12495        self.s_type
12496    }
12497
12498    #[inline]
12499    fn next(&self) -> *const c_void {
12500        self.next
12501    }
12502}
12503
12504unsafe impl OutputChainStruct for PhysicalDeviceSamplerFilterMinmaxProperties {
12505    #[inline]
12506    fn next_mut(&self) -> *mut c_void {
12507        self.next
12508    }
12509}
12510
12511unsafe impl InputChainStruct for PhysicalDeviceSamplerYcbcrConversionFeatures {
12512    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
12513
12514    #[inline]
12515    fn s_type(&self) -> StructureType {
12516        self.s_type
12517    }
12518
12519    #[inline]
12520    fn next(&self) -> *const c_void {
12521        self.next
12522    }
12523}
12524
12525unsafe impl OutputChainStruct for PhysicalDeviceSamplerYcbcrConversionFeatures {
12526    #[inline]
12527    fn next_mut(&self) -> *mut c_void {
12528        self.next
12529    }
12530}
12531
12532unsafe impl InputChainStruct for PhysicalDeviceScalarBlockLayoutFeatures {
12533    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
12534
12535    #[inline]
12536    fn s_type(&self) -> StructureType {
12537        self.s_type
12538    }
12539
12540    #[inline]
12541    fn next(&self) -> *const c_void {
12542        self.next
12543    }
12544}
12545
12546unsafe impl OutputChainStruct for PhysicalDeviceScalarBlockLayoutFeatures {
12547    #[inline]
12548    fn next_mut(&self) -> *mut c_void {
12549        self.next
12550    }
12551}
12552
12553unsafe impl InputChainStruct for PhysicalDeviceSchedulingControlsFeaturesARM {
12554    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM;
12555
12556    #[inline]
12557    fn s_type(&self) -> StructureType {
12558        self.s_type
12559    }
12560
12561    #[inline]
12562    fn next(&self) -> *const c_void {
12563        self.next
12564    }
12565}
12566
12567unsafe impl OutputChainStruct for PhysicalDeviceSchedulingControlsFeaturesARM {
12568    #[inline]
12569    fn next_mut(&self) -> *mut c_void {
12570        self.next
12571    }
12572}
12573
12574unsafe impl InputChainStruct for PhysicalDeviceSchedulingControlsPropertiesARM {
12575    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM;
12576
12577    #[inline]
12578    fn s_type(&self) -> StructureType {
12579        self.s_type
12580    }
12581
12582    #[inline]
12583    fn next(&self) -> *const c_void {
12584        self.next
12585    }
12586}
12587
12588unsafe impl OutputChainStruct for PhysicalDeviceSchedulingControlsPropertiesARM {
12589    #[inline]
12590    fn next_mut(&self) -> *mut c_void {
12591        self.next
12592    }
12593}
12594
12595unsafe impl InputChainStruct for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
12596    const TYPE: StructureType =
12597        StructureType::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
12598
12599    #[inline]
12600    fn s_type(&self) -> StructureType {
12601        self.s_type
12602    }
12603
12604    #[inline]
12605    fn next(&self) -> *const c_void {
12606        self.next
12607    }
12608}
12609
12610unsafe impl OutputChainStruct for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
12611    #[inline]
12612    fn next_mut(&self) -> *mut c_void {
12613        self.next
12614    }
12615}
12616
12617unsafe impl InputChainStruct for PhysicalDeviceShader64BitIndexingFeaturesEXT {
12618    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT;
12619
12620    #[inline]
12621    fn s_type(&self) -> StructureType {
12622        self.s_type
12623    }
12624
12625    #[inline]
12626    fn next(&self) -> *const c_void {
12627        self.next
12628    }
12629}
12630
12631unsafe impl OutputChainStruct for PhysicalDeviceShader64BitIndexingFeaturesEXT {
12632    #[inline]
12633    fn next_mut(&self) -> *mut c_void {
12634        self.next
12635    }
12636}
12637
12638unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
12639    const TYPE: StructureType =
12640        StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV;
12641
12642    #[inline]
12643    fn s_type(&self) -> StructureType {
12644        self.s_type
12645    }
12646
12647    #[inline]
12648    fn next(&self) -> *const c_void {
12649        self.next
12650    }
12651}
12652
12653unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
12654    #[inline]
12655    fn next_mut(&self) -> *mut c_void {
12656        self.next
12657    }
12658}
12659
12660unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
12661    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
12662
12663    #[inline]
12664    fn s_type(&self) -> StructureType {
12665        self.s_type
12666    }
12667
12668    #[inline]
12669    fn next(&self) -> *const c_void {
12670        self.next
12671    }
12672}
12673
12674unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
12675    #[inline]
12676    fn next_mut(&self) -> *mut c_void {
12677        self.next
12678    }
12679}
12680
12681unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
12682    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
12683
12684    #[inline]
12685    fn s_type(&self) -> StructureType {
12686        self.s_type
12687    }
12688
12689    #[inline]
12690    fn next(&self) -> *const c_void {
12691        self.next
12692    }
12693}
12694
12695unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicFloatFeaturesEXT {
12696    #[inline]
12697    fn next_mut(&self) -> *mut c_void {
12698        self.next
12699    }
12700}
12701
12702unsafe impl InputChainStruct for PhysicalDeviceShaderAtomicInt64Features {
12703    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
12704
12705    #[inline]
12706    fn s_type(&self) -> StructureType {
12707        self.s_type
12708    }
12709
12710    #[inline]
12711    fn next(&self) -> *const c_void {
12712        self.next
12713    }
12714}
12715
12716unsafe impl OutputChainStruct for PhysicalDeviceShaderAtomicInt64Features {
12717    #[inline]
12718    fn next_mut(&self) -> *mut c_void {
12719        self.next
12720    }
12721}
12722
12723unsafe impl InputChainStruct for PhysicalDeviceShaderBfloat16FeaturesKHR {
12724    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR;
12725
12726    #[inline]
12727    fn s_type(&self) -> StructureType {
12728        self.s_type
12729    }
12730
12731    #[inline]
12732    fn next(&self) -> *const c_void {
12733        self.next
12734    }
12735}
12736
12737unsafe impl OutputChainStruct for PhysicalDeviceShaderBfloat16FeaturesKHR {
12738    #[inline]
12739    fn next_mut(&self) -> *mut c_void {
12740        self.next
12741    }
12742}
12743
12744unsafe impl InputChainStruct for PhysicalDeviceShaderClockFeaturesKHR {
12745    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
12746
12747    #[inline]
12748    fn s_type(&self) -> StructureType {
12749        self.s_type
12750    }
12751
12752    #[inline]
12753    fn next(&self) -> *const c_void {
12754        self.next
12755    }
12756}
12757
12758unsafe impl OutputChainStruct for PhysicalDeviceShaderClockFeaturesKHR {
12759    #[inline]
12760    fn next_mut(&self) -> *mut c_void {
12761        self.next
12762    }
12763}
12764
12765unsafe impl InputChainStruct for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
12766    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM;
12767
12768    #[inline]
12769    fn s_type(&self) -> StructureType {
12770        self.s_type
12771    }
12772
12773    #[inline]
12774    fn next(&self) -> *const c_void {
12775        self.next
12776    }
12777}
12778
12779unsafe impl OutputChainStruct for PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
12780    #[inline]
12781    fn next_mut(&self) -> *mut c_void {
12782        self.next
12783    }
12784}
12785
12786unsafe impl InputChainStruct for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
12787    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM;
12788
12789    #[inline]
12790    fn s_type(&self) -> StructureType {
12791        self.s_type
12792    }
12793
12794    #[inline]
12795    fn next(&self) -> *const c_void {
12796        self.next
12797    }
12798}
12799
12800unsafe impl OutputChainStruct for PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
12801    #[inline]
12802    fn next_mut(&self) -> *mut c_void {
12803        self.next
12804    }
12805}
12806
12807unsafe impl InputChainStruct for PhysicalDeviceShaderCoreProperties2AMD {
12808    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
12809
12810    #[inline]
12811    fn s_type(&self) -> StructureType {
12812        self.s_type
12813    }
12814
12815    #[inline]
12816    fn next(&self) -> *const c_void {
12817        self.next
12818    }
12819}
12820
12821unsafe impl OutputChainStruct for PhysicalDeviceShaderCoreProperties2AMD {
12822    #[inline]
12823    fn next_mut(&self) -> *mut c_void {
12824        self.next
12825    }
12826}
12827
12828unsafe impl InputChainStruct for PhysicalDeviceShaderCorePropertiesAMD {
12829    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
12830
12831    #[inline]
12832    fn s_type(&self) -> StructureType {
12833        self.s_type
12834    }
12835
12836    #[inline]
12837    fn next(&self) -> *const c_void {
12838        self.next
12839    }
12840}
12841
12842unsafe impl OutputChainStruct for PhysicalDeviceShaderCorePropertiesAMD {
12843    #[inline]
12844    fn next_mut(&self) -> *mut c_void {
12845        self.next
12846    }
12847}
12848
12849unsafe impl InputChainStruct for PhysicalDeviceShaderCorePropertiesARM {
12850    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM;
12851
12852    #[inline]
12853    fn s_type(&self) -> StructureType {
12854        self.s_type
12855    }
12856
12857    #[inline]
12858    fn next(&self) -> *const c_void {
12859        self.next
12860    }
12861}
12862
12863unsafe impl OutputChainStruct for PhysicalDeviceShaderCorePropertiesARM {
12864    #[inline]
12865    fn next_mut(&self) -> *mut c_void {
12866        self.next
12867    }
12868}
12869
12870unsafe impl InputChainStruct for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
12871    const TYPE: StructureType =
12872        StructureType::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
12873
12874    #[inline]
12875    fn s_type(&self) -> StructureType {
12876        self.s_type
12877    }
12878
12879    #[inline]
12880    fn next(&self) -> *const c_void {
12881        self.next
12882    }
12883}
12884
12885unsafe impl OutputChainStruct for PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
12886    #[inline]
12887    fn next_mut(&self) -> *mut c_void {
12888        self.next
12889    }
12890}
12891
12892unsafe impl InputChainStruct for PhysicalDeviceShaderDrawParametersFeatures {
12893    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
12894
12895    #[inline]
12896    fn s_type(&self) -> StructureType {
12897        self.s_type
12898    }
12899
12900    #[inline]
12901    fn next(&self) -> *const c_void {
12902        self.next
12903    }
12904}
12905
12906unsafe impl OutputChainStruct for PhysicalDeviceShaderDrawParametersFeatures {
12907    #[inline]
12908    fn next_mut(&self) -> *mut c_void {
12909        self.next
12910    }
12911}
12912
12913unsafe impl InputChainStruct for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
12914    const TYPE: StructureType =
12915        StructureType::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD;
12916
12917    #[inline]
12918    fn s_type(&self) -> StructureType {
12919        self.s_type
12920    }
12921
12922    #[inline]
12923    fn next(&self) -> *const c_void {
12924        self.next
12925    }
12926}
12927
12928unsafe impl OutputChainStruct for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
12929    #[inline]
12930    fn next_mut(&self) -> *mut c_void {
12931        self.next
12932    }
12933}
12934
12935unsafe impl InputChainStruct for PhysicalDeviceShaderEnqueueFeaturesAMDX {
12936    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX;
12937
12938    #[inline]
12939    fn s_type(&self) -> StructureType {
12940        self.s_type
12941    }
12942
12943    #[inline]
12944    fn next(&self) -> *const c_void {
12945        self.next
12946    }
12947}
12948
12949unsafe impl OutputChainStruct for PhysicalDeviceShaderEnqueueFeaturesAMDX {
12950    #[inline]
12951    fn next_mut(&self) -> *mut c_void {
12952        self.next
12953    }
12954}
12955
12956unsafe impl InputChainStruct for PhysicalDeviceShaderEnqueuePropertiesAMDX {
12957    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX;
12958
12959    #[inline]
12960    fn s_type(&self) -> StructureType {
12961        self.s_type
12962    }
12963
12964    #[inline]
12965    fn next(&self) -> *const c_void {
12966        self.next
12967    }
12968}
12969
12970unsafe impl OutputChainStruct for PhysicalDeviceShaderEnqueuePropertiesAMDX {
12971    #[inline]
12972    fn next_mut(&self) -> *mut c_void {
12973        self.next
12974    }
12975}
12976
12977unsafe impl InputChainStruct for PhysicalDeviceShaderExpectAssumeFeatures {
12978    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES;
12979
12980    #[inline]
12981    fn s_type(&self) -> StructureType {
12982        self.s_type
12983    }
12984
12985    #[inline]
12986    fn next(&self) -> *const c_void {
12987        self.next
12988    }
12989}
12990
12991unsafe impl OutputChainStruct for PhysicalDeviceShaderExpectAssumeFeatures {
12992    #[inline]
12993    fn next_mut(&self) -> *mut c_void {
12994        self.next
12995    }
12996}
12997
12998unsafe impl InputChainStruct for PhysicalDeviceShaderFloat16Int8Features {
12999    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
13000
13001    #[inline]
13002    fn s_type(&self) -> StructureType {
13003        self.s_type
13004    }
13005
13006    #[inline]
13007    fn next(&self) -> *const c_void {
13008        self.next
13009    }
13010}
13011
13012unsafe impl OutputChainStruct for PhysicalDeviceShaderFloat16Int8Features {
13013    #[inline]
13014    fn next_mut(&self) -> *mut c_void {
13015        self.next
13016    }
13017}
13018
13019unsafe impl InputChainStruct for PhysicalDeviceShaderFloat8FeaturesEXT {
13020    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT;
13021
13022    #[inline]
13023    fn s_type(&self) -> StructureType {
13024        self.s_type
13025    }
13026
13027    #[inline]
13028    fn next(&self) -> *const c_void {
13029        self.next
13030    }
13031}
13032
13033unsafe impl OutputChainStruct for PhysicalDeviceShaderFloat8FeaturesEXT {
13034    #[inline]
13035    fn next_mut(&self) -> *mut c_void {
13036        self.next
13037    }
13038}
13039
13040unsafe impl InputChainStruct for PhysicalDeviceShaderFloatControls2Features {
13041    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES;
13042
13043    #[inline]
13044    fn s_type(&self) -> StructureType {
13045        self.s_type
13046    }
13047
13048    #[inline]
13049    fn next(&self) -> *const c_void {
13050        self.next
13051    }
13052}
13053
13054unsafe impl OutputChainStruct for PhysicalDeviceShaderFloatControls2Features {
13055    #[inline]
13056    fn next_mut(&self) -> *mut c_void {
13057        self.next
13058    }
13059}
13060
13061unsafe impl InputChainStruct for PhysicalDeviceShaderFmaFeaturesKHR {
13062    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR;
13063
13064    #[inline]
13065    fn s_type(&self) -> StructureType {
13066        self.s_type
13067    }
13068
13069    #[inline]
13070    fn next(&self) -> *const c_void {
13071        self.next
13072    }
13073}
13074
13075unsafe impl OutputChainStruct for PhysicalDeviceShaderFmaFeaturesKHR {
13076    #[inline]
13077    fn next_mut(&self) -> *mut c_void {
13078        self.next
13079    }
13080}
13081
13082unsafe impl InputChainStruct for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
13083    const TYPE: StructureType =
13084        StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
13085
13086    #[inline]
13087    fn s_type(&self) -> StructureType {
13088        self.s_type
13089    }
13090
13091    #[inline]
13092    fn next(&self) -> *const c_void {
13093        self.next
13094    }
13095}
13096
13097unsafe impl OutputChainStruct for PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
13098    #[inline]
13099    fn next_mut(&self) -> *mut c_void {
13100        self.next
13101    }
13102}
13103
13104unsafe impl InputChainStruct for PhysicalDeviceShaderImageFootprintFeaturesNV {
13105    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
13106
13107    #[inline]
13108    fn s_type(&self) -> StructureType {
13109        self.s_type
13110    }
13111
13112    #[inline]
13113    fn next(&self) -> *const c_void {
13114        self.next
13115    }
13116}
13117
13118unsafe impl OutputChainStruct for PhysicalDeviceShaderImageFootprintFeaturesNV {
13119    #[inline]
13120    fn next_mut(&self) -> *mut c_void {
13121        self.next
13122    }
13123}
13124
13125unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerDotProductFeatures {
13126    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
13127
13128    #[inline]
13129    fn s_type(&self) -> StructureType {
13130        self.s_type
13131    }
13132
13133    #[inline]
13134    fn next(&self) -> *const c_void {
13135        self.next
13136    }
13137}
13138
13139unsafe impl OutputChainStruct for PhysicalDeviceShaderIntegerDotProductFeatures {
13140    #[inline]
13141    fn next_mut(&self) -> *mut c_void {
13142        self.next
13143    }
13144}
13145
13146unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerDotProductProperties {
13147    const TYPE: StructureType =
13148        StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
13149
13150    #[inline]
13151    fn s_type(&self) -> StructureType {
13152        self.s_type
13153    }
13154
13155    #[inline]
13156    fn next(&self) -> *const c_void {
13157        self.next
13158    }
13159}
13160
13161unsafe impl OutputChainStruct for PhysicalDeviceShaderIntegerDotProductProperties {
13162    #[inline]
13163    fn next_mut(&self) -> *mut c_void {
13164        self.next
13165    }
13166}
13167
13168unsafe impl InputChainStruct for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
13169    const TYPE: StructureType =
13170        StructureType::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL;
13171
13172    #[inline]
13173    fn s_type(&self) -> StructureType {
13174        self.s_type
13175    }
13176
13177    #[inline]
13178    fn next(&self) -> *const c_void {
13179        self.next
13180    }
13181}
13182
13183unsafe impl OutputChainStruct for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
13184    #[inline]
13185    fn next_mut(&self) -> *mut c_void {
13186        self.next
13187    }
13188}
13189
13190unsafe impl InputChainStruct for PhysicalDeviceShaderLongVectorFeaturesEXT {
13191    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT;
13192
13193    #[inline]
13194    fn s_type(&self) -> StructureType {
13195        self.s_type
13196    }
13197
13198    #[inline]
13199    fn next(&self) -> *const c_void {
13200        self.next
13201    }
13202}
13203
13204unsafe impl OutputChainStruct for PhysicalDeviceShaderLongVectorFeaturesEXT {
13205    #[inline]
13206    fn next_mut(&self) -> *mut c_void {
13207        self.next
13208    }
13209}
13210
13211unsafe impl InputChainStruct for PhysicalDeviceShaderLongVectorPropertiesEXT {
13212    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT;
13213
13214    #[inline]
13215    fn s_type(&self) -> StructureType {
13216        self.s_type
13217    }
13218
13219    #[inline]
13220    fn next(&self) -> *const c_void {
13221        self.next
13222    }
13223}
13224
13225unsafe impl OutputChainStruct for PhysicalDeviceShaderLongVectorPropertiesEXT {
13226    #[inline]
13227    fn next_mut(&self) -> *mut c_void {
13228        self.next
13229    }
13230}
13231
13232unsafe impl InputChainStruct for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
13233    const TYPE: StructureType =
13234        StructureType::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR;
13235
13236    #[inline]
13237    fn s_type(&self) -> StructureType {
13238        self.s_type
13239    }
13240
13241    #[inline]
13242    fn next(&self) -> *const c_void {
13243        self.next
13244    }
13245}
13246
13247unsafe impl OutputChainStruct for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
13248    #[inline]
13249    fn next_mut(&self) -> *mut c_void {
13250        self.next
13251    }
13252}
13253
13254unsafe impl InputChainStruct for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
13255    const TYPE: StructureType =
13256        StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
13257
13258    #[inline]
13259    fn s_type(&self) -> StructureType {
13260        self.s_type
13261    }
13262
13263    #[inline]
13264    fn next(&self) -> *const c_void {
13265        self.next
13266    }
13267}
13268
13269unsafe impl OutputChainStruct for PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
13270    #[inline]
13271    fn next_mut(&self) -> *mut c_void {
13272        self.next
13273    }
13274}
13275
13276unsafe impl InputChainStruct for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
13277    const TYPE: StructureType =
13278        StructureType::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT;
13279
13280    #[inline]
13281    fn s_type(&self) -> StructureType {
13282        self.s_type
13283    }
13284
13285    #[inline]
13286    fn next(&self) -> *const c_void {
13287        self.next
13288    }
13289}
13290
13291unsafe impl OutputChainStruct for PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
13292    #[inline]
13293    fn next_mut(&self) -> *mut c_void {
13294        self.next
13295    }
13296}
13297
13298unsafe impl InputChainStruct for PhysicalDeviceShaderObjectFeaturesEXT {
13299    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
13300
13301    #[inline]
13302    fn s_type(&self) -> StructureType {
13303        self.s_type
13304    }
13305
13306    #[inline]
13307    fn next(&self) -> *const c_void {
13308        self.next
13309    }
13310}
13311
13312unsafe impl OutputChainStruct for PhysicalDeviceShaderObjectFeaturesEXT {
13313    #[inline]
13314    fn next_mut(&self) -> *mut c_void {
13315        self.next
13316    }
13317}
13318
13319unsafe impl InputChainStruct for PhysicalDeviceShaderObjectPropertiesEXT {
13320    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT;
13321
13322    #[inline]
13323    fn s_type(&self) -> StructureType {
13324        self.s_type
13325    }
13326
13327    #[inline]
13328    fn next(&self) -> *const c_void {
13329        self.next
13330    }
13331}
13332
13333unsafe impl OutputChainStruct for PhysicalDeviceShaderObjectPropertiesEXT {
13334    #[inline]
13335    fn next_mut(&self) -> *mut c_void {
13336        self.next
13337    }
13338}
13339
13340unsafe impl InputChainStruct for PhysicalDeviceShaderQuadControlFeaturesKHR {
13341    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR;
13342
13343    #[inline]
13344    fn s_type(&self) -> StructureType {
13345        self.s_type
13346    }
13347
13348    #[inline]
13349    fn next(&self) -> *const c_void {
13350        self.next
13351    }
13352}
13353
13354unsafe impl OutputChainStruct for PhysicalDeviceShaderQuadControlFeaturesKHR {
13355    #[inline]
13356    fn next_mut(&self) -> *mut c_void {
13357        self.next
13358    }
13359}
13360
13361unsafe impl InputChainStruct for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13362    const TYPE: StructureType =
13363        StructureType::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR;
13364
13365    #[inline]
13366    fn s_type(&self) -> StructureType {
13367        self.s_type
13368    }
13369
13370    #[inline]
13371    fn next(&self) -> *const c_void {
13372        self.next
13373    }
13374}
13375
13376unsafe impl OutputChainStruct for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13377    #[inline]
13378    fn next_mut(&self) -> *mut c_void {
13379        self.next
13380    }
13381}
13382
13383unsafe impl InputChainStruct for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
13384    const TYPE: StructureType =
13385        StructureType::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT;
13386
13387    #[inline]
13388    fn s_type(&self) -> StructureType {
13389        self.s_type
13390    }
13391
13392    #[inline]
13393    fn next(&self) -> *const c_void {
13394        self.next
13395    }
13396}
13397
13398unsafe impl OutputChainStruct for PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
13399    #[inline]
13400    fn next_mut(&self) -> *mut c_void {
13401        self.next
13402    }
13403}
13404
13405unsafe impl InputChainStruct for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
13406    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
13407
13408    #[inline]
13409    fn s_type(&self) -> StructureType {
13410        self.s_type
13411    }
13412
13413    #[inline]
13414    fn next(&self) -> *const c_void {
13415        self.next
13416    }
13417}
13418
13419unsafe impl OutputChainStruct for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
13420    #[inline]
13421    fn next_mut(&self) -> *mut c_void {
13422        self.next
13423    }
13424}
13425
13426unsafe impl InputChainStruct for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
13427    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
13428
13429    #[inline]
13430    fn s_type(&self) -> StructureType {
13431        self.s_type
13432    }
13433
13434    #[inline]
13435    fn next(&self) -> *const c_void {
13436        self.next
13437    }
13438}
13439
13440unsafe impl OutputChainStruct for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
13441    #[inline]
13442    fn next_mut(&self) -> *mut c_void {
13443        self.next
13444    }
13445}
13446
13447unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
13448    const TYPE: StructureType =
13449        StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
13450
13451    #[inline]
13452    fn s_type(&self) -> StructureType {
13453        self.s_type
13454    }
13455
13456    #[inline]
13457    fn next(&self) -> *const c_void {
13458        self.next
13459    }
13460}
13461
13462unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
13463    #[inline]
13464    fn next_mut(&self) -> *mut c_void {
13465        self.next
13466    }
13467}
13468
13469unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupRotateFeatures {
13470    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES;
13471
13472    #[inline]
13473    fn s_type(&self) -> StructureType {
13474        self.s_type
13475    }
13476
13477    #[inline]
13478    fn next(&self) -> *const c_void {
13479        self.next
13480    }
13481}
13482
13483unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupRotateFeatures {
13484    #[inline]
13485    fn next_mut(&self) -> *mut c_void {
13486        self.next
13487    }
13488}
13489
13490unsafe impl InputChainStruct for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
13491    const TYPE: StructureType =
13492        StructureType::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
13493
13494    #[inline]
13495    fn s_type(&self) -> StructureType {
13496        self.s_type
13497    }
13498
13499    #[inline]
13500    fn next(&self) -> *const c_void {
13501        self.next
13502    }
13503}
13504
13505unsafe impl OutputChainStruct for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
13506    #[inline]
13507    fn next_mut(&self) -> *mut c_void {
13508        self.next
13509    }
13510}
13511
13512unsafe impl InputChainStruct for PhysicalDeviceShaderTerminateInvocationFeatures {
13513    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
13514
13515    #[inline]
13516    fn s_type(&self) -> StructureType {
13517        self.s_type
13518    }
13519
13520    #[inline]
13521    fn next(&self) -> *const c_void {
13522        self.next
13523    }
13524}
13525
13526unsafe impl OutputChainStruct for PhysicalDeviceShaderTerminateInvocationFeatures {
13527    #[inline]
13528    fn next_mut(&self) -> *mut c_void {
13529        self.next
13530    }
13531}
13532
13533unsafe impl InputChainStruct for PhysicalDeviceShaderTileImageFeaturesEXT {
13534    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT;
13535
13536    #[inline]
13537    fn s_type(&self) -> StructureType {
13538        self.s_type
13539    }
13540
13541    #[inline]
13542    fn next(&self) -> *const c_void {
13543        self.next
13544    }
13545}
13546
13547unsafe impl OutputChainStruct for PhysicalDeviceShaderTileImageFeaturesEXT {
13548    #[inline]
13549    fn next_mut(&self) -> *mut c_void {
13550        self.next
13551    }
13552}
13553
13554unsafe impl InputChainStruct for PhysicalDeviceShaderTileImagePropertiesEXT {
13555    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT;
13556
13557    #[inline]
13558    fn s_type(&self) -> StructureType {
13559        self.s_type
13560    }
13561
13562    #[inline]
13563    fn next(&self) -> *const c_void {
13564        self.next
13565    }
13566}
13567
13568unsafe impl OutputChainStruct for PhysicalDeviceShaderTileImagePropertiesEXT {
13569    #[inline]
13570    fn next_mut(&self) -> *mut c_void {
13571        self.next
13572    }
13573}
13574
13575unsafe impl InputChainStruct for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
13576    const TYPE: StructureType =
13577        StructureType::PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT;
13578
13579    #[inline]
13580    fn s_type(&self) -> StructureType {
13581        self.s_type
13582    }
13583
13584    #[inline]
13585    fn next(&self) -> *const c_void {
13586        self.next
13587    }
13588}
13589
13590unsafe impl OutputChainStruct for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
13591    #[inline]
13592    fn next_mut(&self) -> *mut c_void {
13593        self.next
13594    }
13595}
13596
13597unsafe impl InputChainStruct for PhysicalDeviceShaderUntypedPointersFeaturesKHR {
13598    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR;
13599
13600    #[inline]
13601    fn s_type(&self) -> StructureType {
13602        self.s_type
13603    }
13604
13605    #[inline]
13606    fn next(&self) -> *const c_void {
13607        self.next
13608    }
13609}
13610
13611unsafe impl OutputChainStruct for PhysicalDeviceShaderUntypedPointersFeaturesKHR {
13612    #[inline]
13613    fn next_mut(&self) -> *mut c_void {
13614        self.next
13615    }
13616}
13617
13618unsafe impl InputChainStruct for PhysicalDeviceShadingRateImageFeaturesNV {
13619    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
13620
13621    #[inline]
13622    fn s_type(&self) -> StructureType {
13623        self.s_type
13624    }
13625
13626    #[inline]
13627    fn next(&self) -> *const c_void {
13628        self.next
13629    }
13630}
13631
13632unsafe impl OutputChainStruct for PhysicalDeviceShadingRateImageFeaturesNV {
13633    #[inline]
13634    fn next_mut(&self) -> *mut c_void {
13635        self.next
13636    }
13637}
13638
13639unsafe impl InputChainStruct for PhysicalDeviceShadingRateImagePropertiesNV {
13640    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
13641
13642    #[inline]
13643    fn s_type(&self) -> StructureType {
13644        self.s_type
13645    }
13646
13647    #[inline]
13648    fn next(&self) -> *const c_void {
13649        self.next
13650    }
13651}
13652
13653unsafe impl OutputChainStruct for PhysicalDeviceShadingRateImagePropertiesNV {
13654    #[inline]
13655    fn next_mut(&self) -> *mut c_void {
13656        self.next
13657    }
13658}
13659
13660unsafe impl InputChainStruct for PhysicalDeviceSparseImageFormatInfo2 {
13661    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
13662
13663    #[inline]
13664    fn s_type(&self) -> StructureType {
13665        self.s_type
13666    }
13667
13668    #[inline]
13669    fn next(&self) -> *const c_void {
13670        self.next
13671    }
13672}
13673
13674unsafe impl InputChainStruct for PhysicalDeviceSubgroupProperties {
13675    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
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 PhysicalDeviceSubgroupProperties {
13689    #[inline]
13690    fn next_mut(&self) -> *mut c_void {
13691        self.next
13692    }
13693}
13694
13695unsafe impl InputChainStruct for PhysicalDeviceSubgroupSizeControlFeatures {
13696    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
13697
13698    #[inline]
13699    fn s_type(&self) -> StructureType {
13700        self.s_type
13701    }
13702
13703    #[inline]
13704    fn next(&self) -> *const c_void {
13705        self.next
13706    }
13707}
13708
13709unsafe impl OutputChainStruct for PhysicalDeviceSubgroupSizeControlFeatures {
13710    #[inline]
13711    fn next_mut(&self) -> *mut c_void {
13712        self.next
13713    }
13714}
13715
13716unsafe impl InputChainStruct for PhysicalDeviceSubgroupSizeControlProperties {
13717    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
13718
13719    #[inline]
13720    fn s_type(&self) -> StructureType {
13721        self.s_type
13722    }
13723
13724    #[inline]
13725    fn next(&self) -> *const c_void {
13726        self.next
13727    }
13728}
13729
13730unsafe impl OutputChainStruct for PhysicalDeviceSubgroupSizeControlProperties {
13731    #[inline]
13732    fn next_mut(&self) -> *mut c_void {
13733        self.next
13734    }
13735}
13736
13737unsafe impl InputChainStruct for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
13738    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT;
13739
13740    #[inline]
13741    fn s_type(&self) -> StructureType {
13742        self.s_type
13743    }
13744
13745    #[inline]
13746    fn next(&self) -> *const c_void {
13747        self.next
13748    }
13749}
13750
13751unsafe impl OutputChainStruct for PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
13752    #[inline]
13753    fn next_mut(&self) -> *mut c_void {
13754        self.next
13755    }
13756}
13757
13758unsafe impl InputChainStruct for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
13759    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
13760
13761    #[inline]
13762    fn s_type(&self) -> StructureType {
13763        self.s_type
13764    }
13765
13766    #[inline]
13767    fn next(&self) -> *const c_void {
13768        self.next
13769    }
13770}
13771
13772unsafe impl OutputChainStruct for PhysicalDeviceSubpassShadingFeaturesHUAWEI {
13773    #[inline]
13774    fn next_mut(&self) -> *mut c_void {
13775        self.next
13776    }
13777}
13778
13779unsafe impl InputChainStruct for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
13780    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
13781
13782    #[inline]
13783    fn s_type(&self) -> StructureType {
13784        self.s_type
13785    }
13786
13787    #[inline]
13788    fn next(&self) -> *const c_void {
13789        self.next
13790    }
13791}
13792
13793unsafe impl OutputChainStruct for PhysicalDeviceSubpassShadingPropertiesHUAWEI {
13794    #[inline]
13795    fn next_mut(&self) -> *mut c_void {
13796        self.next
13797    }
13798}
13799
13800unsafe impl InputChainStruct for PhysicalDeviceSurfaceInfo2KHR {
13801    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
13802
13803    #[inline]
13804    fn s_type(&self) -> StructureType {
13805        self.s_type
13806    }
13807
13808    #[inline]
13809    fn next(&self) -> *const c_void {
13810        self.next
13811    }
13812}
13813
13814unsafe impl InputChainStruct for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
13815    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR;
13816
13817    #[inline]
13818    fn s_type(&self) -> StructureType {
13819        self.s_type
13820    }
13821
13822    #[inline]
13823    fn next(&self) -> *const c_void {
13824        self.next
13825    }
13826}
13827
13828unsafe impl OutputChainStruct for PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
13829    #[inline]
13830    fn next_mut(&self) -> *mut c_void {
13831        self.next
13832    }
13833}
13834
13835unsafe impl InputChainStruct for PhysicalDeviceSynchronization2Features {
13836    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
13837
13838    #[inline]
13839    fn s_type(&self) -> StructureType {
13840        self.s_type
13841    }
13842
13843    #[inline]
13844    fn next(&self) -> *const c_void {
13845        self.next
13846    }
13847}
13848
13849unsafe impl OutputChainStruct for PhysicalDeviceSynchronization2Features {
13850    #[inline]
13851    fn next_mut(&self) -> *mut c_void {
13852        self.next
13853    }
13854}
13855
13856unsafe impl InputChainStruct for PhysicalDeviceTensorFeaturesARM {
13857    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TENSOR_FEATURES_ARM;
13858
13859    #[inline]
13860    fn s_type(&self) -> StructureType {
13861        self.s_type
13862    }
13863
13864    #[inline]
13865    fn next(&self) -> *const c_void {
13866        self.next
13867    }
13868}
13869
13870unsafe impl OutputChainStruct for PhysicalDeviceTensorFeaturesARM {
13871    #[inline]
13872    fn next_mut(&self) -> *mut c_void {
13873        self.next
13874    }
13875}
13876
13877unsafe impl InputChainStruct for PhysicalDeviceTensorPropertiesARM {
13878    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM;
13879
13880    #[inline]
13881    fn s_type(&self) -> StructureType {
13882        self.s_type
13883    }
13884
13885    #[inline]
13886    fn next(&self) -> *const c_void {
13887        self.next
13888    }
13889}
13890
13891unsafe impl OutputChainStruct for PhysicalDeviceTensorPropertiesARM {
13892    #[inline]
13893    fn next_mut(&self) -> *mut c_void {
13894        self.next
13895    }
13896}
13897
13898unsafe impl InputChainStruct for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
13899    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
13900
13901    #[inline]
13902    fn s_type(&self) -> StructureType {
13903        self.s_type
13904    }
13905
13906    #[inline]
13907    fn next(&self) -> *const c_void {
13908        self.next
13909    }
13910}
13911
13912unsafe impl OutputChainStruct for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
13913    #[inline]
13914    fn next_mut(&self) -> *mut c_void {
13915        self.next
13916    }
13917}
13918
13919unsafe impl InputChainStruct for PhysicalDeviceTexelBufferAlignmentProperties {
13920    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
13921
13922    #[inline]
13923    fn s_type(&self) -> StructureType {
13924        self.s_type
13925    }
13926
13927    #[inline]
13928    fn next(&self) -> *const c_void {
13929        self.next
13930    }
13931}
13932
13933unsafe impl OutputChainStruct for PhysicalDeviceTexelBufferAlignmentProperties {
13934    #[inline]
13935    fn next_mut(&self) -> *mut c_void {
13936        self.next
13937    }
13938}
13939
13940unsafe impl InputChainStruct for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
13941    const TYPE: StructureType =
13942        StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT;
13943
13944    #[inline]
13945    fn s_type(&self) -> StructureType {
13946        self.s_type
13947    }
13948
13949    #[inline]
13950    fn next(&self) -> *const c_void {
13951        self.next
13952    }
13953}
13954
13955unsafe impl OutputChainStruct for PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
13956    #[inline]
13957    fn next_mut(&self) -> *mut c_void {
13958        self.next
13959    }
13960}
13961
13962unsafe impl InputChainStruct for PhysicalDeviceTextureCompressionASTCHDRFeatures {
13963    const TYPE: StructureType =
13964        StructureType::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
13965
13966    #[inline]
13967    fn s_type(&self) -> StructureType {
13968        self.s_type
13969    }
13970
13971    #[inline]
13972    fn next(&self) -> *const c_void {
13973        self.next
13974    }
13975}
13976
13977unsafe impl OutputChainStruct for PhysicalDeviceTextureCompressionASTCHDRFeatures {
13978    #[inline]
13979    fn next_mut(&self) -> *mut c_void {
13980        self.next
13981    }
13982}
13983
13984unsafe impl InputChainStruct for PhysicalDeviceTileMemoryHeapFeaturesQCOM {
13985    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM;
13986
13987    #[inline]
13988    fn s_type(&self) -> StructureType {
13989        self.s_type
13990    }
13991
13992    #[inline]
13993    fn next(&self) -> *const c_void {
13994        self.next
13995    }
13996}
13997
13998unsafe impl OutputChainStruct for PhysicalDeviceTileMemoryHeapFeaturesQCOM {
13999    #[inline]
14000    fn next_mut(&self) -> *mut c_void {
14001        self.next
14002    }
14003}
14004
14005unsafe impl InputChainStruct for PhysicalDeviceTileMemoryHeapPropertiesQCOM {
14006    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM;
14007
14008    #[inline]
14009    fn s_type(&self) -> StructureType {
14010        self.s_type
14011    }
14012
14013    #[inline]
14014    fn next(&self) -> *const c_void {
14015        self.next
14016    }
14017}
14018
14019unsafe impl OutputChainStruct for PhysicalDeviceTileMemoryHeapPropertiesQCOM {
14020    #[inline]
14021    fn next_mut(&self) -> *mut c_void {
14022        self.next
14023    }
14024}
14025
14026unsafe impl InputChainStruct for PhysicalDeviceTilePropertiesFeaturesQCOM {
14027    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM;
14028
14029    #[inline]
14030    fn s_type(&self) -> StructureType {
14031        self.s_type
14032    }
14033
14034    #[inline]
14035    fn next(&self) -> *const c_void {
14036        self.next
14037    }
14038}
14039
14040unsafe impl OutputChainStruct for PhysicalDeviceTilePropertiesFeaturesQCOM {
14041    #[inline]
14042    fn next_mut(&self) -> *mut c_void {
14043        self.next
14044    }
14045}
14046
14047unsafe impl InputChainStruct for PhysicalDeviceTileShadingFeaturesQCOM {
14048    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM;
14049
14050    #[inline]
14051    fn s_type(&self) -> StructureType {
14052        self.s_type
14053    }
14054
14055    #[inline]
14056    fn next(&self) -> *const c_void {
14057        self.next
14058    }
14059}
14060
14061unsafe impl OutputChainStruct for PhysicalDeviceTileShadingFeaturesQCOM {
14062    #[inline]
14063    fn next_mut(&self) -> *mut c_void {
14064        self.next
14065    }
14066}
14067
14068unsafe impl InputChainStruct for PhysicalDeviceTileShadingPropertiesQCOM {
14069    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM;
14070
14071    #[inline]
14072    fn s_type(&self) -> StructureType {
14073        self.s_type
14074    }
14075
14076    #[inline]
14077    fn next(&self) -> *const c_void {
14078        self.next
14079    }
14080}
14081
14082unsafe impl OutputChainStruct for PhysicalDeviceTileShadingPropertiesQCOM {
14083    #[inline]
14084    fn next_mut(&self) -> *mut c_void {
14085        self.next
14086    }
14087}
14088
14089unsafe impl InputChainStruct for PhysicalDeviceTimelineSemaphoreFeatures {
14090    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
14091
14092    #[inline]
14093    fn s_type(&self) -> StructureType {
14094        self.s_type
14095    }
14096
14097    #[inline]
14098    fn next(&self) -> *const c_void {
14099        self.next
14100    }
14101}
14102
14103unsafe impl OutputChainStruct for PhysicalDeviceTimelineSemaphoreFeatures {
14104    #[inline]
14105    fn next_mut(&self) -> *mut c_void {
14106        self.next
14107    }
14108}
14109
14110unsafe impl InputChainStruct for PhysicalDeviceTimelineSemaphoreProperties {
14111    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
14112
14113    #[inline]
14114    fn s_type(&self) -> StructureType {
14115        self.s_type
14116    }
14117
14118    #[inline]
14119    fn next(&self) -> *const c_void {
14120        self.next
14121    }
14122}
14123
14124unsafe impl OutputChainStruct for PhysicalDeviceTimelineSemaphoreProperties {
14125    #[inline]
14126    fn next_mut(&self) -> *mut c_void {
14127        self.next
14128    }
14129}
14130
14131unsafe impl InputChainStruct for PhysicalDeviceToolProperties {
14132    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TOOL_PROPERTIES;
14133
14134    #[inline]
14135    fn s_type(&self) -> StructureType {
14136        self.s_type
14137    }
14138
14139    #[inline]
14140    fn next(&self) -> *const c_void {
14141        self.next
14142    }
14143}
14144
14145unsafe impl OutputChainStruct for PhysicalDeviceToolProperties {
14146    #[inline]
14147    fn next_mut(&self) -> *mut c_void {
14148        self.next
14149    }
14150}
14151
14152unsafe impl InputChainStruct for PhysicalDeviceTransformFeedbackFeaturesEXT {
14153    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
14154
14155    #[inline]
14156    fn s_type(&self) -> StructureType {
14157        self.s_type
14158    }
14159
14160    #[inline]
14161    fn next(&self) -> *const c_void {
14162        self.next
14163    }
14164}
14165
14166unsafe impl OutputChainStruct for PhysicalDeviceTransformFeedbackFeaturesEXT {
14167    #[inline]
14168    fn next_mut(&self) -> *mut c_void {
14169        self.next
14170    }
14171}
14172
14173unsafe impl InputChainStruct for PhysicalDeviceTransformFeedbackPropertiesEXT {
14174    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
14175
14176    #[inline]
14177    fn s_type(&self) -> StructureType {
14178        self.s_type
14179    }
14180
14181    #[inline]
14182    fn next(&self) -> *const c_void {
14183        self.next
14184    }
14185}
14186
14187unsafe impl OutputChainStruct for PhysicalDeviceTransformFeedbackPropertiesEXT {
14188    #[inline]
14189    fn next_mut(&self) -> *mut c_void {
14190        self.next
14191    }
14192}
14193
14194unsafe impl InputChainStruct for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
14195    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR;
14196
14197    #[inline]
14198    fn s_type(&self) -> StructureType {
14199        self.s_type
14200    }
14201
14202    #[inline]
14203    fn next(&self) -> *const c_void {
14204        self.next
14205    }
14206}
14207
14208unsafe impl OutputChainStruct for PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
14209    #[inline]
14210    fn next_mut(&self) -> *mut c_void {
14211        self.next
14212    }
14213}
14214
14215unsafe impl InputChainStruct for PhysicalDeviceUniformBufferStandardLayoutFeatures {
14216    const TYPE: StructureType =
14217        StructureType::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
14218
14219    #[inline]
14220    fn s_type(&self) -> StructureType {
14221        self.s_type
14222    }
14223
14224    #[inline]
14225    fn next(&self) -> *const c_void {
14226        self.next
14227    }
14228}
14229
14230unsafe impl OutputChainStruct for PhysicalDeviceUniformBufferStandardLayoutFeatures {
14231    #[inline]
14232    fn next_mut(&self) -> *mut c_void {
14233        self.next
14234    }
14235}
14236
14237unsafe impl InputChainStruct for PhysicalDeviceVariablePointersFeatures {
14238    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
14239
14240    #[inline]
14241    fn s_type(&self) -> StructureType {
14242        self.s_type
14243    }
14244
14245    #[inline]
14246    fn next(&self) -> *const c_void {
14247        self.next
14248    }
14249}
14250
14251unsafe impl OutputChainStruct for PhysicalDeviceVariablePointersFeatures {
14252    #[inline]
14253    fn next_mut(&self) -> *mut c_void {
14254        self.next
14255    }
14256}
14257
14258unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeDivisorFeatures {
14259    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES;
14260
14261    #[inline]
14262    fn s_type(&self) -> StructureType {
14263        self.s_type
14264    }
14265
14266    #[inline]
14267    fn next(&self) -> *const c_void {
14268        self.next
14269    }
14270}
14271
14272unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeDivisorFeatures {
14273    #[inline]
14274    fn next_mut(&self) -> *mut c_void {
14275        self.next
14276    }
14277}
14278
14279unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeDivisorProperties {
14280    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES;
14281
14282    #[inline]
14283    fn s_type(&self) -> StructureType {
14284        self.s_type
14285    }
14286
14287    #[inline]
14288    fn next(&self) -> *const c_void {
14289        self.next
14290    }
14291}
14292
14293unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeDivisorProperties {
14294    #[inline]
14295    fn next_mut(&self) -> *mut c_void {
14296        self.next
14297    }
14298}
14299
14300unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14301    const TYPE: StructureType =
14302        StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
14303
14304    #[inline]
14305    fn s_type(&self) -> StructureType {
14306        self.s_type
14307    }
14308
14309    #[inline]
14310    fn next(&self) -> *const c_void {
14311        self.next
14312    }
14313}
14314
14315unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14316    #[inline]
14317    fn next_mut(&self) -> *mut c_void {
14318        self.next
14319    }
14320}
14321
14322unsafe impl InputChainStruct for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
14323    const TYPE: StructureType =
14324        StructureType::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT;
14325
14326    #[inline]
14327    fn s_type(&self) -> StructureType {
14328        self.s_type
14329    }
14330
14331    #[inline]
14332    fn next(&self) -> *const c_void {
14333        self.next
14334    }
14335}
14336
14337unsafe impl OutputChainStruct for PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
14338    #[inline]
14339    fn next_mut(&self) -> *mut c_void {
14340        self.next
14341    }
14342}
14343
14344unsafe impl InputChainStruct for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
14345    const TYPE: StructureType =
14346        StructureType::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
14347
14348    #[inline]
14349    fn s_type(&self) -> StructureType {
14350        self.s_type
14351    }
14352
14353    #[inline]
14354    fn next(&self) -> *const c_void {
14355        self.next
14356    }
14357}
14358
14359unsafe impl OutputChainStruct for PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
14360    #[inline]
14361    fn next_mut(&self) -> *mut c_void {
14362        self.next
14363    }
14364}
14365
14366unsafe impl InputChainStruct for PhysicalDeviceVideoDecodeVP9FeaturesKHR {
14367    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR;
14368
14369    #[inline]
14370    fn s_type(&self) -> StructureType {
14371        self.s_type
14372    }
14373
14374    #[inline]
14375    fn next(&self) -> *const c_void {
14376        self.next
14377    }
14378}
14379
14380unsafe impl OutputChainStruct for PhysicalDeviceVideoDecodeVP9FeaturesKHR {
14381    #[inline]
14382    fn next_mut(&self) -> *mut c_void {
14383        self.next
14384    }
14385}
14386
14387unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
14388    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR;
14389
14390    #[inline]
14391    fn s_type(&self) -> StructureType {
14392        self.s_type
14393    }
14394
14395    #[inline]
14396    fn next(&self) -> *const c_void {
14397        self.next
14398    }
14399}
14400
14401unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeAV1FeaturesKHR {
14402    #[inline]
14403    fn next_mut(&self) -> *mut c_void {
14404        self.next
14405    }
14406}
14407
14408unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
14409    const TYPE: StructureType =
14410        StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR;
14411
14412    #[inline]
14413    fn s_type(&self) -> StructureType {
14414        self.s_type
14415    }
14416
14417    #[inline]
14418    fn next(&self) -> *const c_void {
14419        self.next
14420    }
14421}
14422
14423unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
14424    #[inline]
14425    fn next_mut(&self) -> *mut c_void {
14426        self.next
14427    }
14428}
14429
14430unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
14431    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR;
14432
14433    #[inline]
14434    fn s_type(&self) -> StructureType {
14435        self.s_type
14436    }
14437
14438    #[inline]
14439    fn next(&self) -> *const c_void {
14440        self.next
14441    }
14442}
14443
14444unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
14445    const TYPE: StructureType =
14446        StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR;
14447
14448    #[inline]
14449    fn s_type(&self) -> StructureType {
14450        self.s_type
14451    }
14452
14453    #[inline]
14454    fn next(&self) -> *const c_void {
14455        self.next
14456    }
14457}
14458
14459unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
14460    #[inline]
14461    fn next_mut(&self) -> *mut c_void {
14462        self.next
14463    }
14464}
14465
14466unsafe impl InputChainStruct for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
14467    const TYPE: StructureType =
14468        StructureType::PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE;
14469
14470    #[inline]
14471    fn s_type(&self) -> StructureType {
14472        self.s_type
14473    }
14474
14475    #[inline]
14476    fn next(&self) -> *const c_void {
14477        self.next
14478    }
14479}
14480
14481unsafe impl OutputChainStruct for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
14482    #[inline]
14483    fn next_mut(&self) -> *mut c_void {
14484        self.next
14485    }
14486}
14487
14488unsafe impl InputChainStruct for PhysicalDeviceVideoFormatInfoKHR {
14489    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
14490
14491    #[inline]
14492    fn s_type(&self) -> StructureType {
14493        self.s_type
14494    }
14495
14496    #[inline]
14497    fn next(&self) -> *const c_void {
14498        self.next
14499    }
14500}
14501
14502unsafe impl InputChainStruct for PhysicalDeviceVideoMaintenance1FeaturesKHR {
14503    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR;
14504
14505    #[inline]
14506    fn s_type(&self) -> StructureType {
14507        self.s_type
14508    }
14509
14510    #[inline]
14511    fn next(&self) -> *const c_void {
14512        self.next
14513    }
14514}
14515
14516unsafe impl OutputChainStruct for PhysicalDeviceVideoMaintenance1FeaturesKHR {
14517    #[inline]
14518    fn next_mut(&self) -> *mut c_void {
14519        self.next
14520    }
14521}
14522
14523unsafe impl InputChainStruct for PhysicalDeviceVideoMaintenance2FeaturesKHR {
14524    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR;
14525
14526    #[inline]
14527    fn s_type(&self) -> StructureType {
14528        self.s_type
14529    }
14530
14531    #[inline]
14532    fn next(&self) -> *const c_void {
14533        self.next
14534    }
14535}
14536
14537unsafe impl OutputChainStruct for PhysicalDeviceVideoMaintenance2FeaturesKHR {
14538    #[inline]
14539    fn next_mut(&self) -> *mut c_void {
14540        self.next
14541    }
14542}
14543
14544unsafe impl InputChainStruct for PhysicalDeviceVulkan11Features {
14545    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
14546
14547    #[inline]
14548    fn s_type(&self) -> StructureType {
14549        self.s_type
14550    }
14551
14552    #[inline]
14553    fn next(&self) -> *const c_void {
14554        self.next
14555    }
14556}
14557
14558unsafe impl OutputChainStruct for PhysicalDeviceVulkan11Features {
14559    #[inline]
14560    fn next_mut(&self) -> *mut c_void {
14561        self.next
14562    }
14563}
14564
14565unsafe impl InputChainStruct for PhysicalDeviceVulkan11Properties {
14566    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
14567
14568    #[inline]
14569    fn s_type(&self) -> StructureType {
14570        self.s_type
14571    }
14572
14573    #[inline]
14574    fn next(&self) -> *const c_void {
14575        self.next
14576    }
14577}
14578
14579unsafe impl OutputChainStruct for PhysicalDeviceVulkan11Properties {
14580    #[inline]
14581    fn next_mut(&self) -> *mut c_void {
14582        self.next
14583    }
14584}
14585
14586unsafe impl InputChainStruct for PhysicalDeviceVulkan12Features {
14587    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
14588
14589    #[inline]
14590    fn s_type(&self) -> StructureType {
14591        self.s_type
14592    }
14593
14594    #[inline]
14595    fn next(&self) -> *const c_void {
14596        self.next
14597    }
14598}
14599
14600unsafe impl OutputChainStruct for PhysicalDeviceVulkan12Features {
14601    #[inline]
14602    fn next_mut(&self) -> *mut c_void {
14603        self.next
14604    }
14605}
14606
14607unsafe impl InputChainStruct for PhysicalDeviceVulkan12Properties {
14608    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
14609
14610    #[inline]
14611    fn s_type(&self) -> StructureType {
14612        self.s_type
14613    }
14614
14615    #[inline]
14616    fn next(&self) -> *const c_void {
14617        self.next
14618    }
14619}
14620
14621unsafe impl OutputChainStruct for PhysicalDeviceVulkan12Properties {
14622    #[inline]
14623    fn next_mut(&self) -> *mut c_void {
14624        self.next
14625    }
14626}
14627
14628unsafe impl InputChainStruct for PhysicalDeviceVulkan13Features {
14629    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
14630
14631    #[inline]
14632    fn s_type(&self) -> StructureType {
14633        self.s_type
14634    }
14635
14636    #[inline]
14637    fn next(&self) -> *const c_void {
14638        self.next
14639    }
14640}
14641
14642unsafe impl OutputChainStruct for PhysicalDeviceVulkan13Features {
14643    #[inline]
14644    fn next_mut(&self) -> *mut c_void {
14645        self.next
14646    }
14647}
14648
14649unsafe impl InputChainStruct for PhysicalDeviceVulkan13Properties {
14650    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES;
14651
14652    #[inline]
14653    fn s_type(&self) -> StructureType {
14654        self.s_type
14655    }
14656
14657    #[inline]
14658    fn next(&self) -> *const c_void {
14659        self.next
14660    }
14661}
14662
14663unsafe impl OutputChainStruct for PhysicalDeviceVulkan13Properties {
14664    #[inline]
14665    fn next_mut(&self) -> *mut c_void {
14666        self.next
14667    }
14668}
14669
14670unsafe impl InputChainStruct for PhysicalDeviceVulkan14Features {
14671    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES;
14672
14673    #[inline]
14674    fn s_type(&self) -> StructureType {
14675        self.s_type
14676    }
14677
14678    #[inline]
14679    fn next(&self) -> *const c_void {
14680        self.next
14681    }
14682}
14683
14684unsafe impl OutputChainStruct for PhysicalDeviceVulkan14Features {
14685    #[inline]
14686    fn next_mut(&self) -> *mut c_void {
14687        self.next
14688    }
14689}
14690
14691unsafe impl InputChainStruct for PhysicalDeviceVulkan14Properties {
14692    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES;
14693
14694    #[inline]
14695    fn s_type(&self) -> StructureType {
14696        self.s_type
14697    }
14698
14699    #[inline]
14700    fn next(&self) -> *const c_void {
14701        self.next
14702    }
14703}
14704
14705unsafe impl OutputChainStruct for PhysicalDeviceVulkan14Properties {
14706    #[inline]
14707    fn next_mut(&self) -> *mut c_void {
14708        self.next
14709    }
14710}
14711
14712unsafe impl InputChainStruct for PhysicalDeviceVulkanMemoryModelFeatures {
14713    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
14714
14715    #[inline]
14716    fn s_type(&self) -> StructureType {
14717        self.s_type
14718    }
14719
14720    #[inline]
14721    fn next(&self) -> *const c_void {
14722        self.next
14723    }
14724}
14725
14726unsafe impl OutputChainStruct for PhysicalDeviceVulkanMemoryModelFeatures {
14727    #[inline]
14728    fn next_mut(&self) -> *mut c_void {
14729        self.next
14730    }
14731}
14732
14733unsafe impl InputChainStruct for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
14734    const TYPE: StructureType =
14735        StructureType::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
14736
14737    #[inline]
14738    fn s_type(&self) -> StructureType {
14739        self.s_type
14740    }
14741
14742    #[inline]
14743    fn next(&self) -> *const c_void {
14744        self.next
14745    }
14746}
14747
14748unsafe impl OutputChainStruct for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
14749    #[inline]
14750    fn next_mut(&self) -> *mut c_void {
14751        self.next
14752    }
14753}
14754
14755unsafe impl InputChainStruct for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
14756    const TYPE: StructureType =
14757        StructureType::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
14758
14759    #[inline]
14760    fn s_type(&self) -> StructureType {
14761        self.s_type
14762    }
14763
14764    #[inline]
14765    fn next(&self) -> *const c_void {
14766        self.next
14767    }
14768}
14769
14770unsafe impl OutputChainStruct for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
14771    #[inline]
14772    fn next_mut(&self) -> *mut c_void {
14773        self.next
14774    }
14775}
14776
14777unsafe impl InputChainStruct for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
14778    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM;
14779
14780    #[inline]
14781    fn s_type(&self) -> StructureType {
14782        self.s_type
14783    }
14784
14785    #[inline]
14786    fn next(&self) -> *const c_void {
14787        self.next
14788    }
14789}
14790
14791unsafe impl OutputChainStruct for PhysicalDeviceYcbcrDegammaFeaturesQCOM {
14792    #[inline]
14793    fn next_mut(&self) -> *mut c_void {
14794        self.next
14795    }
14796}
14797
14798unsafe impl InputChainStruct for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
14799    const TYPE: StructureType = StructureType::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
14800
14801    #[inline]
14802    fn s_type(&self) -> StructureType {
14803        self.s_type
14804    }
14805
14806    #[inline]
14807    fn next(&self) -> *const c_void {
14808        self.next
14809    }
14810}
14811
14812unsafe impl OutputChainStruct for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
14813    #[inline]
14814    fn next_mut(&self) -> *mut c_void {
14815        self.next
14816    }
14817}
14818
14819unsafe impl InputChainStruct for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
14820    const TYPE: StructureType =
14821        StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT;
14822
14823    #[inline]
14824    fn s_type(&self) -> StructureType {
14825        self.s_type
14826    }
14827
14828    #[inline]
14829    fn next(&self) -> *const c_void {
14830        self.next
14831    }
14832}
14833
14834unsafe impl OutputChainStruct for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
14835    #[inline]
14836    fn next_mut(&self) -> *mut c_void {
14837        self.next
14838    }
14839}
14840
14841unsafe impl InputChainStruct for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
14842    const TYPE: StructureType =
14843        StructureType::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
14844
14845    #[inline]
14846    fn s_type(&self) -> StructureType {
14847        self.s_type
14848    }
14849
14850    #[inline]
14851    fn next(&self) -> *const c_void {
14852        self.next
14853    }
14854}
14855
14856unsafe impl OutputChainStruct for PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
14857    #[inline]
14858    fn next_mut(&self) -> *mut c_void {
14859        self.next
14860    }
14861}
14862
14863unsafe impl InputChainStruct for PipelineBinaryCreateInfoKHR {
14864    const TYPE: StructureType = StructureType::PIPELINE_BINARY_CREATE_INFO_KHR;
14865
14866    #[inline]
14867    fn s_type(&self) -> StructureType {
14868        self.s_type
14869    }
14870
14871    #[inline]
14872    fn next(&self) -> *const c_void {
14873        self.next
14874    }
14875}
14876
14877unsafe impl InputChainStruct for PipelineBinaryDataInfoKHR {
14878    const TYPE: StructureType = StructureType::PIPELINE_BINARY_DATA_INFO_KHR;
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 PipelineBinaryDataInfoKHR {
14892    #[inline]
14893    fn next_mut(&self) -> *mut c_void {
14894        self.next
14895    }
14896}
14897
14898unsafe impl InputChainStruct for PipelineBinaryHandlesInfoKHR {
14899    const TYPE: StructureType = StructureType::PIPELINE_BINARY_HANDLES_INFO_KHR;
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 InputChainStruct for PipelineBinaryInfoKHR {
14913    const TYPE: StructureType = StructureType::PIPELINE_BINARY_INFO_KHR;
14914
14915    #[inline]
14916    fn s_type(&self) -> StructureType {
14917        self.s_type
14918    }
14919
14920    #[inline]
14921    fn next(&self) -> *const c_void {
14922        self.next
14923    }
14924}
14925
14926unsafe impl InputChainStruct for PipelineBinaryKeyKHR {
14927    const TYPE: StructureType = StructureType::PIPELINE_BINARY_KEY_KHR;
14928
14929    #[inline]
14930    fn s_type(&self) -> StructureType {
14931        self.s_type
14932    }
14933
14934    #[inline]
14935    fn next(&self) -> *const c_void {
14936        self.next
14937    }
14938}
14939
14940unsafe impl OutputChainStruct for PipelineBinaryKeyKHR {
14941    #[inline]
14942    fn next_mut(&self) -> *mut c_void {
14943        self.next
14944    }
14945}
14946
14947unsafe impl InputChainStruct for PipelineCacheCreateInfo {
14948    const TYPE: StructureType = StructureType::PIPELINE_CACHE_CREATE_INFO;
14949
14950    #[inline]
14951    fn s_type(&self) -> StructureType {
14952        self.s_type
14953    }
14954
14955    #[inline]
14956    fn next(&self) -> *const c_void {
14957        self.next
14958    }
14959}
14960
14961unsafe impl InputChainStruct for PipelineColorBlendAdvancedStateCreateInfoEXT {
14962    const TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
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 InputChainStruct for PipelineColorBlendStateCreateInfo {
14976    const TYPE: StructureType = StructureType::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
14977
14978    #[inline]
14979    fn s_type(&self) -> StructureType {
14980        self.s_type
14981    }
14982
14983    #[inline]
14984    fn next(&self) -> *const c_void {
14985        self.next
14986    }
14987}
14988
14989unsafe impl InputChainStruct for PipelineColorWriteCreateInfoEXT {
14990    const TYPE: StructureType = StructureType::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT;
14991
14992    #[inline]
14993    fn s_type(&self) -> StructureType {
14994        self.s_type
14995    }
14996
14997    #[inline]
14998    fn next(&self) -> *const c_void {
14999        self.next
15000    }
15001}
15002
15003unsafe impl InputChainStruct for PipelineCompilerControlCreateInfoAMD {
15004    const TYPE: StructureType = StructureType::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
15005
15006    #[inline]
15007    fn s_type(&self) -> StructureType {
15008        self.s_type
15009    }
15010
15011    #[inline]
15012    fn next(&self) -> *const c_void {
15013        self.next
15014    }
15015}
15016
15017unsafe impl InputChainStruct for PipelineCoverageModulationStateCreateInfoNV {
15018    const TYPE: StructureType = StructureType::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
15019
15020    #[inline]
15021    fn s_type(&self) -> StructureType {
15022        self.s_type
15023    }
15024
15025    #[inline]
15026    fn next(&self) -> *const c_void {
15027        self.next
15028    }
15029}
15030
15031unsafe impl InputChainStruct for PipelineCoverageReductionStateCreateInfoNV {
15032    const TYPE: StructureType = StructureType::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
15033
15034    #[inline]
15035    fn s_type(&self) -> StructureType {
15036        self.s_type
15037    }
15038
15039    #[inline]
15040    fn next(&self) -> *const c_void {
15041        self.next
15042    }
15043}
15044
15045unsafe impl InputChainStruct for PipelineCoverageToColorStateCreateInfoNV {
15046    const TYPE: StructureType = StructureType::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
15047
15048    #[inline]
15049    fn s_type(&self) -> StructureType {
15050        self.s_type
15051    }
15052
15053    #[inline]
15054    fn next(&self) -> *const c_void {
15055        self.next
15056    }
15057}
15058
15059unsafe impl InputChainStruct for PipelineCreateFlags2CreateInfo {
15060    const TYPE: StructureType = StructureType::PIPELINE_CREATE_FLAGS_2_CREATE_INFO;
15061
15062    #[inline]
15063    fn s_type(&self) -> StructureType {
15064        self.s_type
15065    }
15066
15067    #[inline]
15068    fn next(&self) -> *const c_void {
15069        self.next
15070    }
15071}
15072
15073unsafe impl InputChainStruct for PipelineCreateInfoKHR {
15074    const TYPE: StructureType = StructureType::PIPELINE_CREATE_INFO_KHR;
15075
15076    #[inline]
15077    fn s_type(&self) -> StructureType {
15078        self.s_type
15079    }
15080
15081    #[inline]
15082    fn next(&self) -> *const c_void {
15083        self.next
15084    }
15085}
15086
15087unsafe impl OutputChainStruct for PipelineCreateInfoKHR {
15088    #[inline]
15089    fn next_mut(&self) -> *mut c_void {
15090        self.next
15091    }
15092}
15093
15094unsafe impl InputChainStruct for PipelineCreationFeedbackCreateInfo {
15095    const TYPE: StructureType = StructureType::PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
15096
15097    #[inline]
15098    fn s_type(&self) -> StructureType {
15099        self.s_type
15100    }
15101
15102    #[inline]
15103    fn next(&self) -> *const c_void {
15104        self.next
15105    }
15106}
15107
15108unsafe impl InputChainStruct for PipelineDepthStencilStateCreateInfo {
15109    const TYPE: StructureType = StructureType::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
15110
15111    #[inline]
15112    fn s_type(&self) -> StructureType {
15113        self.s_type
15114    }
15115
15116    #[inline]
15117    fn next(&self) -> *const c_void {
15118        self.next
15119    }
15120}
15121
15122unsafe impl InputChainStruct for PipelineDiscardRectangleStateCreateInfoEXT {
15123    const TYPE: StructureType = StructureType::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
15124
15125    #[inline]
15126    fn s_type(&self) -> StructureType {
15127        self.s_type
15128    }
15129
15130    #[inline]
15131    fn next(&self) -> *const c_void {
15132        self.next
15133    }
15134}
15135
15136unsafe impl InputChainStruct for PipelineDynamicStateCreateInfo {
15137    const TYPE: StructureType = StructureType::PIPELINE_DYNAMIC_STATE_CREATE_INFO;
15138
15139    #[inline]
15140    fn s_type(&self) -> StructureType {
15141        self.s_type
15142    }
15143
15144    #[inline]
15145    fn next(&self) -> *const c_void {
15146        self.next
15147    }
15148}
15149
15150unsafe impl InputChainStruct for PipelineExecutableInfoKHR {
15151    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_INFO_KHR;
15152
15153    #[inline]
15154    fn s_type(&self) -> StructureType {
15155        self.s_type
15156    }
15157
15158    #[inline]
15159    fn next(&self) -> *const c_void {
15160        self.next
15161    }
15162}
15163
15164unsafe impl InputChainStruct for PipelineExecutableInternalRepresentationKHR {
15165    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
15166
15167    #[inline]
15168    fn s_type(&self) -> StructureType {
15169        self.s_type
15170    }
15171
15172    #[inline]
15173    fn next(&self) -> *const c_void {
15174        self.next
15175    }
15176}
15177
15178unsafe impl OutputChainStruct for PipelineExecutableInternalRepresentationKHR {
15179    #[inline]
15180    fn next_mut(&self) -> *mut c_void {
15181        self.next
15182    }
15183}
15184
15185unsafe impl InputChainStruct for PipelineExecutablePropertiesKHR {
15186    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_PROPERTIES_KHR;
15187
15188    #[inline]
15189    fn s_type(&self) -> StructureType {
15190        self.s_type
15191    }
15192
15193    #[inline]
15194    fn next(&self) -> *const c_void {
15195        self.next
15196    }
15197}
15198
15199unsafe impl OutputChainStruct for PipelineExecutablePropertiesKHR {
15200    #[inline]
15201    fn next_mut(&self) -> *mut c_void {
15202        self.next
15203    }
15204}
15205
15206unsafe impl InputChainStruct for PipelineExecutableStatisticKHR {
15207    const TYPE: StructureType = StructureType::PIPELINE_EXECUTABLE_STATISTIC_KHR;
15208
15209    #[inline]
15210    fn s_type(&self) -> StructureType {
15211        self.s_type
15212    }
15213
15214    #[inline]
15215    fn next(&self) -> *const c_void {
15216        self.next
15217    }
15218}
15219
15220unsafe impl OutputChainStruct for PipelineExecutableStatisticKHR {
15221    #[inline]
15222    fn next_mut(&self) -> *mut c_void {
15223        self.next
15224    }
15225}
15226
15227unsafe impl InputChainStruct for PipelineFragmentDensityMapLayeredCreateInfoVALVE {
15228    const TYPE: StructureType =
15229        StructureType::PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE;
15230
15231    #[inline]
15232    fn s_type(&self) -> StructureType {
15233        self.s_type
15234    }
15235
15236    #[inline]
15237    fn next(&self) -> *const c_void {
15238        self.next
15239    }
15240}
15241
15242unsafe impl InputChainStruct for PipelineFragmentShadingRateEnumStateCreateInfoNV {
15243    const TYPE: StructureType =
15244        StructureType::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
15245
15246    #[inline]
15247    fn s_type(&self) -> StructureType {
15248        self.s_type
15249    }
15250
15251    #[inline]
15252    fn next(&self) -> *const c_void {
15253        self.next
15254    }
15255}
15256
15257unsafe impl InputChainStruct for PipelineFragmentShadingRateStateCreateInfoKHR {
15258    const TYPE: StructureType = StructureType::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
15259
15260    #[inline]
15261    fn s_type(&self) -> StructureType {
15262        self.s_type
15263    }
15264
15265    #[inline]
15266    fn next(&self) -> *const c_void {
15267        self.next
15268    }
15269}
15270
15271unsafe impl InputChainStruct for PipelineIndirectDeviceAddressInfoNV {
15272    const TYPE: StructureType = StructureType::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV;
15273
15274    #[inline]
15275    fn s_type(&self) -> StructureType {
15276        self.s_type
15277    }
15278
15279    #[inline]
15280    fn next(&self) -> *const c_void {
15281        self.next
15282    }
15283}
15284
15285unsafe impl InputChainStruct for PipelineInfoKHR {
15286    const TYPE: StructureType = StructureType::PIPELINE_INFO_KHR;
15287
15288    #[inline]
15289    fn s_type(&self) -> StructureType {
15290        self.s_type
15291    }
15292
15293    #[inline]
15294    fn next(&self) -> *const c_void {
15295        self.next
15296    }
15297}
15298
15299unsafe impl InputChainStruct for PipelineInputAssemblyStateCreateInfo {
15300    const TYPE: StructureType = StructureType::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
15301
15302    #[inline]
15303    fn s_type(&self) -> StructureType {
15304        self.s_type
15305    }
15306
15307    #[inline]
15308    fn next(&self) -> *const c_void {
15309        self.next
15310    }
15311}
15312
15313unsafe impl InputChainStruct for PipelineLayoutCreateInfo {
15314    const TYPE: StructureType = StructureType::PIPELINE_LAYOUT_CREATE_INFO;
15315
15316    #[inline]
15317    fn s_type(&self) -> StructureType {
15318        self.s_type
15319    }
15320
15321    #[inline]
15322    fn next(&self) -> *const c_void {
15323        self.next
15324    }
15325}
15326
15327unsafe impl InputChainStruct for PipelineLibraryCreateInfoKHR {
15328    const TYPE: StructureType = StructureType::PIPELINE_LIBRARY_CREATE_INFO_KHR;
15329
15330    #[inline]
15331    fn s_type(&self) -> StructureType {
15332        self.s_type
15333    }
15334
15335    #[inline]
15336    fn next(&self) -> *const c_void {
15337        self.next
15338    }
15339}
15340
15341unsafe impl InputChainStruct for PipelineMultisampleStateCreateInfo {
15342    const TYPE: StructureType = StructureType::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
15343
15344    #[inline]
15345    fn s_type(&self) -> StructureType {
15346        self.s_type
15347    }
15348
15349    #[inline]
15350    fn next(&self) -> *const c_void {
15351        self.next
15352    }
15353}
15354
15355unsafe impl InputChainStruct for PipelinePropertiesIdentifierEXT {
15356    const TYPE: StructureType = StructureType::PIPELINE_PROPERTIES_IDENTIFIER_EXT;
15357
15358    #[inline]
15359    fn s_type(&self) -> StructureType {
15360        self.s_type
15361    }
15362
15363    #[inline]
15364    fn next(&self) -> *const c_void {
15365        self.next
15366    }
15367}
15368
15369unsafe impl OutputChainStruct for PipelinePropertiesIdentifierEXT {
15370    #[inline]
15371    fn next_mut(&self) -> *mut c_void {
15372        self.next
15373    }
15374}
15375
15376unsafe impl InputChainStruct for PipelineRasterizationConservativeStateCreateInfoEXT {
15377    const TYPE: StructureType =
15378        StructureType::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
15379
15380    #[inline]
15381    fn s_type(&self) -> StructureType {
15382        self.s_type
15383    }
15384
15385    #[inline]
15386    fn next(&self) -> *const c_void {
15387        self.next
15388    }
15389}
15390
15391unsafe impl InputChainStruct for PipelineRasterizationDepthClipStateCreateInfoEXT {
15392    const TYPE: StructureType =
15393        StructureType::PIPELINE_RASTERIZATION_DEPTH_CLIP_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 PipelineRasterizationLineStateCreateInfo {
15407    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_LINE_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 PipelineRasterizationProvokingVertexStateCreateInfoEXT {
15421    const TYPE: StructureType =
15422        StructureType::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
15423
15424    #[inline]
15425    fn s_type(&self) -> StructureType {
15426        self.s_type
15427    }
15428
15429    #[inline]
15430    fn next(&self) -> *const c_void {
15431        self.next
15432    }
15433}
15434
15435unsafe impl InputChainStruct for PipelineRasterizationStateCreateInfo {
15436    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
15437
15438    #[inline]
15439    fn s_type(&self) -> StructureType {
15440        self.s_type
15441    }
15442
15443    #[inline]
15444    fn next(&self) -> *const c_void {
15445        self.next
15446    }
15447}
15448
15449unsafe impl InputChainStruct for PipelineRasterizationStateRasterizationOrderAMD {
15450    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
15451
15452    #[inline]
15453    fn s_type(&self) -> StructureType {
15454        self.s_type
15455    }
15456
15457    #[inline]
15458    fn next(&self) -> *const c_void {
15459        self.next
15460    }
15461}
15462
15463unsafe impl InputChainStruct for PipelineRasterizationStateStreamCreateInfoEXT {
15464    const TYPE: StructureType = StructureType::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
15465
15466    #[inline]
15467    fn s_type(&self) -> StructureType {
15468        self.s_type
15469    }
15470
15471    #[inline]
15472    fn next(&self) -> *const c_void {
15473        self.next
15474    }
15475}
15476
15477unsafe impl InputChainStruct for PipelineRenderingCreateInfo {
15478    const TYPE: StructureType = StructureType::PIPELINE_RENDERING_CREATE_INFO;
15479
15480    #[inline]
15481    fn s_type(&self) -> StructureType {
15482        self.s_type
15483    }
15484
15485    #[inline]
15486    fn next(&self) -> *const c_void {
15487        self.next
15488    }
15489}
15490
15491unsafe impl InputChainStruct for PipelineRepresentativeFragmentTestStateCreateInfoNV {
15492    const TYPE: StructureType =
15493        StructureType::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
15494
15495    #[inline]
15496    fn s_type(&self) -> StructureType {
15497        self.s_type
15498    }
15499
15500    #[inline]
15501    fn next(&self) -> *const c_void {
15502        self.next
15503    }
15504}
15505
15506unsafe impl InputChainStruct for PipelineRobustnessCreateInfo {
15507    const TYPE: StructureType = StructureType::PIPELINE_ROBUSTNESS_CREATE_INFO;
15508
15509    #[inline]
15510    fn s_type(&self) -> StructureType {
15511        self.s_type
15512    }
15513
15514    #[inline]
15515    fn next(&self) -> *const c_void {
15516        self.next
15517    }
15518}
15519
15520unsafe impl InputChainStruct for PipelineSampleLocationsStateCreateInfoEXT {
15521    const TYPE: StructureType = StructureType::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
15522
15523    #[inline]
15524    fn s_type(&self) -> StructureType {
15525        self.s_type
15526    }
15527
15528    #[inline]
15529    fn next(&self) -> *const c_void {
15530        self.next
15531    }
15532}
15533
15534unsafe impl InputChainStruct for PipelineShaderStageCreateInfo {
15535    const TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_CREATE_INFO;
15536
15537    #[inline]
15538    fn s_type(&self) -> StructureType {
15539        self.s_type
15540    }
15541
15542    #[inline]
15543    fn next(&self) -> *const c_void {
15544        self.next
15545    }
15546}
15547
15548unsafe impl InputChainStruct for PipelineShaderStageModuleIdentifierCreateInfoEXT {
15549    const TYPE: StructureType =
15550        StructureType::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT;
15551
15552    #[inline]
15553    fn s_type(&self) -> StructureType {
15554        self.s_type
15555    }
15556
15557    #[inline]
15558    fn next(&self) -> *const c_void {
15559        self.next
15560    }
15561}
15562
15563unsafe impl InputChainStruct for PipelineShaderStageNodeCreateInfoAMDX {
15564    const TYPE: StructureType = StructureType::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX;
15565
15566    #[inline]
15567    fn s_type(&self) -> StructureType {
15568        self.s_type
15569    }
15570
15571    #[inline]
15572    fn next(&self) -> *const c_void {
15573        self.next
15574    }
15575}
15576
15577unsafe impl InputChainStruct for PipelineShaderStageRequiredSubgroupSizeCreateInfo {
15578    const TYPE: StructureType =
15579        StructureType::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
15580
15581    #[inline]
15582    fn s_type(&self) -> StructureType {
15583        self.s_type
15584    }
15585
15586    #[inline]
15587    fn next(&self) -> *const c_void {
15588        self.next
15589    }
15590}
15591
15592unsafe impl InputChainStruct for PipelineTessellationDomainOriginStateCreateInfo {
15593    const TYPE: StructureType =
15594        StructureType::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
15595
15596    #[inline]
15597    fn s_type(&self) -> StructureType {
15598        self.s_type
15599    }
15600
15601    #[inline]
15602    fn next(&self) -> *const c_void {
15603        self.next
15604    }
15605}
15606
15607unsafe impl InputChainStruct for PipelineTessellationStateCreateInfo {
15608    const TYPE: StructureType = StructureType::PIPELINE_TESSELLATION_STATE_CREATE_INFO;
15609
15610    #[inline]
15611    fn s_type(&self) -> StructureType {
15612        self.s_type
15613    }
15614
15615    #[inline]
15616    fn next(&self) -> *const c_void {
15617        self.next
15618    }
15619}
15620
15621unsafe impl InputChainStruct for PipelineVertexInputDivisorStateCreateInfo {
15622    const TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO;
15623
15624    #[inline]
15625    fn s_type(&self) -> StructureType {
15626        self.s_type
15627    }
15628
15629    #[inline]
15630    fn next(&self) -> *const c_void {
15631        self.next
15632    }
15633}
15634
15635unsafe impl InputChainStruct for PipelineVertexInputStateCreateInfo {
15636    const TYPE: StructureType = StructureType::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
15637
15638    #[inline]
15639    fn s_type(&self) -> StructureType {
15640        self.s_type
15641    }
15642
15643    #[inline]
15644    fn next(&self) -> *const c_void {
15645        self.next
15646    }
15647}
15648
15649unsafe impl InputChainStruct for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
15650    const TYPE: StructureType =
15651        StructureType::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
15652
15653    #[inline]
15654    fn s_type(&self) -> StructureType {
15655        self.s_type
15656    }
15657
15658    #[inline]
15659    fn next(&self) -> *const c_void {
15660        self.next
15661    }
15662}
15663
15664unsafe impl InputChainStruct for PipelineViewportDepthClampControlCreateInfoEXT {
15665    const TYPE: StructureType =
15666        StructureType::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT;
15667
15668    #[inline]
15669    fn s_type(&self) -> StructureType {
15670        self.s_type
15671    }
15672
15673    #[inline]
15674    fn next(&self) -> *const c_void {
15675        self.next
15676    }
15677}
15678
15679unsafe impl InputChainStruct for PipelineViewportDepthClipControlCreateInfoEXT {
15680    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT;
15681
15682    #[inline]
15683    fn s_type(&self) -> StructureType {
15684        self.s_type
15685    }
15686
15687    #[inline]
15688    fn next(&self) -> *const c_void {
15689        self.next
15690    }
15691}
15692
15693unsafe impl InputChainStruct for PipelineViewportExclusiveScissorStateCreateInfoNV {
15694    const TYPE: StructureType =
15695        StructureType::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
15696
15697    #[inline]
15698    fn s_type(&self) -> StructureType {
15699        self.s_type
15700    }
15701
15702    #[inline]
15703    fn next(&self) -> *const c_void {
15704        self.next
15705    }
15706}
15707
15708unsafe impl InputChainStruct for PipelineViewportShadingRateImageStateCreateInfoNV {
15709    const TYPE: StructureType =
15710        StructureType::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
15711
15712    #[inline]
15713    fn s_type(&self) -> StructureType {
15714        self.s_type
15715    }
15716
15717    #[inline]
15718    fn next(&self) -> *const c_void {
15719        self.next
15720    }
15721}
15722
15723unsafe impl InputChainStruct for PipelineViewportStateCreateInfo {
15724    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_STATE_CREATE_INFO;
15725
15726    #[inline]
15727    fn s_type(&self) -> StructureType {
15728        self.s_type
15729    }
15730
15731    #[inline]
15732    fn next(&self) -> *const c_void {
15733        self.next
15734    }
15735}
15736
15737unsafe impl InputChainStruct for PipelineViewportSwizzleStateCreateInfoNV {
15738    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
15739
15740    #[inline]
15741    fn s_type(&self) -> StructureType {
15742        self.s_type
15743    }
15744
15745    #[inline]
15746    fn next(&self) -> *const c_void {
15747        self.next
15748    }
15749}
15750
15751unsafe impl InputChainStruct for PipelineViewportWScalingStateCreateInfoNV {
15752    const TYPE: StructureType = StructureType::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
15753
15754    #[inline]
15755    fn s_type(&self) -> StructureType {
15756        self.s_type
15757    }
15758
15759    #[inline]
15760    fn next(&self) -> *const c_void {
15761        self.next
15762    }
15763}
15764
15765unsafe impl InputChainStruct for PresentFrameTokenGGP {
15766    const TYPE: StructureType = StructureType::PRESENT_FRAME_TOKEN_GGP;
15767
15768    #[inline]
15769    fn s_type(&self) -> StructureType {
15770        self.s_type
15771    }
15772
15773    #[inline]
15774    fn next(&self) -> *const c_void {
15775        self.next
15776    }
15777}
15778
15779unsafe impl InputChainStruct for PresentId2KHR {
15780    const TYPE: StructureType = StructureType::PRESENT_ID_2_KHR;
15781
15782    #[inline]
15783    fn s_type(&self) -> StructureType {
15784        self.s_type
15785    }
15786
15787    #[inline]
15788    fn next(&self) -> *const c_void {
15789        self.next
15790    }
15791}
15792
15793unsafe impl InputChainStruct for PresentIdKHR {
15794    const TYPE: StructureType = StructureType::PRESENT_ID_KHR;
15795
15796    #[inline]
15797    fn s_type(&self) -> StructureType {
15798        self.s_type
15799    }
15800
15801    #[inline]
15802    fn next(&self) -> *const c_void {
15803        self.next
15804    }
15805}
15806
15807unsafe impl InputChainStruct for PresentInfoKHR {
15808    const TYPE: StructureType = StructureType::PRESENT_INFO_KHR;
15809
15810    #[inline]
15811    fn s_type(&self) -> StructureType {
15812        self.s_type
15813    }
15814
15815    #[inline]
15816    fn next(&self) -> *const c_void {
15817        self.next
15818    }
15819}
15820
15821unsafe impl InputChainStruct for PresentRegionsKHR {
15822    const TYPE: StructureType = StructureType::PRESENT_REGIONS_KHR;
15823
15824    #[inline]
15825    fn s_type(&self) -> StructureType {
15826        self.s_type
15827    }
15828
15829    #[inline]
15830    fn next(&self) -> *const c_void {
15831        self.next
15832    }
15833}
15834
15835unsafe impl InputChainStruct for PresentTimesInfoGOOGLE {
15836    const TYPE: StructureType = StructureType::PRESENT_TIMES_INFO_GOOGLE;
15837
15838    #[inline]
15839    fn s_type(&self) -> StructureType {
15840        self.s_type
15841    }
15842
15843    #[inline]
15844    fn next(&self) -> *const c_void {
15845        self.next
15846    }
15847}
15848
15849unsafe impl InputChainStruct for PresentTimingInfoEXT {
15850    const TYPE: StructureType = StructureType::PRESENT_TIMING_INFO_EXT;
15851
15852    #[inline]
15853    fn s_type(&self) -> StructureType {
15854        self.s_type
15855    }
15856
15857    #[inline]
15858    fn next(&self) -> *const c_void {
15859        self.next
15860    }
15861}
15862
15863unsafe impl InputChainStruct for PresentTimingSurfaceCapabilitiesEXT {
15864    const TYPE: StructureType = StructureType::PRESENT_TIMING_SURFACE_CAPABILITIES_EXT;
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 OutputChainStruct for PresentTimingSurfaceCapabilitiesEXT {
15878    #[inline]
15879    fn next_mut(&self) -> *mut c_void {
15880        self.next
15881    }
15882}
15883
15884unsafe impl InputChainStruct for PresentTimingsInfoEXT {
15885    const TYPE: StructureType = StructureType::PRESENT_TIMINGS_INFO_EXT;
15886
15887    #[inline]
15888    fn s_type(&self) -> StructureType {
15889        self.s_type
15890    }
15891
15892    #[inline]
15893    fn next(&self) -> *const c_void {
15894        self.next
15895    }
15896}
15897
15898unsafe impl InputChainStruct for PresentWait2InfoKHR {
15899    const TYPE: StructureType = StructureType::PRESENT_WAIT_2_INFO_KHR;
15900
15901    #[inline]
15902    fn s_type(&self) -> StructureType {
15903        self.s_type
15904    }
15905
15906    #[inline]
15907    fn next(&self) -> *const c_void {
15908        self.next
15909    }
15910}
15911
15912unsafe impl InputChainStruct for PrivateDataSlotCreateInfo {
15913    const TYPE: StructureType = StructureType::PRIVATE_DATA_SLOT_CREATE_INFO;
15914
15915    #[inline]
15916    fn s_type(&self) -> StructureType {
15917        self.s_type
15918    }
15919
15920    #[inline]
15921    fn next(&self) -> *const c_void {
15922        self.next
15923    }
15924}
15925
15926unsafe impl InputChainStruct for ProtectedSubmitInfo {
15927    const TYPE: StructureType = StructureType::PROTECTED_SUBMIT_INFO;
15928
15929    #[inline]
15930    fn s_type(&self) -> StructureType {
15931        self.s_type
15932    }
15933
15934    #[inline]
15935    fn next(&self) -> *const c_void {
15936        self.next
15937    }
15938}
15939
15940unsafe impl InputChainStruct for PushConstantsInfo {
15941    const TYPE: StructureType = StructureType::PUSH_CONSTANTS_INFO;
15942
15943    #[inline]
15944    fn s_type(&self) -> StructureType {
15945        self.s_type
15946    }
15947
15948    #[inline]
15949    fn next(&self) -> *const c_void {
15950        self.next
15951    }
15952}
15953
15954unsafe impl InputChainStruct for PushDescriptorSetInfo {
15955    const TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_INFO;
15956
15957    #[inline]
15958    fn s_type(&self) -> StructureType {
15959        self.s_type
15960    }
15961
15962    #[inline]
15963    fn next(&self) -> *const c_void {
15964        self.next
15965    }
15966}
15967
15968unsafe impl InputChainStruct for PushDescriptorSetWithTemplateInfo {
15969    const TYPE: StructureType = StructureType::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO;
15970
15971    #[inline]
15972    fn s_type(&self) -> StructureType {
15973        self.s_type
15974    }
15975
15976    #[inline]
15977    fn next(&self) -> *const c_void {
15978        self.next
15979    }
15980}
15981
15982unsafe impl InputChainStruct for QueryLowLatencySupportNV {
15983    const TYPE: StructureType = StructureType::QUERY_LOW_LATENCY_SUPPORT_NV;
15984
15985    #[inline]
15986    fn s_type(&self) -> StructureType {
15987        self.s_type
15988    }
15989
15990    #[inline]
15991    fn next(&self) -> *const c_void {
15992        self.next
15993    }
15994}
15995
15996unsafe impl InputChainStruct for QueryPoolCreateInfo {
15997    const TYPE: StructureType = StructureType::QUERY_POOL_CREATE_INFO;
15998
15999    #[inline]
16000    fn s_type(&self) -> StructureType {
16001        self.s_type
16002    }
16003
16004    #[inline]
16005    fn next(&self) -> *const c_void {
16006        self.next
16007    }
16008}
16009
16010unsafe impl InputChainStruct for QueryPoolPerformanceCreateInfoKHR {
16011    const TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
16012
16013    #[inline]
16014    fn s_type(&self) -> StructureType {
16015        self.s_type
16016    }
16017
16018    #[inline]
16019    fn next(&self) -> *const c_void {
16020        self.next
16021    }
16022}
16023
16024unsafe impl InputChainStruct for QueryPoolPerformanceQueryCreateInfoINTEL {
16025    const TYPE: StructureType = StructureType::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
16026
16027    #[inline]
16028    fn s_type(&self) -> StructureType {
16029        self.s_type
16030    }
16031
16032    #[inline]
16033    fn next(&self) -> *const c_void {
16034        self.next
16035    }
16036}
16037
16038unsafe impl InputChainStruct for QueryPoolVideoEncodeFeedbackCreateInfoKHR {
16039    const TYPE: StructureType = StructureType::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR;
16040
16041    #[inline]
16042    fn s_type(&self) -> StructureType {
16043        self.s_type
16044    }
16045
16046    #[inline]
16047    fn next(&self) -> *const c_void {
16048        self.next
16049    }
16050}
16051
16052unsafe impl InputChainStruct for QueueFamilyCheckpointProperties2NV {
16053    const TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
16054
16055    #[inline]
16056    fn s_type(&self) -> StructureType {
16057        self.s_type
16058    }
16059
16060    #[inline]
16061    fn next(&self) -> *const c_void {
16062        self.next
16063    }
16064}
16065
16066unsafe impl OutputChainStruct for QueueFamilyCheckpointProperties2NV {
16067    #[inline]
16068    fn next_mut(&self) -> *mut c_void {
16069        self.next
16070    }
16071}
16072
16073unsafe impl InputChainStruct for QueueFamilyCheckpointPropertiesNV {
16074    const TYPE: StructureType = StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
16075
16076    #[inline]
16077    fn s_type(&self) -> StructureType {
16078        self.s_type
16079    }
16080
16081    #[inline]
16082    fn next(&self) -> *const c_void {
16083        self.next
16084    }
16085}
16086
16087unsafe impl OutputChainStruct for QueueFamilyCheckpointPropertiesNV {
16088    #[inline]
16089    fn next_mut(&self) -> *mut c_void {
16090        self.next
16091    }
16092}
16093
16094unsafe impl InputChainStruct for QueueFamilyDataGraphProcessingEnginePropertiesARM {
16095    const TYPE: StructureType =
16096        StructureType::QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM;
16097
16098    #[inline]
16099    fn s_type(&self) -> StructureType {
16100        self.s_type
16101    }
16102
16103    #[inline]
16104    fn next(&self) -> *const c_void {
16105        self.next
16106    }
16107}
16108
16109unsafe impl InputChainStruct for QueueFamilyDataGraphPropertiesARM {
16110    const TYPE: StructureType = StructureType::QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM;
16111
16112    #[inline]
16113    fn s_type(&self) -> StructureType {
16114        self.s_type
16115    }
16116
16117    #[inline]
16118    fn next(&self) -> *const c_void {
16119        self.next
16120    }
16121}
16122
16123unsafe impl InputChainStruct for QueueFamilyGlobalPriorityProperties {
16124    const TYPE: StructureType = StructureType::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES;
16125
16126    #[inline]
16127    fn s_type(&self) -> StructureType {
16128        self.s_type
16129    }
16130
16131    #[inline]
16132    fn next(&self) -> *const c_void {
16133        self.next
16134    }
16135}
16136
16137unsafe impl OutputChainStruct for QueueFamilyGlobalPriorityProperties {
16138    #[inline]
16139    fn next_mut(&self) -> *mut c_void {
16140        self.next
16141    }
16142}
16143
16144unsafe impl InputChainStruct for QueueFamilyOwnershipTransferPropertiesKHR {
16145    const TYPE: StructureType = StructureType::QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR;
16146
16147    #[inline]
16148    fn s_type(&self) -> StructureType {
16149        self.s_type
16150    }
16151
16152    #[inline]
16153    fn next(&self) -> *const c_void {
16154        self.next
16155    }
16156}
16157
16158unsafe impl OutputChainStruct for QueueFamilyOwnershipTransferPropertiesKHR {
16159    #[inline]
16160    fn next_mut(&self) -> *mut c_void {
16161        self.next
16162    }
16163}
16164
16165unsafe impl InputChainStruct for QueueFamilyProperties2 {
16166    const TYPE: StructureType = StructureType::QUEUE_FAMILY_PROPERTIES_2;
16167
16168    #[inline]
16169    fn s_type(&self) -> StructureType {
16170        self.s_type
16171    }
16172
16173    #[inline]
16174    fn next(&self) -> *const c_void {
16175        self.next
16176    }
16177}
16178
16179unsafe impl OutputChainStruct for QueueFamilyProperties2 {
16180    #[inline]
16181    fn next_mut(&self) -> *mut c_void {
16182        self.next
16183    }
16184}
16185
16186unsafe impl InputChainStruct for QueueFamilyQueryResultStatusPropertiesKHR {
16187    const TYPE: StructureType = StructureType::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR;
16188
16189    #[inline]
16190    fn s_type(&self) -> StructureType {
16191        self.s_type
16192    }
16193
16194    #[inline]
16195    fn next(&self) -> *const c_void {
16196        self.next
16197    }
16198}
16199
16200unsafe impl OutputChainStruct for QueueFamilyQueryResultStatusPropertiesKHR {
16201    #[inline]
16202    fn next_mut(&self) -> *mut c_void {
16203        self.next
16204    }
16205}
16206
16207unsafe impl InputChainStruct for QueueFamilyVideoPropertiesKHR {
16208    const TYPE: StructureType = StructureType::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR;
16209
16210    #[inline]
16211    fn s_type(&self) -> StructureType {
16212        self.s_type
16213    }
16214
16215    #[inline]
16216    fn next(&self) -> *const c_void {
16217        self.next
16218    }
16219}
16220
16221unsafe impl OutputChainStruct for QueueFamilyVideoPropertiesKHR {
16222    #[inline]
16223    fn next_mut(&self) -> *mut c_void {
16224        self.next
16225    }
16226}
16227
16228unsafe impl InputChainStruct for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
16229    const TYPE: StructureType =
16230        StructureType::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
16231
16232    #[inline]
16233    fn s_type(&self) -> StructureType {
16234        self.s_type
16235    }
16236
16237    #[inline]
16238    fn next(&self) -> *const c_void {
16239        self.next
16240    }
16241}
16242
16243unsafe impl OutputChainStruct for RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
16244    #[inline]
16245    fn next_mut(&self) -> *mut c_void {
16246        self.next
16247    }
16248}
16249
16250unsafe impl InputChainStruct for RayTracingPipelineCreateInfoKHR {
16251    const TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
16252
16253    #[inline]
16254    fn s_type(&self) -> StructureType {
16255        self.s_type
16256    }
16257
16258    #[inline]
16259    fn next(&self) -> *const c_void {
16260        self.next
16261    }
16262}
16263
16264unsafe impl InputChainStruct for RayTracingPipelineCreateInfoNV {
16265    const TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_CREATE_INFO_NV;
16266
16267    #[inline]
16268    fn s_type(&self) -> StructureType {
16269        self.s_type
16270    }
16271
16272    #[inline]
16273    fn next(&self) -> *const c_void {
16274        self.next
16275    }
16276}
16277
16278unsafe impl InputChainStruct for RayTracingPipelineInterfaceCreateInfoKHR {
16279    const TYPE: StructureType = StructureType::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
16280
16281    #[inline]
16282    fn s_type(&self) -> StructureType {
16283        self.s_type
16284    }
16285
16286    #[inline]
16287    fn next(&self) -> *const c_void {
16288        self.next
16289    }
16290}
16291
16292unsafe impl InputChainStruct for RayTracingShaderGroupCreateInfoKHR {
16293    const TYPE: StructureType = StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
16294
16295    #[inline]
16296    fn s_type(&self) -> StructureType {
16297        self.s_type
16298    }
16299
16300    #[inline]
16301    fn next(&self) -> *const c_void {
16302        self.next
16303    }
16304}
16305
16306unsafe impl InputChainStruct for RayTracingShaderGroupCreateInfoNV {
16307    const TYPE: StructureType = StructureType::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
16308
16309    #[inline]
16310    fn s_type(&self) -> StructureType {
16311        self.s_type
16312    }
16313
16314    #[inline]
16315    fn next(&self) -> *const c_void {
16316        self.next
16317    }
16318}
16319
16320unsafe impl InputChainStruct for RefreshObjectListKHR {
16321    const TYPE: StructureType = StructureType::REFRESH_OBJECT_LIST_KHR;
16322
16323    #[inline]
16324    fn s_type(&self) -> StructureType {
16325        self.s_type
16326    }
16327
16328    #[inline]
16329    fn next(&self) -> *const c_void {
16330        self.next
16331    }
16332}
16333
16334unsafe impl InputChainStruct for ReleaseCapturedPipelineDataInfoKHR {
16335    const TYPE: StructureType = StructureType::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR;
16336
16337    #[inline]
16338    fn s_type(&self) -> StructureType {
16339        self.s_type
16340    }
16341
16342    #[inline]
16343    fn next(&self) -> *const c_void {
16344        self.next
16345    }
16346}
16347
16348unsafe impl OutputChainStruct for ReleaseCapturedPipelineDataInfoKHR {
16349    #[inline]
16350    fn next_mut(&self) -> *mut c_void {
16351        self.next
16352    }
16353}
16354
16355unsafe impl InputChainStruct for ReleaseSwapchainImagesInfoKHR {
16356    const TYPE: StructureType = StructureType::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR;
16357
16358    #[inline]
16359    fn s_type(&self) -> StructureType {
16360        self.s_type
16361    }
16362
16363    #[inline]
16364    fn next(&self) -> *const c_void {
16365        self.next
16366    }
16367}
16368
16369unsafe impl InputChainStruct for RenderPassAttachmentBeginInfo {
16370    const TYPE: StructureType = StructureType::RENDER_PASS_ATTACHMENT_BEGIN_INFO;
16371
16372    #[inline]
16373    fn s_type(&self) -> StructureType {
16374        self.s_type
16375    }
16376
16377    #[inline]
16378    fn next(&self) -> *const c_void {
16379        self.next
16380    }
16381}
16382
16383unsafe impl InputChainStruct for RenderPassBeginInfo {
16384    const TYPE: StructureType = StructureType::RENDER_PASS_BEGIN_INFO;
16385
16386    #[inline]
16387    fn s_type(&self) -> StructureType {
16388        self.s_type
16389    }
16390
16391    #[inline]
16392    fn next(&self) -> *const c_void {
16393        self.next
16394    }
16395}
16396
16397unsafe impl InputChainStruct for RenderPassCreateInfo {
16398    const TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO;
16399
16400    #[inline]
16401    fn s_type(&self) -> StructureType {
16402        self.s_type
16403    }
16404
16405    #[inline]
16406    fn next(&self) -> *const c_void {
16407        self.next
16408    }
16409}
16410
16411unsafe impl InputChainStruct for RenderPassCreateInfo2 {
16412    const TYPE: StructureType = StructureType::RENDER_PASS_CREATE_INFO_2;
16413
16414    #[inline]
16415    fn s_type(&self) -> StructureType {
16416        self.s_type
16417    }
16418
16419    #[inline]
16420    fn next(&self) -> *const c_void {
16421        self.next
16422    }
16423}
16424
16425unsafe impl InputChainStruct for RenderPassCreationControlEXT {
16426    const TYPE: StructureType = StructureType::RENDER_PASS_CREATION_CONTROL_EXT;
16427
16428    #[inline]
16429    fn s_type(&self) -> StructureType {
16430        self.s_type
16431    }
16432
16433    #[inline]
16434    fn next(&self) -> *const c_void {
16435        self.next
16436    }
16437}
16438
16439unsafe impl InputChainStruct for RenderPassCreationFeedbackCreateInfoEXT {
16440    const TYPE: StructureType = StructureType::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT;
16441
16442    #[inline]
16443    fn s_type(&self) -> StructureType {
16444        self.s_type
16445    }
16446
16447    #[inline]
16448    fn next(&self) -> *const c_void {
16449        self.next
16450    }
16451}
16452
16453unsafe impl InputChainStruct for RenderPassFragmentDensityMapCreateInfoEXT {
16454    const TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
16455
16456    #[inline]
16457    fn s_type(&self) -> StructureType {
16458        self.s_type
16459    }
16460
16461    #[inline]
16462    fn next(&self) -> *const c_void {
16463        self.next
16464    }
16465}
16466
16467unsafe impl InputChainStruct for RenderPassFragmentDensityMapOffsetEndInfoEXT {
16468    const TYPE: StructureType = StructureType::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT;
16469
16470    #[inline]
16471    fn s_type(&self) -> StructureType {
16472        self.s_type
16473    }
16474
16475    #[inline]
16476    fn next(&self) -> *const c_void {
16477        self.next
16478    }
16479}
16480
16481unsafe impl InputChainStruct for RenderPassInputAttachmentAspectCreateInfo {
16482    const TYPE: StructureType = StructureType::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
16483
16484    #[inline]
16485    fn s_type(&self) -> StructureType {
16486        self.s_type
16487    }
16488
16489    #[inline]
16490    fn next(&self) -> *const c_void {
16491        self.next
16492    }
16493}
16494
16495unsafe impl InputChainStruct for RenderPassMultiviewCreateInfo {
16496    const TYPE: StructureType = StructureType::RENDER_PASS_MULTIVIEW_CREATE_INFO;
16497
16498    #[inline]
16499    fn s_type(&self) -> StructureType {
16500        self.s_type
16501    }
16502
16503    #[inline]
16504    fn next(&self) -> *const c_void {
16505        self.next
16506    }
16507}
16508
16509unsafe impl InputChainStruct for RenderPassPerformanceCountersByRegionBeginInfoARM {
16510    const TYPE: StructureType =
16511        StructureType::RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM;
16512
16513    #[inline]
16514    fn s_type(&self) -> StructureType {
16515        self.s_type
16516    }
16517
16518    #[inline]
16519    fn next(&self) -> *const c_void {
16520        self.next
16521    }
16522}
16523
16524unsafe impl OutputChainStruct for RenderPassPerformanceCountersByRegionBeginInfoARM {
16525    #[inline]
16526    fn next_mut(&self) -> *mut c_void {
16527        self.next
16528    }
16529}
16530
16531unsafe impl InputChainStruct for RenderPassSampleLocationsBeginInfoEXT {
16532    const TYPE: StructureType = StructureType::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
16533
16534    #[inline]
16535    fn s_type(&self) -> StructureType {
16536        self.s_type
16537    }
16538
16539    #[inline]
16540    fn next(&self) -> *const c_void {
16541        self.next
16542    }
16543}
16544
16545unsafe impl InputChainStruct for RenderPassStripeBeginInfoARM {
16546    const TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_BEGIN_INFO_ARM;
16547
16548    #[inline]
16549    fn s_type(&self) -> StructureType {
16550        self.s_type
16551    }
16552
16553    #[inline]
16554    fn next(&self) -> *const c_void {
16555        self.next
16556    }
16557}
16558
16559unsafe impl InputChainStruct for RenderPassStripeInfoARM {
16560    const TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_INFO_ARM;
16561
16562    #[inline]
16563    fn s_type(&self) -> StructureType {
16564        self.s_type
16565    }
16566
16567    #[inline]
16568    fn next(&self) -> *const c_void {
16569        self.next
16570    }
16571}
16572
16573unsafe impl InputChainStruct for RenderPassStripeSubmitInfoARM {
16574    const TYPE: StructureType = StructureType::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM;
16575
16576    #[inline]
16577    fn s_type(&self) -> StructureType {
16578        self.s_type
16579    }
16580
16581    #[inline]
16582    fn next(&self) -> *const c_void {
16583        self.next
16584    }
16585}
16586
16587unsafe impl InputChainStruct for RenderPassSubpassFeedbackCreateInfoEXT {
16588    const TYPE: StructureType = StructureType::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT;
16589
16590    #[inline]
16591    fn s_type(&self) -> StructureType {
16592        self.s_type
16593    }
16594
16595    #[inline]
16596    fn next(&self) -> *const c_void {
16597        self.next
16598    }
16599}
16600
16601unsafe impl InputChainStruct for RenderPassTileShadingCreateInfoQCOM {
16602    const TYPE: StructureType = StructureType::RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM;
16603
16604    #[inline]
16605    fn s_type(&self) -> StructureType {
16606        self.s_type
16607    }
16608
16609    #[inline]
16610    fn next(&self) -> *const c_void {
16611        self.next
16612    }
16613}
16614
16615unsafe impl InputChainStruct for RenderPassTransformBeginInfoQCOM {
16616    const TYPE: StructureType = StructureType::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
16617
16618    #[inline]
16619    fn s_type(&self) -> StructureType {
16620        self.s_type
16621    }
16622
16623    #[inline]
16624    fn next(&self) -> *const c_void {
16625        self.next
16626    }
16627}
16628
16629unsafe impl InputChainStruct for RenderingAreaInfo {
16630    const TYPE: StructureType = StructureType::RENDERING_AREA_INFO;
16631
16632    #[inline]
16633    fn s_type(&self) -> StructureType {
16634        self.s_type
16635    }
16636
16637    #[inline]
16638    fn next(&self) -> *const c_void {
16639        self.next
16640    }
16641}
16642
16643unsafe impl InputChainStruct for RenderingAttachmentFlagsInfoKHR {
16644    const TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_FLAGS_INFO_KHR;
16645
16646    #[inline]
16647    fn s_type(&self) -> StructureType {
16648        self.s_type
16649    }
16650
16651    #[inline]
16652    fn next(&self) -> *const c_void {
16653        self.next
16654    }
16655}
16656
16657unsafe impl InputChainStruct for RenderingAttachmentInfo {
16658    const TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_INFO;
16659
16660    #[inline]
16661    fn s_type(&self) -> StructureType {
16662        self.s_type
16663    }
16664
16665    #[inline]
16666    fn next(&self) -> *const c_void {
16667        self.next
16668    }
16669}
16670
16671unsafe impl InputChainStruct for RenderingAttachmentLocationInfo {
16672    const TYPE: StructureType = StructureType::RENDERING_ATTACHMENT_LOCATION_INFO;
16673
16674    #[inline]
16675    fn s_type(&self) -> StructureType {
16676        self.s_type
16677    }
16678
16679    #[inline]
16680    fn next(&self) -> *const c_void {
16681        self.next
16682    }
16683}
16684
16685unsafe impl InputChainStruct for RenderingEndInfoKHR {
16686    const TYPE: StructureType = StructureType::RENDERING_END_INFO_KHR;
16687
16688    #[inline]
16689    fn s_type(&self) -> StructureType {
16690        self.s_type
16691    }
16692
16693    #[inline]
16694    fn next(&self) -> *const c_void {
16695        self.next
16696    }
16697}
16698
16699unsafe impl InputChainStruct for RenderingFragmentDensityMapAttachmentInfoEXT {
16700    const TYPE: StructureType = StructureType::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT;
16701
16702    #[inline]
16703    fn s_type(&self) -> StructureType {
16704        self.s_type
16705    }
16706
16707    #[inline]
16708    fn next(&self) -> *const c_void {
16709        self.next
16710    }
16711}
16712
16713unsafe impl InputChainStruct for RenderingFragmentShadingRateAttachmentInfoKHR {
16714    const TYPE: StructureType = StructureType::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
16715
16716    #[inline]
16717    fn s_type(&self) -> StructureType {
16718        self.s_type
16719    }
16720
16721    #[inline]
16722    fn next(&self) -> *const c_void {
16723        self.next
16724    }
16725}
16726
16727unsafe impl InputChainStruct for RenderingInfo {
16728    const TYPE: StructureType = StructureType::RENDERING_INFO;
16729
16730    #[inline]
16731    fn s_type(&self) -> StructureType {
16732        self.s_type
16733    }
16734
16735    #[inline]
16736    fn next(&self) -> *const c_void {
16737        self.next
16738    }
16739}
16740
16741unsafe impl InputChainStruct for RenderingInputAttachmentIndexInfo {
16742    const TYPE: StructureType = StructureType::RENDERING_INPUT_ATTACHMENT_INDEX_INFO;
16743
16744    #[inline]
16745    fn s_type(&self) -> StructureType {
16746        self.s_type
16747    }
16748
16749    #[inline]
16750    fn next(&self) -> *const c_void {
16751        self.next
16752    }
16753}
16754
16755unsafe impl InputChainStruct for ResolveImageInfo2 {
16756    const TYPE: StructureType = StructureType::RESOLVE_IMAGE_INFO_2;
16757
16758    #[inline]
16759    fn s_type(&self) -> StructureType {
16760        self.s_type
16761    }
16762
16763    #[inline]
16764    fn next(&self) -> *const c_void {
16765        self.next
16766    }
16767}
16768
16769unsafe impl InputChainStruct for ResolveImageModeInfoKHR {
16770    const TYPE: StructureType = StructureType::RESOLVE_IMAGE_MODE_INFO_KHR;
16771
16772    #[inline]
16773    fn s_type(&self) -> StructureType {
16774        self.s_type
16775    }
16776
16777    #[inline]
16778    fn next(&self) -> *const c_void {
16779        self.next
16780    }
16781}
16782
16783unsafe impl InputChainStruct for SampleLocationsInfoEXT {
16784    const TYPE: StructureType = StructureType::SAMPLE_LOCATIONS_INFO_EXT;
16785
16786    #[inline]
16787    fn s_type(&self) -> StructureType {
16788        self.s_type
16789    }
16790
16791    #[inline]
16792    fn next(&self) -> *const c_void {
16793        self.next
16794    }
16795}
16796
16797unsafe impl InputChainStruct for SamplerBlockMatchWindowCreateInfoQCOM {
16798    const TYPE: StructureType = StructureType::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM;
16799
16800    #[inline]
16801    fn s_type(&self) -> StructureType {
16802        self.s_type
16803    }
16804
16805    #[inline]
16806    fn next(&self) -> *const c_void {
16807        self.next
16808    }
16809}
16810
16811unsafe impl InputChainStruct for SamplerBorderColorComponentMappingCreateInfoEXT {
16812    const TYPE: StructureType =
16813        StructureType::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT;
16814
16815    #[inline]
16816    fn s_type(&self) -> StructureType {
16817        self.s_type
16818    }
16819
16820    #[inline]
16821    fn next(&self) -> *const c_void {
16822        self.next
16823    }
16824}
16825
16826unsafe impl InputChainStruct for SamplerCaptureDescriptorDataInfoEXT {
16827    const TYPE: StructureType = StructureType::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT;
16828
16829    #[inline]
16830    fn s_type(&self) -> StructureType {
16831        self.s_type
16832    }
16833
16834    #[inline]
16835    fn next(&self) -> *const c_void {
16836        self.next
16837    }
16838}
16839
16840unsafe impl InputChainStruct for SamplerCreateInfo {
16841    const TYPE: StructureType = StructureType::SAMPLER_CREATE_INFO;
16842
16843    #[inline]
16844    fn s_type(&self) -> StructureType {
16845        self.s_type
16846    }
16847
16848    #[inline]
16849    fn next(&self) -> *const c_void {
16850        self.next
16851    }
16852}
16853
16854unsafe impl InputChainStruct for SamplerCubicWeightsCreateInfoQCOM {
16855    const TYPE: StructureType = StructureType::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM;
16856
16857    #[inline]
16858    fn s_type(&self) -> StructureType {
16859        self.s_type
16860    }
16861
16862    #[inline]
16863    fn next(&self) -> *const c_void {
16864        self.next
16865    }
16866}
16867
16868unsafe impl InputChainStruct for SamplerCustomBorderColorCreateInfoEXT {
16869    const TYPE: StructureType = StructureType::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
16870
16871    #[inline]
16872    fn s_type(&self) -> StructureType {
16873        self.s_type
16874    }
16875
16876    #[inline]
16877    fn next(&self) -> *const c_void {
16878        self.next
16879    }
16880}
16881
16882unsafe impl InputChainStruct for SamplerReductionModeCreateInfo {
16883    const TYPE: StructureType = StructureType::SAMPLER_REDUCTION_MODE_CREATE_INFO;
16884
16885    #[inline]
16886    fn s_type(&self) -> StructureType {
16887        self.s_type
16888    }
16889
16890    #[inline]
16891    fn next(&self) -> *const c_void {
16892        self.next
16893    }
16894}
16895
16896unsafe impl InputChainStruct for SamplerYcbcrConversionCreateInfo {
16897    const TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
16898
16899    #[inline]
16900    fn s_type(&self) -> StructureType {
16901        self.s_type
16902    }
16903
16904    #[inline]
16905    fn next(&self) -> *const c_void {
16906        self.next
16907    }
16908}
16909
16910unsafe impl InputChainStruct for SamplerYcbcrConversionImageFormatProperties {
16911    const TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
16912
16913    #[inline]
16914    fn s_type(&self) -> StructureType {
16915        self.s_type
16916    }
16917
16918    #[inline]
16919    fn next(&self) -> *const c_void {
16920        self.next
16921    }
16922}
16923
16924unsafe impl OutputChainStruct for SamplerYcbcrConversionImageFormatProperties {
16925    #[inline]
16926    fn next_mut(&self) -> *mut c_void {
16927        self.next
16928    }
16929}
16930
16931unsafe impl InputChainStruct for SamplerYcbcrConversionInfo {
16932    const TYPE: StructureType = StructureType::SAMPLER_YCBCR_CONVERSION_INFO;
16933
16934    #[inline]
16935    fn s_type(&self) -> StructureType {
16936        self.s_type
16937    }
16938
16939    #[inline]
16940    fn next(&self) -> *const c_void {
16941        self.next
16942    }
16943}
16944
16945unsafe impl InputChainStruct for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
16946    const TYPE: StructureType =
16947        StructureType::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM;
16948
16949    #[inline]
16950    fn s_type(&self) -> StructureType {
16951        self.s_type
16952    }
16953
16954    #[inline]
16955    fn next(&self) -> *const c_void {
16956        self.next
16957    }
16958}
16959
16960unsafe impl OutputChainStruct for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
16961    #[inline]
16962    fn next_mut(&self) -> *mut c_void {
16963        self.next
16964    }
16965}
16966
16967unsafe impl InputChainStruct for SciSyncAttributesInfoNV {
16968    const TYPE: StructureType = StructureType::SCI_SYNC_ATTRIBUTES_INFO_NV;
16969
16970    #[inline]
16971    fn s_type(&self) -> StructureType {
16972        self.s_type
16973    }
16974
16975    #[inline]
16976    fn next(&self) -> *const c_void {
16977        self.next
16978    }
16979}
16980
16981unsafe impl InputChainStruct for ScreenBufferFormatPropertiesQNX {
16982    const TYPE: StructureType = StructureType::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX;
16983
16984    #[inline]
16985    fn s_type(&self) -> StructureType {
16986        self.s_type
16987    }
16988
16989    #[inline]
16990    fn next(&self) -> *const c_void {
16991        self.next
16992    }
16993}
16994
16995unsafe impl OutputChainStruct for ScreenBufferFormatPropertiesQNX {
16996    #[inline]
16997    fn next_mut(&self) -> *mut c_void {
16998        self.next
16999    }
17000}
17001
17002unsafe impl InputChainStruct for ScreenBufferPropertiesQNX {
17003    const TYPE: StructureType = StructureType::SCREEN_BUFFER_PROPERTIES_QNX;
17004
17005    #[inline]
17006    fn s_type(&self) -> StructureType {
17007        self.s_type
17008    }
17009
17010    #[inline]
17011    fn next(&self) -> *const c_void {
17012        self.next
17013    }
17014}
17015
17016unsafe impl OutputChainStruct for ScreenBufferPropertiesQNX {
17017    #[inline]
17018    fn next_mut(&self) -> *mut c_void {
17019        self.next
17020    }
17021}
17022
17023unsafe impl InputChainStruct for ScreenSurfaceCreateInfoQNX {
17024    const TYPE: StructureType = StructureType::SCREEN_SURFACE_CREATE_INFO_QNX;
17025
17026    #[inline]
17027    fn s_type(&self) -> StructureType {
17028        self.s_type
17029    }
17030
17031    #[inline]
17032    fn next(&self) -> *const c_void {
17033        self.next
17034    }
17035}
17036
17037unsafe impl InputChainStruct for SemaphoreCreateInfo {
17038    const TYPE: StructureType = StructureType::SEMAPHORE_CREATE_INFO;
17039
17040    #[inline]
17041    fn s_type(&self) -> StructureType {
17042        self.s_type
17043    }
17044
17045    #[inline]
17046    fn next(&self) -> *const c_void {
17047        self.next
17048    }
17049}
17050
17051unsafe impl InputChainStruct for SemaphoreGetFdInfoKHR {
17052    const TYPE: StructureType = StructureType::SEMAPHORE_GET_FD_INFO_KHR;
17053
17054    #[inline]
17055    fn s_type(&self) -> StructureType {
17056        self.s_type
17057    }
17058
17059    #[inline]
17060    fn next(&self) -> *const c_void {
17061        self.next
17062    }
17063}
17064
17065unsafe impl InputChainStruct for SemaphoreGetSciSyncInfoNV {
17066    const TYPE: StructureType = StructureType::SEMAPHORE_GET_SCI_SYNC_INFO_NV;
17067
17068    #[inline]
17069    fn s_type(&self) -> StructureType {
17070        self.s_type
17071    }
17072
17073    #[inline]
17074    fn next(&self) -> *const c_void {
17075        self.next
17076    }
17077}
17078
17079unsafe impl InputChainStruct for SemaphoreGetWin32HandleInfoKHR {
17080    const TYPE: StructureType = StructureType::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
17081
17082    #[inline]
17083    fn s_type(&self) -> StructureType {
17084        self.s_type
17085    }
17086
17087    #[inline]
17088    fn next(&self) -> *const c_void {
17089        self.next
17090    }
17091}
17092
17093unsafe impl InputChainStruct for SemaphoreGetZirconHandleInfoFUCHSIA {
17094    const TYPE: StructureType = StructureType::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
17095
17096    #[inline]
17097    fn s_type(&self) -> StructureType {
17098        self.s_type
17099    }
17100
17101    #[inline]
17102    fn next(&self) -> *const c_void {
17103        self.next
17104    }
17105}
17106
17107unsafe impl InputChainStruct for SemaphoreSciSyncCreateInfoNV {
17108    const TYPE: StructureType = StructureType::SEMAPHORE_SCI_SYNC_CREATE_INFO_NV;
17109
17110    #[inline]
17111    fn s_type(&self) -> StructureType {
17112        self.s_type
17113    }
17114
17115    #[inline]
17116    fn next(&self) -> *const c_void {
17117        self.next
17118    }
17119}
17120
17121unsafe impl InputChainStruct for SemaphoreSciSyncPoolCreateInfoNV {
17122    const TYPE: StructureType = StructureType::SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV;
17123
17124    #[inline]
17125    fn s_type(&self) -> StructureType {
17126        self.s_type
17127    }
17128
17129    #[inline]
17130    fn next(&self) -> *const c_void {
17131        self.next
17132    }
17133}
17134
17135unsafe impl InputChainStruct for SemaphoreSignalInfo {
17136    const TYPE: StructureType = StructureType::SEMAPHORE_SIGNAL_INFO;
17137
17138    #[inline]
17139    fn s_type(&self) -> StructureType {
17140        self.s_type
17141    }
17142
17143    #[inline]
17144    fn next(&self) -> *const c_void {
17145        self.next
17146    }
17147}
17148
17149unsafe impl InputChainStruct for SemaphoreSubmitInfo {
17150    const TYPE: StructureType = StructureType::SEMAPHORE_SUBMIT_INFO;
17151
17152    #[inline]
17153    fn s_type(&self) -> StructureType {
17154        self.s_type
17155    }
17156
17157    #[inline]
17158    fn next(&self) -> *const c_void {
17159        self.next
17160    }
17161}
17162
17163unsafe impl InputChainStruct for SemaphoreTypeCreateInfo {
17164    const TYPE: StructureType = StructureType::SEMAPHORE_TYPE_CREATE_INFO;
17165
17166    #[inline]
17167    fn s_type(&self) -> StructureType {
17168        self.s_type
17169    }
17170
17171    #[inline]
17172    fn next(&self) -> *const c_void {
17173        self.next
17174    }
17175}
17176
17177unsafe impl InputChainStruct for SemaphoreWaitInfo {
17178    const TYPE: StructureType = StructureType::SEMAPHORE_WAIT_INFO;
17179
17180    #[inline]
17181    fn s_type(&self) -> StructureType {
17182        self.s_type
17183    }
17184
17185    #[inline]
17186    fn next(&self) -> *const c_void {
17187        self.next
17188    }
17189}
17190
17191unsafe impl InputChainStruct for SetDescriptorBufferOffsetsInfoEXT {
17192    const TYPE: StructureType = StructureType::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT;
17193
17194    #[inline]
17195    fn s_type(&self) -> StructureType {
17196        self.s_type
17197    }
17198
17199    #[inline]
17200    fn next(&self) -> *const c_void {
17201        self.next
17202    }
17203}
17204
17205unsafe impl InputChainStruct for SetLatencyMarkerInfoNV {
17206    const TYPE: StructureType = StructureType::SET_LATENCY_MARKER_INFO_NV;
17207
17208    #[inline]
17209    fn s_type(&self) -> StructureType {
17210        self.s_type
17211    }
17212
17213    #[inline]
17214    fn next(&self) -> *const c_void {
17215        self.next
17216    }
17217}
17218
17219unsafe impl InputChainStruct for SetPresentConfigNV {
17220    const TYPE: StructureType = StructureType::SET_PRESENT_CONFIG_NV;
17221
17222    #[inline]
17223    fn s_type(&self) -> StructureType {
17224        self.s_type
17225    }
17226
17227    #[inline]
17228    fn next(&self) -> *const c_void {
17229        self.next
17230    }
17231}
17232
17233unsafe impl InputChainStruct for ShaderCreateInfoEXT {
17234    const TYPE: StructureType = StructureType::SHADER_CREATE_INFO_EXT;
17235
17236    #[inline]
17237    fn s_type(&self) -> StructureType {
17238        self.s_type
17239    }
17240
17241    #[inline]
17242    fn next(&self) -> *const c_void {
17243        self.next
17244    }
17245}
17246
17247unsafe impl InputChainStruct for ShaderModuleCreateInfo {
17248    const TYPE: StructureType = StructureType::SHADER_MODULE_CREATE_INFO;
17249
17250    #[inline]
17251    fn s_type(&self) -> StructureType {
17252        self.s_type
17253    }
17254
17255    #[inline]
17256    fn next(&self) -> *const c_void {
17257        self.next
17258    }
17259}
17260
17261unsafe impl InputChainStruct for ShaderModuleIdentifierEXT {
17262    const TYPE: StructureType = StructureType::SHADER_MODULE_IDENTIFIER_EXT;
17263
17264    #[inline]
17265    fn s_type(&self) -> StructureType {
17266        self.s_type
17267    }
17268
17269    #[inline]
17270    fn next(&self) -> *const c_void {
17271        self.next
17272    }
17273}
17274
17275unsafe impl OutputChainStruct for ShaderModuleIdentifierEXT {
17276    #[inline]
17277    fn next_mut(&self) -> *mut c_void {
17278        self.next
17279    }
17280}
17281
17282unsafe impl InputChainStruct for ShaderModuleValidationCacheCreateInfoEXT {
17283    const TYPE: StructureType = StructureType::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
17284
17285    #[inline]
17286    fn s_type(&self) -> StructureType {
17287        self.s_type
17288    }
17289
17290    #[inline]
17291    fn next(&self) -> *const c_void {
17292        self.next
17293    }
17294}
17295
17296unsafe impl InputChainStruct for SharedPresentSurfaceCapabilitiesKHR {
17297    const TYPE: StructureType = StructureType::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
17298
17299    #[inline]
17300    fn s_type(&self) -> StructureType {
17301        self.s_type
17302    }
17303
17304    #[inline]
17305    fn next(&self) -> *const c_void {
17306        self.next
17307    }
17308}
17309
17310unsafe impl OutputChainStruct for SharedPresentSurfaceCapabilitiesKHR {
17311    #[inline]
17312    fn next_mut(&self) -> *mut c_void {
17313        self.next
17314    }
17315}
17316
17317unsafe impl InputChainStruct for SparseImageFormatProperties2 {
17318    const TYPE: StructureType = StructureType::SPARSE_IMAGE_FORMAT_PROPERTIES_2;
17319
17320    #[inline]
17321    fn s_type(&self) -> StructureType {
17322        self.s_type
17323    }
17324
17325    #[inline]
17326    fn next(&self) -> *const c_void {
17327        self.next
17328    }
17329}
17330
17331unsafe impl OutputChainStruct for SparseImageFormatProperties2 {
17332    #[inline]
17333    fn next_mut(&self) -> *mut c_void {
17334        self.next
17335    }
17336}
17337
17338unsafe impl InputChainStruct for SparseImageMemoryRequirements2 {
17339    const TYPE: StructureType = StructureType::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
17340
17341    #[inline]
17342    fn s_type(&self) -> StructureType {
17343        self.s_type
17344    }
17345
17346    #[inline]
17347    fn next(&self) -> *const c_void {
17348        self.next
17349    }
17350}
17351
17352unsafe impl OutputChainStruct for SparseImageMemoryRequirements2 {
17353    #[inline]
17354    fn next_mut(&self) -> *mut c_void {
17355        self.next
17356    }
17357}
17358
17359unsafe impl InputChainStruct for StreamDescriptorSurfaceCreateInfoGGP {
17360    const TYPE: StructureType = StructureType::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
17361
17362    #[inline]
17363    fn s_type(&self) -> StructureType {
17364        self.s_type
17365    }
17366
17367    #[inline]
17368    fn next(&self) -> *const c_void {
17369        self.next
17370    }
17371}
17372
17373unsafe impl InputChainStruct for SubmitInfo {
17374    const TYPE: StructureType = StructureType::SUBMIT_INFO;
17375
17376    #[inline]
17377    fn s_type(&self) -> StructureType {
17378        self.s_type
17379    }
17380
17381    #[inline]
17382    fn next(&self) -> *const c_void {
17383        self.next
17384    }
17385}
17386
17387unsafe impl InputChainStruct for SubmitInfo2 {
17388    const TYPE: StructureType = StructureType::SUBMIT_INFO_2;
17389
17390    #[inline]
17391    fn s_type(&self) -> StructureType {
17392        self.s_type
17393    }
17394
17395    #[inline]
17396    fn next(&self) -> *const c_void {
17397        self.next
17398    }
17399}
17400
17401unsafe impl InputChainStruct for SubpassBeginInfo {
17402    const TYPE: StructureType = StructureType::SUBPASS_BEGIN_INFO;
17403
17404    #[inline]
17405    fn s_type(&self) -> StructureType {
17406        self.s_type
17407    }
17408
17409    #[inline]
17410    fn next(&self) -> *const c_void {
17411        self.next
17412    }
17413}
17414
17415unsafe impl InputChainStruct for SubpassDependency2 {
17416    const TYPE: StructureType = StructureType::SUBPASS_DEPENDENCY_2;
17417
17418    #[inline]
17419    fn s_type(&self) -> StructureType {
17420        self.s_type
17421    }
17422
17423    #[inline]
17424    fn next(&self) -> *const c_void {
17425        self.next
17426    }
17427}
17428
17429unsafe impl InputChainStruct for SubpassDescription2 {
17430    const TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_2;
17431
17432    #[inline]
17433    fn s_type(&self) -> StructureType {
17434        self.s_type
17435    }
17436
17437    #[inline]
17438    fn next(&self) -> *const c_void {
17439        self.next
17440    }
17441}
17442
17443unsafe impl InputChainStruct for SubpassDescriptionDepthStencilResolve {
17444    const TYPE: StructureType = StructureType::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
17445
17446    #[inline]
17447    fn s_type(&self) -> StructureType {
17448        self.s_type
17449    }
17450
17451    #[inline]
17452    fn next(&self) -> *const c_void {
17453        self.next
17454    }
17455}
17456
17457unsafe impl InputChainStruct for SubpassEndInfo {
17458    const TYPE: StructureType = StructureType::SUBPASS_END_INFO;
17459
17460    #[inline]
17461    fn s_type(&self) -> StructureType {
17462        self.s_type
17463    }
17464
17465    #[inline]
17466    fn next(&self) -> *const c_void {
17467        self.next
17468    }
17469}
17470
17471unsafe impl InputChainStruct for SubpassResolvePerformanceQueryEXT {
17472    const TYPE: StructureType = StructureType::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT;
17473
17474    #[inline]
17475    fn s_type(&self) -> StructureType {
17476        self.s_type
17477    }
17478
17479    #[inline]
17480    fn next(&self) -> *const c_void {
17481        self.next
17482    }
17483}
17484
17485unsafe impl OutputChainStruct for SubpassResolvePerformanceQueryEXT {
17486    #[inline]
17487    fn next_mut(&self) -> *mut c_void {
17488        self.next
17489    }
17490}
17491
17492unsafe impl InputChainStruct for SubpassShadingPipelineCreateInfoHUAWEI {
17493    const TYPE: StructureType = StructureType::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
17494
17495    #[inline]
17496    fn s_type(&self) -> StructureType {
17497        self.s_type
17498    }
17499
17500    #[inline]
17501    fn next(&self) -> *const c_void {
17502        self.next
17503    }
17504}
17505
17506unsafe impl OutputChainStruct for SubpassShadingPipelineCreateInfoHUAWEI {
17507    #[inline]
17508    fn next_mut(&self) -> *mut c_void {
17509        self.next
17510    }
17511}
17512
17513unsafe impl InputChainStruct for SubresourceHostMemcpySize {
17514    const TYPE: StructureType = StructureType::SUBRESOURCE_HOST_MEMCPY_SIZE;
17515
17516    #[inline]
17517    fn s_type(&self) -> StructureType {
17518        self.s_type
17519    }
17520
17521    #[inline]
17522    fn next(&self) -> *const c_void {
17523        self.next
17524    }
17525}
17526
17527unsafe impl OutputChainStruct for SubresourceHostMemcpySize {
17528    #[inline]
17529    fn next_mut(&self) -> *mut c_void {
17530        self.next
17531    }
17532}
17533
17534unsafe impl InputChainStruct for SubresourceLayout2 {
17535    const TYPE: StructureType = StructureType::SUBRESOURCE_LAYOUT_2;
17536
17537    #[inline]
17538    fn s_type(&self) -> StructureType {
17539        self.s_type
17540    }
17541
17542    #[inline]
17543    fn next(&self) -> *const c_void {
17544        self.next
17545    }
17546}
17547
17548unsafe impl OutputChainStruct for SubresourceLayout2 {
17549    #[inline]
17550    fn next_mut(&self) -> *mut c_void {
17551        self.next
17552    }
17553}
17554
17555unsafe impl InputChainStruct for SurfaceCapabilities2EXT {
17556    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_EXT;
17557
17558    #[inline]
17559    fn s_type(&self) -> StructureType {
17560        self.s_type
17561    }
17562
17563    #[inline]
17564    fn next(&self) -> *const c_void {
17565        self.next
17566    }
17567}
17568
17569unsafe impl OutputChainStruct for SurfaceCapabilities2EXT {
17570    #[inline]
17571    fn next_mut(&self) -> *mut c_void {
17572        self.next
17573    }
17574}
17575
17576unsafe impl InputChainStruct for SurfaceCapabilities2KHR {
17577    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_2_KHR;
17578
17579    #[inline]
17580    fn s_type(&self) -> StructureType {
17581        self.s_type
17582    }
17583
17584    #[inline]
17585    fn next(&self) -> *const c_void {
17586        self.next
17587    }
17588}
17589
17590unsafe impl OutputChainStruct for SurfaceCapabilities2KHR {
17591    #[inline]
17592    fn next_mut(&self) -> *mut c_void {
17593        self.next
17594    }
17595}
17596
17597unsafe impl InputChainStruct for SurfaceCapabilitiesFullScreenExclusiveEXT {
17598    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
17599
17600    #[inline]
17601    fn s_type(&self) -> StructureType {
17602        self.s_type
17603    }
17604
17605    #[inline]
17606    fn next(&self) -> *const c_void {
17607        self.next
17608    }
17609}
17610
17611unsafe impl OutputChainStruct for SurfaceCapabilitiesFullScreenExclusiveEXT {
17612    #[inline]
17613    fn next_mut(&self) -> *mut c_void {
17614        self.next
17615    }
17616}
17617
17618unsafe impl InputChainStruct for SurfaceCapabilitiesPresentBarrierNV {
17619    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV;
17620
17621    #[inline]
17622    fn s_type(&self) -> StructureType {
17623        self.s_type
17624    }
17625
17626    #[inline]
17627    fn next(&self) -> *const c_void {
17628        self.next
17629    }
17630}
17631
17632unsafe impl OutputChainStruct for SurfaceCapabilitiesPresentBarrierNV {
17633    #[inline]
17634    fn next_mut(&self) -> *mut c_void {
17635        self.next
17636    }
17637}
17638
17639unsafe impl InputChainStruct for SurfaceCapabilitiesPresentId2KHR {
17640    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_ID_2_KHR;
17641
17642    #[inline]
17643    fn s_type(&self) -> StructureType {
17644        self.s_type
17645    }
17646
17647    #[inline]
17648    fn next(&self) -> *const c_void {
17649        self.next
17650    }
17651}
17652
17653unsafe impl OutputChainStruct for SurfaceCapabilitiesPresentId2KHR {
17654    #[inline]
17655    fn next_mut(&self) -> *mut c_void {
17656        self.next
17657    }
17658}
17659
17660unsafe impl InputChainStruct for SurfaceCapabilitiesPresentWait2KHR {
17661    const TYPE: StructureType = StructureType::SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR;
17662
17663    #[inline]
17664    fn s_type(&self) -> StructureType {
17665        self.s_type
17666    }
17667
17668    #[inline]
17669    fn next(&self) -> *const c_void {
17670        self.next
17671    }
17672}
17673
17674unsafe impl OutputChainStruct for SurfaceCapabilitiesPresentWait2KHR {
17675    #[inline]
17676    fn next_mut(&self) -> *mut c_void {
17677        self.next
17678    }
17679}
17680
17681unsafe impl InputChainStruct for SurfaceCreateInfoOHOS {
17682    const TYPE: StructureType = StructureType::SURFACE_CREATE_INFO_OHOS;
17683
17684    #[inline]
17685    fn s_type(&self) -> StructureType {
17686        self.s_type
17687    }
17688
17689    #[inline]
17690    fn next(&self) -> *const c_void {
17691        self.next
17692    }
17693}
17694
17695unsafe impl InputChainStruct for SurfaceFormat2KHR {
17696    const TYPE: StructureType = StructureType::SURFACE_FORMAT_2_KHR;
17697
17698    #[inline]
17699    fn s_type(&self) -> StructureType {
17700        self.s_type
17701    }
17702
17703    #[inline]
17704    fn next(&self) -> *const c_void {
17705        self.next
17706    }
17707}
17708
17709unsafe impl OutputChainStruct for SurfaceFormat2KHR {
17710    #[inline]
17711    fn next_mut(&self) -> *mut c_void {
17712        self.next
17713    }
17714}
17715
17716unsafe impl InputChainStruct for SurfaceFullScreenExclusiveInfoEXT {
17717    const TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
17718
17719    #[inline]
17720    fn s_type(&self) -> StructureType {
17721        self.s_type
17722    }
17723
17724    #[inline]
17725    fn next(&self) -> *const c_void {
17726        self.next
17727    }
17728}
17729
17730unsafe impl OutputChainStruct for SurfaceFullScreenExclusiveInfoEXT {
17731    #[inline]
17732    fn next_mut(&self) -> *mut c_void {
17733        self.next
17734    }
17735}
17736
17737unsafe impl InputChainStruct for SurfaceFullScreenExclusiveWin32InfoEXT {
17738    const TYPE: StructureType = StructureType::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
17739
17740    #[inline]
17741    fn s_type(&self) -> StructureType {
17742        self.s_type
17743    }
17744
17745    #[inline]
17746    fn next(&self) -> *const c_void {
17747        self.next
17748    }
17749}
17750
17751unsafe impl InputChainStruct for SurfacePresentModeCompatibilityKHR {
17752    const TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR;
17753
17754    #[inline]
17755    fn s_type(&self) -> StructureType {
17756        self.s_type
17757    }
17758
17759    #[inline]
17760    fn next(&self) -> *const c_void {
17761        self.next
17762    }
17763}
17764
17765unsafe impl OutputChainStruct for SurfacePresentModeCompatibilityKHR {
17766    #[inline]
17767    fn next_mut(&self) -> *mut c_void {
17768        self.next
17769    }
17770}
17771
17772unsafe impl InputChainStruct for SurfacePresentModeKHR {
17773    const TYPE: StructureType = StructureType::SURFACE_PRESENT_MODE_KHR;
17774
17775    #[inline]
17776    fn s_type(&self) -> StructureType {
17777        self.s_type
17778    }
17779
17780    #[inline]
17781    fn next(&self) -> *const c_void {
17782        self.next
17783    }
17784}
17785
17786unsafe impl OutputChainStruct for SurfacePresentModeKHR {
17787    #[inline]
17788    fn next_mut(&self) -> *mut c_void {
17789        self.next
17790    }
17791}
17792
17793unsafe impl InputChainStruct for SurfacePresentScalingCapabilitiesKHR {
17794    const TYPE: StructureType = StructureType::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR;
17795
17796    #[inline]
17797    fn s_type(&self) -> StructureType {
17798        self.s_type
17799    }
17800
17801    #[inline]
17802    fn next(&self) -> *const c_void {
17803        self.next
17804    }
17805}
17806
17807unsafe impl OutputChainStruct for SurfacePresentScalingCapabilitiesKHR {
17808    #[inline]
17809    fn next_mut(&self) -> *mut c_void {
17810        self.next
17811    }
17812}
17813
17814unsafe impl InputChainStruct for SurfaceProtectedCapabilitiesKHR {
17815    const TYPE: StructureType = StructureType::SURFACE_PROTECTED_CAPABILITIES_KHR;
17816
17817    #[inline]
17818    fn s_type(&self) -> StructureType {
17819        self.s_type
17820    }
17821
17822    #[inline]
17823    fn next(&self) -> *const c_void {
17824        self.next
17825    }
17826}
17827
17828unsafe impl OutputChainStruct for SurfaceProtectedCapabilitiesKHR {
17829    #[inline]
17830    fn next_mut(&self) -> *mut c_void {
17831        self.next
17832    }
17833}
17834
17835unsafe impl InputChainStruct for SwapchainCalibratedTimestampInfoEXT {
17836    const TYPE: StructureType = StructureType::SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT;
17837
17838    #[inline]
17839    fn s_type(&self) -> StructureType {
17840        self.s_type
17841    }
17842
17843    #[inline]
17844    fn next(&self) -> *const c_void {
17845        self.next
17846    }
17847}
17848
17849unsafe impl InputChainStruct for SwapchainCounterCreateInfoEXT {
17850    const TYPE: StructureType = StructureType::SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
17851
17852    #[inline]
17853    fn s_type(&self) -> StructureType {
17854        self.s_type
17855    }
17856
17857    #[inline]
17858    fn next(&self) -> *const c_void {
17859        self.next
17860    }
17861}
17862
17863unsafe impl InputChainStruct for SwapchainCreateInfoKHR {
17864    const TYPE: StructureType = StructureType::SWAPCHAIN_CREATE_INFO_KHR;
17865
17866    #[inline]
17867    fn s_type(&self) -> StructureType {
17868        self.s_type
17869    }
17870
17871    #[inline]
17872    fn next(&self) -> *const c_void {
17873        self.next
17874    }
17875}
17876
17877unsafe impl InputChainStruct for SwapchainDisplayNativeHdrCreateInfoAMD {
17878    const TYPE: StructureType = StructureType::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
17879
17880    #[inline]
17881    fn s_type(&self) -> StructureType {
17882        self.s_type
17883    }
17884
17885    #[inline]
17886    fn next(&self) -> *const c_void {
17887        self.next
17888    }
17889}
17890
17891unsafe impl InputChainStruct for SwapchainLatencyCreateInfoNV {
17892    const TYPE: StructureType = StructureType::SWAPCHAIN_LATENCY_CREATE_INFO_NV;
17893
17894    #[inline]
17895    fn s_type(&self) -> StructureType {
17896        self.s_type
17897    }
17898
17899    #[inline]
17900    fn next(&self) -> *const c_void {
17901        self.next
17902    }
17903}
17904
17905unsafe impl InputChainStruct for SwapchainPresentBarrierCreateInfoNV {
17906    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV;
17907
17908    #[inline]
17909    fn s_type(&self) -> StructureType {
17910        self.s_type
17911    }
17912
17913    #[inline]
17914    fn next(&self) -> *const c_void {
17915        self.next
17916    }
17917}
17918
17919unsafe impl OutputChainStruct for SwapchainPresentBarrierCreateInfoNV {
17920    #[inline]
17921    fn next_mut(&self) -> *mut c_void {
17922        self.next
17923    }
17924}
17925
17926unsafe impl InputChainStruct for SwapchainPresentFenceInfoKHR {
17927    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_FENCE_INFO_KHR;
17928
17929    #[inline]
17930    fn s_type(&self) -> StructureType {
17931        self.s_type
17932    }
17933
17934    #[inline]
17935    fn next(&self) -> *const c_void {
17936        self.next
17937    }
17938}
17939
17940unsafe impl InputChainStruct for SwapchainPresentModeInfoKHR {
17941    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODE_INFO_KHR;
17942
17943    #[inline]
17944    fn s_type(&self) -> StructureType {
17945        self.s_type
17946    }
17947
17948    #[inline]
17949    fn next(&self) -> *const c_void {
17950        self.next
17951    }
17952}
17953
17954unsafe impl InputChainStruct for SwapchainPresentModesCreateInfoKHR {
17955    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR;
17956
17957    #[inline]
17958    fn s_type(&self) -> StructureType {
17959        self.s_type
17960    }
17961
17962    #[inline]
17963    fn next(&self) -> *const c_void {
17964        self.next
17965    }
17966}
17967
17968unsafe impl InputChainStruct for SwapchainPresentScalingCreateInfoKHR {
17969    const TYPE: StructureType = StructureType::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR;
17970
17971    #[inline]
17972    fn s_type(&self) -> StructureType {
17973        self.s_type
17974    }
17975
17976    #[inline]
17977    fn next(&self) -> *const c_void {
17978        self.next
17979    }
17980}
17981
17982unsafe impl InputChainStruct for SwapchainTimeDomainPropertiesEXT {
17983    const TYPE: StructureType = StructureType::SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT;
17984
17985    #[inline]
17986    fn s_type(&self) -> StructureType {
17987        self.s_type
17988    }
17989
17990    #[inline]
17991    fn next(&self) -> *const c_void {
17992        self.next
17993    }
17994}
17995
17996unsafe impl OutputChainStruct for SwapchainTimeDomainPropertiesEXT {
17997    #[inline]
17998    fn next_mut(&self) -> *mut c_void {
17999        self.next
18000    }
18001}
18002
18003unsafe impl InputChainStruct for SwapchainTimingPropertiesEXT {
18004    const TYPE: StructureType = StructureType::SWAPCHAIN_TIMING_PROPERTIES_EXT;
18005
18006    #[inline]
18007    fn s_type(&self) -> StructureType {
18008        self.s_type
18009    }
18010
18011    #[inline]
18012    fn next(&self) -> *const c_void {
18013        self.next
18014    }
18015}
18016
18017unsafe impl OutputChainStruct for SwapchainTimingPropertiesEXT {
18018    #[inline]
18019    fn next_mut(&self) -> *mut c_void {
18020        self.next
18021    }
18022}
18023
18024unsafe impl InputChainStruct for SysmemColorSpaceFUCHSIA {
18025    const TYPE: StructureType = StructureType::SYSMEM_COLOR_SPACE_FUCHSIA;
18026
18027    #[inline]
18028    fn s_type(&self) -> StructureType {
18029        self.s_type
18030    }
18031
18032    #[inline]
18033    fn next(&self) -> *const c_void {
18034        self.next
18035    }
18036}
18037
18038unsafe impl InputChainStruct for TensorCaptureDescriptorDataInfoARM {
18039    const TYPE: StructureType = StructureType::TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM;
18040
18041    #[inline]
18042    fn s_type(&self) -> StructureType {
18043        self.s_type
18044    }
18045
18046    #[inline]
18047    fn next(&self) -> *const c_void {
18048        self.next
18049    }
18050}
18051
18052unsafe impl InputChainStruct for TensorCopyARM {
18053    const TYPE: StructureType = StructureType::TENSOR_COPY_ARM;
18054
18055    #[inline]
18056    fn s_type(&self) -> StructureType {
18057        self.s_type
18058    }
18059
18060    #[inline]
18061    fn next(&self) -> *const c_void {
18062        self.next
18063    }
18064}
18065
18066unsafe impl InputChainStruct for TensorCreateInfoARM {
18067    const TYPE: StructureType = StructureType::TENSOR_CREATE_INFO_ARM;
18068
18069    #[inline]
18070    fn s_type(&self) -> StructureType {
18071        self.s_type
18072    }
18073
18074    #[inline]
18075    fn next(&self) -> *const c_void {
18076        self.next
18077    }
18078}
18079
18080unsafe impl InputChainStruct for TensorDependencyInfoARM {
18081    const TYPE: StructureType = StructureType::TENSOR_DEPENDENCY_INFO_ARM;
18082
18083    #[inline]
18084    fn s_type(&self) -> StructureType {
18085        self.s_type
18086    }
18087
18088    #[inline]
18089    fn next(&self) -> *const c_void {
18090        self.next
18091    }
18092}
18093
18094unsafe impl InputChainStruct for TensorDescriptionARM {
18095    const TYPE: StructureType = StructureType::TENSOR_DESCRIPTION_ARM;
18096
18097    #[inline]
18098    fn s_type(&self) -> StructureType {
18099        self.s_type
18100    }
18101
18102    #[inline]
18103    fn next(&self) -> *const c_void {
18104        self.next
18105    }
18106}
18107
18108unsafe impl InputChainStruct for TensorFormatPropertiesARM {
18109    const TYPE: StructureType = StructureType::TENSOR_FORMAT_PROPERTIES_ARM;
18110
18111    #[inline]
18112    fn s_type(&self) -> StructureType {
18113        self.s_type
18114    }
18115
18116    #[inline]
18117    fn next(&self) -> *const c_void {
18118        self.next
18119    }
18120}
18121
18122unsafe impl OutputChainStruct for TensorFormatPropertiesARM {
18123    #[inline]
18124    fn next_mut(&self) -> *mut c_void {
18125        self.next
18126    }
18127}
18128
18129unsafe impl InputChainStruct for TensorMemoryBarrierARM {
18130    const TYPE: StructureType = StructureType::TENSOR_MEMORY_BARRIER_ARM;
18131
18132    #[inline]
18133    fn s_type(&self) -> StructureType {
18134        self.s_type
18135    }
18136
18137    #[inline]
18138    fn next(&self) -> *const c_void {
18139        self.next
18140    }
18141}
18142
18143unsafe impl InputChainStruct for TensorMemoryRequirementsInfoARM {
18144    const TYPE: StructureType = StructureType::TENSOR_MEMORY_REQUIREMENTS_INFO_ARM;
18145
18146    #[inline]
18147    fn s_type(&self) -> StructureType {
18148        self.s_type
18149    }
18150
18151    #[inline]
18152    fn next(&self) -> *const c_void {
18153        self.next
18154    }
18155}
18156
18157unsafe impl InputChainStruct for TensorViewCaptureDescriptorDataInfoARM {
18158    const TYPE: StructureType = StructureType::TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM;
18159
18160    #[inline]
18161    fn s_type(&self) -> StructureType {
18162        self.s_type
18163    }
18164
18165    #[inline]
18166    fn next(&self) -> *const c_void {
18167        self.next
18168    }
18169}
18170
18171unsafe impl InputChainStruct for TensorViewCreateInfoARM {
18172    const TYPE: StructureType = StructureType::TENSOR_VIEW_CREATE_INFO_ARM;
18173
18174    #[inline]
18175    fn s_type(&self) -> StructureType {
18176        self.s_type
18177    }
18178
18179    #[inline]
18180    fn next(&self) -> *const c_void {
18181        self.next
18182    }
18183}
18184
18185unsafe impl InputChainStruct for TextureLODGatherFormatPropertiesAMD {
18186    const TYPE: StructureType = StructureType::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
18187
18188    #[inline]
18189    fn s_type(&self) -> StructureType {
18190        self.s_type
18191    }
18192
18193    #[inline]
18194    fn next(&self) -> *const c_void {
18195        self.next
18196    }
18197}
18198
18199unsafe impl OutputChainStruct for TextureLODGatherFormatPropertiesAMD {
18200    #[inline]
18201    fn next_mut(&self) -> *mut c_void {
18202        self.next
18203    }
18204}
18205
18206unsafe impl InputChainStruct for TileMemoryBindInfoQCOM {
18207    const TYPE: StructureType = StructureType::TILE_MEMORY_BIND_INFO_QCOM;
18208
18209    #[inline]
18210    fn s_type(&self) -> StructureType {
18211        self.s_type
18212    }
18213
18214    #[inline]
18215    fn next(&self) -> *const c_void {
18216        self.next
18217    }
18218}
18219
18220unsafe impl InputChainStruct for TileMemoryRequirementsQCOM {
18221    const TYPE: StructureType = StructureType::TILE_MEMORY_REQUIREMENTS_QCOM;
18222
18223    #[inline]
18224    fn s_type(&self) -> StructureType {
18225        self.s_type
18226    }
18227
18228    #[inline]
18229    fn next(&self) -> *const c_void {
18230        self.next
18231    }
18232}
18233
18234unsafe impl OutputChainStruct for TileMemoryRequirementsQCOM {
18235    #[inline]
18236    fn next_mut(&self) -> *mut c_void {
18237        self.next
18238    }
18239}
18240
18241unsafe impl InputChainStruct for TileMemorySizeInfoQCOM {
18242    const TYPE: StructureType = StructureType::TILE_MEMORY_SIZE_INFO_QCOM;
18243
18244    #[inline]
18245    fn s_type(&self) -> StructureType {
18246        self.s_type
18247    }
18248
18249    #[inline]
18250    fn next(&self) -> *const c_void {
18251        self.next
18252    }
18253}
18254
18255unsafe impl InputChainStruct for TilePropertiesQCOM {
18256    const TYPE: StructureType = StructureType::TILE_PROPERTIES_QCOM;
18257
18258    #[inline]
18259    fn s_type(&self) -> StructureType {
18260        self.s_type
18261    }
18262
18263    #[inline]
18264    fn next(&self) -> *const c_void {
18265        self.next
18266    }
18267}
18268
18269unsafe impl OutputChainStruct for TilePropertiesQCOM {
18270    #[inline]
18271    fn next_mut(&self) -> *mut c_void {
18272        self.next
18273    }
18274}
18275
18276unsafe impl InputChainStruct for TimelineSemaphoreSubmitInfo {
18277    const TYPE: StructureType = StructureType::TIMELINE_SEMAPHORE_SUBMIT_INFO;
18278
18279    #[inline]
18280    fn s_type(&self) -> StructureType {
18281        self.s_type
18282    }
18283
18284    #[inline]
18285    fn next(&self) -> *const c_void {
18286        self.next
18287    }
18288}
18289
18290unsafe impl InputChainStruct for ValidationCacheCreateInfoEXT {
18291    const TYPE: StructureType = StructureType::VALIDATION_CACHE_CREATE_INFO_EXT;
18292
18293    #[inline]
18294    fn s_type(&self) -> StructureType {
18295        self.s_type
18296    }
18297
18298    #[inline]
18299    fn next(&self) -> *const c_void {
18300        self.next
18301    }
18302}
18303
18304unsafe impl InputChainStruct for ValidationFeaturesEXT {
18305    const TYPE: StructureType = StructureType::VALIDATION_FEATURES_EXT;
18306
18307    #[inline]
18308    fn s_type(&self) -> StructureType {
18309        self.s_type
18310    }
18311
18312    #[inline]
18313    fn next(&self) -> *const c_void {
18314        self.next
18315    }
18316}
18317
18318unsafe impl InputChainStruct for ValidationFlagsEXT {
18319    const TYPE: StructureType = StructureType::VALIDATION_FLAGS_EXT;
18320
18321    #[inline]
18322    fn s_type(&self) -> StructureType {
18323        self.s_type
18324    }
18325
18326    #[inline]
18327    fn next(&self) -> *const c_void {
18328        self.next
18329    }
18330}
18331
18332unsafe impl InputChainStruct for VertexInputAttributeDescription2EXT {
18333    const TYPE: StructureType = StructureType::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
18334
18335    #[inline]
18336    fn s_type(&self) -> StructureType {
18337        self.s_type
18338    }
18339
18340    #[inline]
18341    fn next(&self) -> *const c_void {
18342        self.next
18343    }
18344}
18345
18346unsafe impl OutputChainStruct for VertexInputAttributeDescription2EXT {
18347    #[inline]
18348    fn next_mut(&self) -> *mut c_void {
18349        self.next
18350    }
18351}
18352
18353unsafe impl InputChainStruct for VertexInputBindingDescription2EXT {
18354    const TYPE: StructureType = StructureType::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
18355
18356    #[inline]
18357    fn s_type(&self) -> StructureType {
18358        self.s_type
18359    }
18360
18361    #[inline]
18362    fn next(&self) -> *const c_void {
18363        self.next
18364    }
18365}
18366
18367unsafe impl OutputChainStruct for VertexInputBindingDescription2EXT {
18368    #[inline]
18369    fn next_mut(&self) -> *mut c_void {
18370        self.next
18371    }
18372}
18373
18374unsafe impl InputChainStruct for ViSurfaceCreateInfoNN {
18375    const TYPE: StructureType = StructureType::VI_SURFACE_CREATE_INFO_NN;
18376
18377    #[inline]
18378    fn s_type(&self) -> StructureType {
18379        self.s_type
18380    }
18381
18382    #[inline]
18383    fn next(&self) -> *const c_void {
18384        self.next
18385    }
18386}
18387
18388unsafe impl InputChainStruct for VideoBeginCodingInfoKHR {
18389    const TYPE: StructureType = StructureType::VIDEO_BEGIN_CODING_INFO_KHR;
18390
18391    #[inline]
18392    fn s_type(&self) -> StructureType {
18393        self.s_type
18394    }
18395
18396    #[inline]
18397    fn next(&self) -> *const c_void {
18398        self.next
18399    }
18400}
18401
18402unsafe impl InputChainStruct for VideoCapabilitiesKHR {
18403    const TYPE: StructureType = StructureType::VIDEO_CAPABILITIES_KHR;
18404
18405    #[inline]
18406    fn s_type(&self) -> StructureType {
18407        self.s_type
18408    }
18409
18410    #[inline]
18411    fn next(&self) -> *const c_void {
18412        self.next
18413    }
18414}
18415
18416unsafe impl OutputChainStruct for VideoCapabilitiesKHR {
18417    #[inline]
18418    fn next_mut(&self) -> *mut c_void {
18419        self.next
18420    }
18421}
18422
18423unsafe impl InputChainStruct for VideoCodingControlInfoKHR {
18424    const TYPE: StructureType = StructureType::VIDEO_CODING_CONTROL_INFO_KHR;
18425
18426    #[inline]
18427    fn s_type(&self) -> StructureType {
18428        self.s_type
18429    }
18430
18431    #[inline]
18432    fn next(&self) -> *const c_void {
18433        self.next
18434    }
18435}
18436
18437unsafe impl InputChainStruct for VideoDecodeAV1CapabilitiesKHR {
18438    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_CAPABILITIES_KHR;
18439
18440    #[inline]
18441    fn s_type(&self) -> StructureType {
18442        self.s_type
18443    }
18444
18445    #[inline]
18446    fn next(&self) -> *const c_void {
18447        self.next
18448    }
18449}
18450
18451unsafe impl OutputChainStruct for VideoDecodeAV1CapabilitiesKHR {
18452    #[inline]
18453    fn next_mut(&self) -> *mut c_void {
18454        self.next
18455    }
18456}
18457
18458unsafe impl InputChainStruct for VideoDecodeAV1DpbSlotInfoKHR {
18459    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR;
18460
18461    #[inline]
18462    fn s_type(&self) -> StructureType {
18463        self.s_type
18464    }
18465
18466    #[inline]
18467    fn next(&self) -> *const c_void {
18468        self.next
18469    }
18470}
18471
18472unsafe impl InputChainStruct for VideoDecodeAV1InlineSessionParametersInfoKHR {
18473    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR;
18474
18475    #[inline]
18476    fn s_type(&self) -> StructureType {
18477        self.s_type
18478    }
18479
18480    #[inline]
18481    fn next(&self) -> *const c_void {
18482        self.next
18483    }
18484}
18485
18486unsafe impl InputChainStruct for VideoDecodeAV1PictureInfoKHR {
18487    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PICTURE_INFO_KHR;
18488
18489    #[inline]
18490    fn s_type(&self) -> StructureType {
18491        self.s_type
18492    }
18493
18494    #[inline]
18495    fn next(&self) -> *const c_void {
18496        self.next
18497    }
18498}
18499
18500unsafe impl InputChainStruct for VideoDecodeAV1ProfileInfoKHR {
18501    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_PROFILE_INFO_KHR;
18502
18503    #[inline]
18504    fn s_type(&self) -> StructureType {
18505        self.s_type
18506    }
18507
18508    #[inline]
18509    fn next(&self) -> *const c_void {
18510        self.next
18511    }
18512}
18513
18514unsafe impl InputChainStruct for VideoDecodeAV1SessionParametersCreateInfoKHR {
18515    const TYPE: StructureType = StructureType::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR;
18516
18517    #[inline]
18518    fn s_type(&self) -> StructureType {
18519        self.s_type
18520    }
18521
18522    #[inline]
18523    fn next(&self) -> *const c_void {
18524        self.next
18525    }
18526}
18527
18528unsafe impl InputChainStruct for VideoDecodeCapabilitiesKHR {
18529    const TYPE: StructureType = StructureType::VIDEO_DECODE_CAPABILITIES_KHR;
18530
18531    #[inline]
18532    fn s_type(&self) -> StructureType {
18533        self.s_type
18534    }
18535
18536    #[inline]
18537    fn next(&self) -> *const c_void {
18538        self.next
18539    }
18540}
18541
18542unsafe impl OutputChainStruct for VideoDecodeCapabilitiesKHR {
18543    #[inline]
18544    fn next_mut(&self) -> *mut c_void {
18545        self.next
18546    }
18547}
18548
18549unsafe impl InputChainStruct for VideoDecodeH264CapabilitiesKHR {
18550    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_CAPABILITIES_KHR;
18551
18552    #[inline]
18553    fn s_type(&self) -> StructureType {
18554        self.s_type
18555    }
18556
18557    #[inline]
18558    fn next(&self) -> *const c_void {
18559        self.next
18560    }
18561}
18562
18563unsafe impl OutputChainStruct for VideoDecodeH264CapabilitiesKHR {
18564    #[inline]
18565    fn next_mut(&self) -> *mut c_void {
18566        self.next
18567    }
18568}
18569
18570unsafe impl InputChainStruct for VideoDecodeH264DpbSlotInfoKHR {
18571    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR;
18572
18573    #[inline]
18574    fn s_type(&self) -> StructureType {
18575        self.s_type
18576    }
18577
18578    #[inline]
18579    fn next(&self) -> *const c_void {
18580        self.next
18581    }
18582}
18583
18584unsafe impl InputChainStruct for VideoDecodeH264InlineSessionParametersInfoKHR {
18585    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR;
18586
18587    #[inline]
18588    fn s_type(&self) -> StructureType {
18589        self.s_type
18590    }
18591
18592    #[inline]
18593    fn next(&self) -> *const c_void {
18594        self.next
18595    }
18596}
18597
18598unsafe impl InputChainStruct for VideoDecodeH264PictureInfoKHR {
18599    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PICTURE_INFO_KHR;
18600
18601    #[inline]
18602    fn s_type(&self) -> StructureType {
18603        self.s_type
18604    }
18605
18606    #[inline]
18607    fn next(&self) -> *const c_void {
18608        self.next
18609    }
18610}
18611
18612unsafe impl InputChainStruct for VideoDecodeH264ProfileInfoKHR {
18613    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_PROFILE_INFO_KHR;
18614
18615    #[inline]
18616    fn s_type(&self) -> StructureType {
18617        self.s_type
18618    }
18619
18620    #[inline]
18621    fn next(&self) -> *const c_void {
18622        self.next
18623    }
18624}
18625
18626unsafe impl InputChainStruct for VideoDecodeH264SessionParametersAddInfoKHR {
18627    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR;
18628
18629    #[inline]
18630    fn s_type(&self) -> StructureType {
18631        self.s_type
18632    }
18633
18634    #[inline]
18635    fn next(&self) -> *const c_void {
18636        self.next
18637    }
18638}
18639
18640unsafe impl InputChainStruct for VideoDecodeH264SessionParametersCreateInfoKHR {
18641    const TYPE: StructureType = StructureType::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR;
18642
18643    #[inline]
18644    fn s_type(&self) -> StructureType {
18645        self.s_type
18646    }
18647
18648    #[inline]
18649    fn next(&self) -> *const c_void {
18650        self.next
18651    }
18652}
18653
18654unsafe impl InputChainStruct for VideoDecodeH265CapabilitiesKHR {
18655    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_CAPABILITIES_KHR;
18656
18657    #[inline]
18658    fn s_type(&self) -> StructureType {
18659        self.s_type
18660    }
18661
18662    #[inline]
18663    fn next(&self) -> *const c_void {
18664        self.next
18665    }
18666}
18667
18668unsafe impl OutputChainStruct for VideoDecodeH265CapabilitiesKHR {
18669    #[inline]
18670    fn next_mut(&self) -> *mut c_void {
18671        self.next
18672    }
18673}
18674
18675unsafe impl InputChainStruct for VideoDecodeH265DpbSlotInfoKHR {
18676    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR;
18677
18678    #[inline]
18679    fn s_type(&self) -> StructureType {
18680        self.s_type
18681    }
18682
18683    #[inline]
18684    fn next(&self) -> *const c_void {
18685        self.next
18686    }
18687}
18688
18689unsafe impl InputChainStruct for VideoDecodeH265InlineSessionParametersInfoKHR {
18690    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR;
18691
18692    #[inline]
18693    fn s_type(&self) -> StructureType {
18694        self.s_type
18695    }
18696
18697    #[inline]
18698    fn next(&self) -> *const c_void {
18699        self.next
18700    }
18701}
18702
18703unsafe impl InputChainStruct for VideoDecodeH265PictureInfoKHR {
18704    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PICTURE_INFO_KHR;
18705
18706    #[inline]
18707    fn s_type(&self) -> StructureType {
18708        self.s_type
18709    }
18710
18711    #[inline]
18712    fn next(&self) -> *const c_void {
18713        self.next
18714    }
18715}
18716
18717unsafe impl InputChainStruct for VideoDecodeH265ProfileInfoKHR {
18718    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_PROFILE_INFO_KHR;
18719
18720    #[inline]
18721    fn s_type(&self) -> StructureType {
18722        self.s_type
18723    }
18724
18725    #[inline]
18726    fn next(&self) -> *const c_void {
18727        self.next
18728    }
18729}
18730
18731unsafe impl InputChainStruct for VideoDecodeH265SessionParametersAddInfoKHR {
18732    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR;
18733
18734    #[inline]
18735    fn s_type(&self) -> StructureType {
18736        self.s_type
18737    }
18738
18739    #[inline]
18740    fn next(&self) -> *const c_void {
18741        self.next
18742    }
18743}
18744
18745unsafe impl InputChainStruct for VideoDecodeH265SessionParametersCreateInfoKHR {
18746    const TYPE: StructureType = StructureType::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR;
18747
18748    #[inline]
18749    fn s_type(&self) -> StructureType {
18750        self.s_type
18751    }
18752
18753    #[inline]
18754    fn next(&self) -> *const c_void {
18755        self.next
18756    }
18757}
18758
18759unsafe impl InputChainStruct for VideoDecodeInfoKHR {
18760    const TYPE: StructureType = StructureType::VIDEO_DECODE_INFO_KHR;
18761
18762    #[inline]
18763    fn s_type(&self) -> StructureType {
18764        self.s_type
18765    }
18766
18767    #[inline]
18768    fn next(&self) -> *const c_void {
18769        self.next
18770    }
18771}
18772
18773unsafe impl InputChainStruct for VideoDecodeUsageInfoKHR {
18774    const TYPE: StructureType = StructureType::VIDEO_DECODE_USAGE_INFO_KHR;
18775
18776    #[inline]
18777    fn s_type(&self) -> StructureType {
18778        self.s_type
18779    }
18780
18781    #[inline]
18782    fn next(&self) -> *const c_void {
18783        self.next
18784    }
18785}
18786
18787unsafe impl InputChainStruct for VideoDecodeVP9CapabilitiesKHR {
18788    const TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_CAPABILITIES_KHR;
18789
18790    #[inline]
18791    fn s_type(&self) -> StructureType {
18792        self.s_type
18793    }
18794
18795    #[inline]
18796    fn next(&self) -> *const c_void {
18797        self.next
18798    }
18799}
18800
18801unsafe impl OutputChainStruct for VideoDecodeVP9CapabilitiesKHR {
18802    #[inline]
18803    fn next_mut(&self) -> *mut c_void {
18804        self.next
18805    }
18806}
18807
18808unsafe impl InputChainStruct for VideoDecodeVP9PictureInfoKHR {
18809    const TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_PICTURE_INFO_KHR;
18810
18811    #[inline]
18812    fn s_type(&self) -> StructureType {
18813        self.s_type
18814    }
18815
18816    #[inline]
18817    fn next(&self) -> *const c_void {
18818        self.next
18819    }
18820}
18821
18822unsafe impl InputChainStruct for VideoDecodeVP9ProfileInfoKHR {
18823    const TYPE: StructureType = StructureType::VIDEO_DECODE_VP9_PROFILE_INFO_KHR;
18824
18825    #[inline]
18826    fn s_type(&self) -> StructureType {
18827        self.s_type
18828    }
18829
18830    #[inline]
18831    fn next(&self) -> *const c_void {
18832        self.next
18833    }
18834}
18835
18836unsafe impl InputChainStruct for VideoEncodeAV1CapabilitiesKHR {
18837    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_CAPABILITIES_KHR;
18838
18839    #[inline]
18840    fn s_type(&self) -> StructureType {
18841        self.s_type
18842    }
18843
18844    #[inline]
18845    fn next(&self) -> *const c_void {
18846        self.next
18847    }
18848}
18849
18850unsafe impl OutputChainStruct for VideoEncodeAV1CapabilitiesKHR {
18851    #[inline]
18852    fn next_mut(&self) -> *mut c_void {
18853        self.next
18854    }
18855}
18856
18857unsafe impl InputChainStruct for VideoEncodeAV1DpbSlotInfoKHR {
18858    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR;
18859
18860    #[inline]
18861    fn s_type(&self) -> StructureType {
18862        self.s_type
18863    }
18864
18865    #[inline]
18866    fn next(&self) -> *const c_void {
18867        self.next
18868    }
18869}
18870
18871unsafe impl InputChainStruct for VideoEncodeAV1GopRemainingFrameInfoKHR {
18872    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR;
18873
18874    #[inline]
18875    fn s_type(&self) -> StructureType {
18876        self.s_type
18877    }
18878
18879    #[inline]
18880    fn next(&self) -> *const c_void {
18881        self.next
18882    }
18883}
18884
18885unsafe impl InputChainStruct for VideoEncodeAV1PictureInfoKHR {
18886    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR;
18887
18888    #[inline]
18889    fn s_type(&self) -> StructureType {
18890        self.s_type
18891    }
18892
18893    #[inline]
18894    fn next(&self) -> *const c_void {
18895        self.next
18896    }
18897}
18898
18899unsafe impl InputChainStruct for VideoEncodeAV1ProfileInfoKHR {
18900    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR;
18901
18902    #[inline]
18903    fn s_type(&self) -> StructureType {
18904        self.s_type
18905    }
18906
18907    #[inline]
18908    fn next(&self) -> *const c_void {
18909        self.next
18910    }
18911}
18912
18913unsafe impl InputChainStruct for VideoEncodeAV1QualityLevelPropertiesKHR {
18914    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR;
18915
18916    #[inline]
18917    fn s_type(&self) -> StructureType {
18918        self.s_type
18919    }
18920
18921    #[inline]
18922    fn next(&self) -> *const c_void {
18923        self.next
18924    }
18925}
18926
18927unsafe impl OutputChainStruct for VideoEncodeAV1QualityLevelPropertiesKHR {
18928    #[inline]
18929    fn next_mut(&self) -> *mut c_void {
18930        self.next
18931    }
18932}
18933
18934unsafe impl InputChainStruct for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
18935    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR;
18936
18937    #[inline]
18938    fn s_type(&self) -> StructureType {
18939        self.s_type
18940    }
18941
18942    #[inline]
18943    fn next(&self) -> *const c_void {
18944        self.next
18945    }
18946}
18947
18948unsafe impl OutputChainStruct for VideoEncodeAV1QuantizationMapCapabilitiesKHR {
18949    #[inline]
18950    fn next_mut(&self) -> *mut c_void {
18951        self.next
18952    }
18953}
18954
18955unsafe impl InputChainStruct for VideoEncodeAV1RateControlInfoKHR {
18956    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR;
18957
18958    #[inline]
18959    fn s_type(&self) -> StructureType {
18960        self.s_type
18961    }
18962
18963    #[inline]
18964    fn next(&self) -> *const c_void {
18965        self.next
18966    }
18967}
18968
18969unsafe impl InputChainStruct for VideoEncodeAV1RateControlLayerInfoKHR {
18970    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR;
18971
18972    #[inline]
18973    fn s_type(&self) -> StructureType {
18974        self.s_type
18975    }
18976
18977    #[inline]
18978    fn next(&self) -> *const c_void {
18979        self.next
18980    }
18981}
18982
18983unsafe impl InputChainStruct for VideoEncodeAV1SessionCreateInfoKHR {
18984    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR;
18985
18986    #[inline]
18987    fn s_type(&self) -> StructureType {
18988        self.s_type
18989    }
18990
18991    #[inline]
18992    fn next(&self) -> *const c_void {
18993        self.next
18994    }
18995}
18996
18997unsafe impl InputChainStruct for VideoEncodeAV1SessionParametersCreateInfoKHR {
18998    const TYPE: StructureType = StructureType::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR;
18999
19000    #[inline]
19001    fn s_type(&self) -> StructureType {
19002        self.s_type
19003    }
19004
19005    #[inline]
19006    fn next(&self) -> *const c_void {
19007        self.next
19008    }
19009}
19010
19011unsafe impl InputChainStruct for VideoEncodeCapabilitiesKHR {
19012    const TYPE: StructureType = StructureType::VIDEO_ENCODE_CAPABILITIES_KHR;
19013
19014    #[inline]
19015    fn s_type(&self) -> StructureType {
19016        self.s_type
19017    }
19018
19019    #[inline]
19020    fn next(&self) -> *const c_void {
19021        self.next
19022    }
19023}
19024
19025unsafe impl OutputChainStruct for VideoEncodeCapabilitiesKHR {
19026    #[inline]
19027    fn next_mut(&self) -> *mut c_void {
19028        self.next
19029    }
19030}
19031
19032unsafe impl InputChainStruct for VideoEncodeH264CapabilitiesKHR {
19033    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_CAPABILITIES_KHR;
19034
19035    #[inline]
19036    fn s_type(&self) -> StructureType {
19037        self.s_type
19038    }
19039
19040    #[inline]
19041    fn next(&self) -> *const c_void {
19042        self.next
19043    }
19044}
19045
19046unsafe impl OutputChainStruct for VideoEncodeH264CapabilitiesKHR {
19047    #[inline]
19048    fn next_mut(&self) -> *mut c_void {
19049        self.next
19050    }
19051}
19052
19053unsafe impl InputChainStruct for VideoEncodeH264DpbSlotInfoKHR {
19054    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR;
19055
19056    #[inline]
19057    fn s_type(&self) -> StructureType {
19058        self.s_type
19059    }
19060
19061    #[inline]
19062    fn next(&self) -> *const c_void {
19063        self.next
19064    }
19065}
19066
19067unsafe impl InputChainStruct for VideoEncodeH264GopRemainingFrameInfoKHR {
19068    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR;
19069
19070    #[inline]
19071    fn s_type(&self) -> StructureType {
19072        self.s_type
19073    }
19074
19075    #[inline]
19076    fn next(&self) -> *const c_void {
19077        self.next
19078    }
19079}
19080
19081unsafe impl InputChainStruct for VideoEncodeH264NaluSliceInfoKHR {
19082    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR;
19083
19084    #[inline]
19085    fn s_type(&self) -> StructureType {
19086        self.s_type
19087    }
19088
19089    #[inline]
19090    fn next(&self) -> *const c_void {
19091        self.next
19092    }
19093}
19094
19095unsafe impl InputChainStruct for VideoEncodeH264PictureInfoKHR {
19096    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PICTURE_INFO_KHR;
19097
19098    #[inline]
19099    fn s_type(&self) -> StructureType {
19100        self.s_type
19101    }
19102
19103    #[inline]
19104    fn next(&self) -> *const c_void {
19105        self.next
19106    }
19107}
19108
19109unsafe impl InputChainStruct for VideoEncodeH264ProfileInfoKHR {
19110    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_PROFILE_INFO_KHR;
19111
19112    #[inline]
19113    fn s_type(&self) -> StructureType {
19114        self.s_type
19115    }
19116
19117    #[inline]
19118    fn next(&self) -> *const c_void {
19119        self.next
19120    }
19121}
19122
19123unsafe impl InputChainStruct for VideoEncodeH264QualityLevelPropertiesKHR {
19124    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR;
19125
19126    #[inline]
19127    fn s_type(&self) -> StructureType {
19128        self.s_type
19129    }
19130
19131    #[inline]
19132    fn next(&self) -> *const c_void {
19133        self.next
19134    }
19135}
19136
19137unsafe impl OutputChainStruct for VideoEncodeH264QualityLevelPropertiesKHR {
19138    #[inline]
19139    fn next_mut(&self) -> *mut c_void {
19140        self.next
19141    }
19142}
19143
19144unsafe impl InputChainStruct for VideoEncodeH264QuantizationMapCapabilitiesKHR {
19145    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR;
19146
19147    #[inline]
19148    fn s_type(&self) -> StructureType {
19149        self.s_type
19150    }
19151
19152    #[inline]
19153    fn next(&self) -> *const c_void {
19154        self.next
19155    }
19156}
19157
19158unsafe impl OutputChainStruct for VideoEncodeH264QuantizationMapCapabilitiesKHR {
19159    #[inline]
19160    fn next_mut(&self) -> *mut c_void {
19161        self.next
19162    }
19163}
19164
19165unsafe impl InputChainStruct for VideoEncodeH264RateControlInfoKHR {
19166    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR;
19167
19168    #[inline]
19169    fn s_type(&self) -> StructureType {
19170        self.s_type
19171    }
19172
19173    #[inline]
19174    fn next(&self) -> *const c_void {
19175        self.next
19176    }
19177}
19178
19179unsafe impl InputChainStruct for VideoEncodeH264RateControlLayerInfoKHR {
19180    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR;
19181
19182    #[inline]
19183    fn s_type(&self) -> StructureType {
19184        self.s_type
19185    }
19186
19187    #[inline]
19188    fn next(&self) -> *const c_void {
19189        self.next
19190    }
19191}
19192
19193unsafe impl InputChainStruct for VideoEncodeH264SessionCreateInfoKHR {
19194    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR;
19195
19196    #[inline]
19197    fn s_type(&self) -> StructureType {
19198        self.s_type
19199    }
19200
19201    #[inline]
19202    fn next(&self) -> *const c_void {
19203        self.next
19204    }
19205}
19206
19207unsafe impl InputChainStruct for VideoEncodeH264SessionParametersAddInfoKHR {
19208    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR;
19209
19210    #[inline]
19211    fn s_type(&self) -> StructureType {
19212        self.s_type
19213    }
19214
19215    #[inline]
19216    fn next(&self) -> *const c_void {
19217        self.next
19218    }
19219}
19220
19221unsafe impl InputChainStruct for VideoEncodeH264SessionParametersCreateInfoKHR {
19222    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR;
19223
19224    #[inline]
19225    fn s_type(&self) -> StructureType {
19226        self.s_type
19227    }
19228
19229    #[inline]
19230    fn next(&self) -> *const c_void {
19231        self.next
19232    }
19233}
19234
19235unsafe impl InputChainStruct for VideoEncodeH264SessionParametersFeedbackInfoKHR {
19236    const TYPE: StructureType =
19237        StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19238
19239    #[inline]
19240    fn s_type(&self) -> StructureType {
19241        self.s_type
19242    }
19243
19244    #[inline]
19245    fn next(&self) -> *const c_void {
19246        self.next
19247    }
19248}
19249
19250unsafe impl OutputChainStruct for VideoEncodeH264SessionParametersFeedbackInfoKHR {
19251    #[inline]
19252    fn next_mut(&self) -> *mut c_void {
19253        self.next
19254    }
19255}
19256
19257unsafe impl InputChainStruct for VideoEncodeH264SessionParametersGetInfoKHR {
19258    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR;
19259
19260    #[inline]
19261    fn s_type(&self) -> StructureType {
19262        self.s_type
19263    }
19264
19265    #[inline]
19266    fn next(&self) -> *const c_void {
19267        self.next
19268    }
19269}
19270
19271unsafe impl InputChainStruct for VideoEncodeH265CapabilitiesKHR {
19272    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_CAPABILITIES_KHR;
19273
19274    #[inline]
19275    fn s_type(&self) -> StructureType {
19276        self.s_type
19277    }
19278
19279    #[inline]
19280    fn next(&self) -> *const c_void {
19281        self.next
19282    }
19283}
19284
19285unsafe impl OutputChainStruct for VideoEncodeH265CapabilitiesKHR {
19286    #[inline]
19287    fn next_mut(&self) -> *mut c_void {
19288        self.next
19289    }
19290}
19291
19292unsafe impl InputChainStruct for VideoEncodeH265DpbSlotInfoKHR {
19293    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR;
19294
19295    #[inline]
19296    fn s_type(&self) -> StructureType {
19297        self.s_type
19298    }
19299
19300    #[inline]
19301    fn next(&self) -> *const c_void {
19302        self.next
19303    }
19304}
19305
19306unsafe impl InputChainStruct for VideoEncodeH265GopRemainingFrameInfoKHR {
19307    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR;
19308
19309    #[inline]
19310    fn s_type(&self) -> StructureType {
19311        self.s_type
19312    }
19313
19314    #[inline]
19315    fn next(&self) -> *const c_void {
19316        self.next
19317    }
19318}
19319
19320unsafe impl InputChainStruct for VideoEncodeH265NaluSliceSegmentInfoKHR {
19321    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR;
19322
19323    #[inline]
19324    fn s_type(&self) -> StructureType {
19325        self.s_type
19326    }
19327
19328    #[inline]
19329    fn next(&self) -> *const c_void {
19330        self.next
19331    }
19332}
19333
19334unsafe impl InputChainStruct for VideoEncodeH265PictureInfoKHR {
19335    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PICTURE_INFO_KHR;
19336
19337    #[inline]
19338    fn s_type(&self) -> StructureType {
19339        self.s_type
19340    }
19341
19342    #[inline]
19343    fn next(&self) -> *const c_void {
19344        self.next
19345    }
19346}
19347
19348unsafe impl InputChainStruct for VideoEncodeH265ProfileInfoKHR {
19349    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_PROFILE_INFO_KHR;
19350
19351    #[inline]
19352    fn s_type(&self) -> StructureType {
19353        self.s_type
19354    }
19355
19356    #[inline]
19357    fn next(&self) -> *const c_void {
19358        self.next
19359    }
19360}
19361
19362unsafe impl InputChainStruct for VideoEncodeH265QualityLevelPropertiesKHR {
19363    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR;
19364
19365    #[inline]
19366    fn s_type(&self) -> StructureType {
19367        self.s_type
19368    }
19369
19370    #[inline]
19371    fn next(&self) -> *const c_void {
19372        self.next
19373    }
19374}
19375
19376unsafe impl OutputChainStruct for VideoEncodeH265QualityLevelPropertiesKHR {
19377    #[inline]
19378    fn next_mut(&self) -> *mut c_void {
19379        self.next
19380    }
19381}
19382
19383unsafe impl InputChainStruct for VideoEncodeH265QuantizationMapCapabilitiesKHR {
19384    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR;
19385
19386    #[inline]
19387    fn s_type(&self) -> StructureType {
19388        self.s_type
19389    }
19390
19391    #[inline]
19392    fn next(&self) -> *const c_void {
19393        self.next
19394    }
19395}
19396
19397unsafe impl OutputChainStruct for VideoEncodeH265QuantizationMapCapabilitiesKHR {
19398    #[inline]
19399    fn next_mut(&self) -> *mut c_void {
19400        self.next
19401    }
19402}
19403
19404unsafe impl InputChainStruct for VideoEncodeH265RateControlInfoKHR {
19405    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR;
19406
19407    #[inline]
19408    fn s_type(&self) -> StructureType {
19409        self.s_type
19410    }
19411
19412    #[inline]
19413    fn next(&self) -> *const c_void {
19414        self.next
19415    }
19416}
19417
19418unsafe impl InputChainStruct for VideoEncodeH265RateControlLayerInfoKHR {
19419    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR;
19420
19421    #[inline]
19422    fn s_type(&self) -> StructureType {
19423        self.s_type
19424    }
19425
19426    #[inline]
19427    fn next(&self) -> *const c_void {
19428        self.next
19429    }
19430}
19431
19432unsafe impl InputChainStruct for VideoEncodeH265SessionCreateInfoKHR {
19433    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR;
19434
19435    #[inline]
19436    fn s_type(&self) -> StructureType {
19437        self.s_type
19438    }
19439
19440    #[inline]
19441    fn next(&self) -> *const c_void {
19442        self.next
19443    }
19444}
19445
19446unsafe impl InputChainStruct for VideoEncodeH265SessionParametersAddInfoKHR {
19447    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR;
19448
19449    #[inline]
19450    fn s_type(&self) -> StructureType {
19451        self.s_type
19452    }
19453
19454    #[inline]
19455    fn next(&self) -> *const c_void {
19456        self.next
19457    }
19458}
19459
19460unsafe impl InputChainStruct for VideoEncodeH265SessionParametersCreateInfoKHR {
19461    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR;
19462
19463    #[inline]
19464    fn s_type(&self) -> StructureType {
19465        self.s_type
19466    }
19467
19468    #[inline]
19469    fn next(&self) -> *const c_void {
19470        self.next
19471    }
19472}
19473
19474unsafe impl InputChainStruct for VideoEncodeH265SessionParametersFeedbackInfoKHR {
19475    const TYPE: StructureType =
19476        StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19477
19478    #[inline]
19479    fn s_type(&self) -> StructureType {
19480        self.s_type
19481    }
19482
19483    #[inline]
19484    fn next(&self) -> *const c_void {
19485        self.next
19486    }
19487}
19488
19489unsafe impl OutputChainStruct for VideoEncodeH265SessionParametersFeedbackInfoKHR {
19490    #[inline]
19491    fn next_mut(&self) -> *mut c_void {
19492        self.next
19493    }
19494}
19495
19496unsafe impl InputChainStruct for VideoEncodeH265SessionParametersGetInfoKHR {
19497    const TYPE: StructureType = StructureType::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR;
19498
19499    #[inline]
19500    fn s_type(&self) -> StructureType {
19501        self.s_type
19502    }
19503
19504    #[inline]
19505    fn next(&self) -> *const c_void {
19506        self.next
19507    }
19508}
19509
19510unsafe impl InputChainStruct for VideoEncodeInfoKHR {
19511    const TYPE: StructureType = StructureType::VIDEO_ENCODE_INFO_KHR;
19512
19513    #[inline]
19514    fn s_type(&self) -> StructureType {
19515        self.s_type
19516    }
19517
19518    #[inline]
19519    fn next(&self) -> *const c_void {
19520        self.next
19521    }
19522}
19523
19524unsafe impl InputChainStruct for VideoEncodeIntraRefreshCapabilitiesKHR {
19525    const TYPE: StructureType = StructureType::VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR;
19526
19527    #[inline]
19528    fn s_type(&self) -> StructureType {
19529        self.s_type
19530    }
19531
19532    #[inline]
19533    fn next(&self) -> *const c_void {
19534        self.next
19535    }
19536}
19537
19538unsafe impl OutputChainStruct for VideoEncodeIntraRefreshCapabilitiesKHR {
19539    #[inline]
19540    fn next_mut(&self) -> *mut c_void {
19541        self.next
19542    }
19543}
19544
19545unsafe impl InputChainStruct for VideoEncodeIntraRefreshInfoKHR {
19546    const TYPE: StructureType = StructureType::VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR;
19547
19548    #[inline]
19549    fn s_type(&self) -> StructureType {
19550        self.s_type
19551    }
19552
19553    #[inline]
19554    fn next(&self) -> *const c_void {
19555        self.next
19556    }
19557}
19558
19559unsafe impl InputChainStruct for VideoEncodeProfileRgbConversionInfoVALVE {
19560    const TYPE: StructureType = StructureType::VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE;
19561
19562    #[inline]
19563    fn s_type(&self) -> StructureType {
19564        self.s_type
19565    }
19566
19567    #[inline]
19568    fn next(&self) -> *const c_void {
19569        self.next
19570    }
19571}
19572
19573unsafe impl InputChainStruct for VideoEncodeQualityLevelInfoKHR {
19574    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR;
19575
19576    #[inline]
19577    fn s_type(&self) -> StructureType {
19578        self.s_type
19579    }
19580
19581    #[inline]
19582    fn next(&self) -> *const c_void {
19583        self.next
19584    }
19585}
19586
19587unsafe impl InputChainStruct for VideoEncodeQualityLevelPropertiesKHR {
19588    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR;
19589
19590    #[inline]
19591    fn s_type(&self) -> StructureType {
19592        self.s_type
19593    }
19594
19595    #[inline]
19596    fn next(&self) -> *const c_void {
19597        self.next
19598    }
19599}
19600
19601unsafe impl OutputChainStruct for VideoEncodeQualityLevelPropertiesKHR {
19602    #[inline]
19603    fn next_mut(&self) -> *mut c_void {
19604        self.next
19605    }
19606}
19607
19608unsafe impl InputChainStruct for VideoEncodeQuantizationMapCapabilitiesKHR {
19609    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR;
19610
19611    #[inline]
19612    fn s_type(&self) -> StructureType {
19613        self.s_type
19614    }
19615
19616    #[inline]
19617    fn next(&self) -> *const c_void {
19618        self.next
19619    }
19620}
19621
19622unsafe impl OutputChainStruct for VideoEncodeQuantizationMapCapabilitiesKHR {
19623    #[inline]
19624    fn next_mut(&self) -> *mut c_void {
19625        self.next
19626    }
19627}
19628
19629unsafe impl InputChainStruct for VideoEncodeQuantizationMapInfoKHR {
19630    const TYPE: StructureType = StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR;
19631
19632    #[inline]
19633    fn s_type(&self) -> StructureType {
19634        self.s_type
19635    }
19636
19637    #[inline]
19638    fn next(&self) -> *const c_void {
19639        self.next
19640    }
19641}
19642
19643unsafe impl InputChainStruct for VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
19644    const TYPE: StructureType =
19645        StructureType::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR;
19646
19647    #[inline]
19648    fn s_type(&self) -> StructureType {
19649        self.s_type
19650    }
19651
19652    #[inline]
19653    fn next(&self) -> *const c_void {
19654        self.next
19655    }
19656}
19657
19658unsafe impl InputChainStruct for VideoEncodeRateControlInfoKHR {
19659    const TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
19660
19661    #[inline]
19662    fn s_type(&self) -> StructureType {
19663        self.s_type
19664    }
19665
19666    #[inline]
19667    fn next(&self) -> *const c_void {
19668        self.next
19669    }
19670}
19671
19672unsafe impl InputChainStruct for VideoEncodeRateControlLayerInfoKHR {
19673    const TYPE: StructureType = StructureType::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR;
19674
19675    #[inline]
19676    fn s_type(&self) -> StructureType {
19677        self.s_type
19678    }
19679
19680    #[inline]
19681    fn next(&self) -> *const c_void {
19682        self.next
19683    }
19684}
19685
19686unsafe impl InputChainStruct for VideoEncodeRgbConversionCapabilitiesVALVE {
19687    const TYPE: StructureType = StructureType::VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE;
19688
19689    #[inline]
19690    fn s_type(&self) -> StructureType {
19691        self.s_type
19692    }
19693
19694    #[inline]
19695    fn next(&self) -> *const c_void {
19696        self.next
19697    }
19698}
19699
19700unsafe impl OutputChainStruct for VideoEncodeRgbConversionCapabilitiesVALVE {
19701    #[inline]
19702    fn next_mut(&self) -> *mut c_void {
19703        self.next
19704    }
19705}
19706
19707unsafe impl InputChainStruct for VideoEncodeSessionIntraRefreshCreateInfoKHR {
19708    const TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR;
19709
19710    #[inline]
19711    fn s_type(&self) -> StructureType {
19712        self.s_type
19713    }
19714
19715    #[inline]
19716    fn next(&self) -> *const c_void {
19717        self.next
19718    }
19719}
19720
19721unsafe impl InputChainStruct for VideoEncodeSessionParametersFeedbackInfoKHR {
19722    const TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR;
19723
19724    #[inline]
19725    fn s_type(&self) -> StructureType {
19726        self.s_type
19727    }
19728
19729    #[inline]
19730    fn next(&self) -> *const c_void {
19731        self.next
19732    }
19733}
19734
19735unsafe impl OutputChainStruct for VideoEncodeSessionParametersFeedbackInfoKHR {
19736    #[inline]
19737    fn next_mut(&self) -> *mut c_void {
19738        self.next
19739    }
19740}
19741
19742unsafe impl InputChainStruct for VideoEncodeSessionParametersGetInfoKHR {
19743    const TYPE: StructureType = StructureType::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR;
19744
19745    #[inline]
19746    fn s_type(&self) -> StructureType {
19747        self.s_type
19748    }
19749
19750    #[inline]
19751    fn next(&self) -> *const c_void {
19752        self.next
19753    }
19754}
19755
19756unsafe impl InputChainStruct for VideoEncodeSessionRgbConversionCreateInfoVALVE {
19757    const TYPE: StructureType =
19758        StructureType::VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE;
19759
19760    #[inline]
19761    fn s_type(&self) -> StructureType {
19762        self.s_type
19763    }
19764
19765    #[inline]
19766    fn next(&self) -> *const c_void {
19767        self.next
19768    }
19769}
19770
19771unsafe impl InputChainStruct for VideoEncodeUsageInfoKHR {
19772    const TYPE: StructureType = StructureType::VIDEO_ENCODE_USAGE_INFO_KHR;
19773
19774    #[inline]
19775    fn s_type(&self) -> StructureType {
19776        self.s_type
19777    }
19778
19779    #[inline]
19780    fn next(&self) -> *const c_void {
19781        self.next
19782    }
19783}
19784
19785unsafe impl InputChainStruct for VideoEndCodingInfoKHR {
19786    const TYPE: StructureType = StructureType::VIDEO_END_CODING_INFO_KHR;
19787
19788    #[inline]
19789    fn s_type(&self) -> StructureType {
19790        self.s_type
19791    }
19792
19793    #[inline]
19794    fn next(&self) -> *const c_void {
19795        self.next
19796    }
19797}
19798
19799unsafe impl InputChainStruct for VideoFormatAV1QuantizationMapPropertiesKHR {
19800    const TYPE: StructureType = StructureType::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR;
19801
19802    #[inline]
19803    fn s_type(&self) -> StructureType {
19804        self.s_type
19805    }
19806
19807    #[inline]
19808    fn next(&self) -> *const c_void {
19809        self.next
19810    }
19811}
19812
19813unsafe impl OutputChainStruct for VideoFormatAV1QuantizationMapPropertiesKHR {
19814    #[inline]
19815    fn next_mut(&self) -> *mut c_void {
19816        self.next
19817    }
19818}
19819
19820unsafe impl InputChainStruct for VideoFormatH265QuantizationMapPropertiesKHR {
19821    const TYPE: StructureType = StructureType::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR;
19822
19823    #[inline]
19824    fn s_type(&self) -> StructureType {
19825        self.s_type
19826    }
19827
19828    #[inline]
19829    fn next(&self) -> *const c_void {
19830        self.next
19831    }
19832}
19833
19834unsafe impl OutputChainStruct for VideoFormatH265QuantizationMapPropertiesKHR {
19835    #[inline]
19836    fn next_mut(&self) -> *mut c_void {
19837        self.next
19838    }
19839}
19840
19841unsafe impl InputChainStruct for VideoFormatPropertiesKHR {
19842    const TYPE: StructureType = StructureType::VIDEO_FORMAT_PROPERTIES_KHR;
19843
19844    #[inline]
19845    fn s_type(&self) -> StructureType {
19846        self.s_type
19847    }
19848
19849    #[inline]
19850    fn next(&self) -> *const c_void {
19851        self.next
19852    }
19853}
19854
19855unsafe impl OutputChainStruct for VideoFormatPropertiesKHR {
19856    #[inline]
19857    fn next_mut(&self) -> *mut c_void {
19858        self.next
19859    }
19860}
19861
19862unsafe impl InputChainStruct for VideoFormatQuantizationMapPropertiesKHR {
19863    const TYPE: StructureType = StructureType::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR;
19864
19865    #[inline]
19866    fn s_type(&self) -> StructureType {
19867        self.s_type
19868    }
19869
19870    #[inline]
19871    fn next(&self) -> *const c_void {
19872        self.next
19873    }
19874}
19875
19876unsafe impl OutputChainStruct for VideoFormatQuantizationMapPropertiesKHR {
19877    #[inline]
19878    fn next_mut(&self) -> *mut c_void {
19879        self.next
19880    }
19881}
19882
19883unsafe impl InputChainStruct for VideoInlineQueryInfoKHR {
19884    const TYPE: StructureType = StructureType::VIDEO_INLINE_QUERY_INFO_KHR;
19885
19886    #[inline]
19887    fn s_type(&self) -> StructureType {
19888        self.s_type
19889    }
19890
19891    #[inline]
19892    fn next(&self) -> *const c_void {
19893        self.next
19894    }
19895}
19896
19897unsafe impl InputChainStruct for VideoPictureResourceInfoKHR {
19898    const TYPE: StructureType = StructureType::VIDEO_PICTURE_RESOURCE_INFO_KHR;
19899
19900    #[inline]
19901    fn s_type(&self) -> StructureType {
19902        self.s_type
19903    }
19904
19905    #[inline]
19906    fn next(&self) -> *const c_void {
19907        self.next
19908    }
19909}
19910
19911unsafe impl InputChainStruct for VideoProfileInfoKHR {
19912    const TYPE: StructureType = StructureType::VIDEO_PROFILE_INFO_KHR;
19913
19914    #[inline]
19915    fn s_type(&self) -> StructureType {
19916        self.s_type
19917    }
19918
19919    #[inline]
19920    fn next(&self) -> *const c_void {
19921        self.next
19922    }
19923}
19924
19925unsafe impl InputChainStruct for VideoProfileListInfoKHR {
19926    const TYPE: StructureType = StructureType::VIDEO_PROFILE_LIST_INFO_KHR;
19927
19928    #[inline]
19929    fn s_type(&self) -> StructureType {
19930        self.s_type
19931    }
19932
19933    #[inline]
19934    fn next(&self) -> *const c_void {
19935        self.next
19936    }
19937}
19938
19939unsafe impl InputChainStruct for VideoReferenceIntraRefreshInfoKHR {
19940    const TYPE: StructureType = StructureType::VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR;
19941
19942    #[inline]
19943    fn s_type(&self) -> StructureType {
19944        self.s_type
19945    }
19946
19947    #[inline]
19948    fn next(&self) -> *const c_void {
19949        self.next
19950    }
19951}
19952
19953unsafe impl InputChainStruct for VideoReferenceSlotInfoKHR {
19954    const TYPE: StructureType = StructureType::VIDEO_REFERENCE_SLOT_INFO_KHR;
19955
19956    #[inline]
19957    fn s_type(&self) -> StructureType {
19958        self.s_type
19959    }
19960
19961    #[inline]
19962    fn next(&self) -> *const c_void {
19963        self.next
19964    }
19965}
19966
19967unsafe impl InputChainStruct for VideoSessionCreateInfoKHR {
19968    const TYPE: StructureType = StructureType::VIDEO_SESSION_CREATE_INFO_KHR;
19969
19970    #[inline]
19971    fn s_type(&self) -> StructureType {
19972        self.s_type
19973    }
19974
19975    #[inline]
19976    fn next(&self) -> *const c_void {
19977        self.next
19978    }
19979}
19980
19981unsafe impl InputChainStruct for VideoSessionMemoryRequirementsKHR {
19982    const TYPE: StructureType = StructureType::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR;
19983
19984    #[inline]
19985    fn s_type(&self) -> StructureType {
19986        self.s_type
19987    }
19988
19989    #[inline]
19990    fn next(&self) -> *const c_void {
19991        self.next
19992    }
19993}
19994
19995unsafe impl OutputChainStruct for VideoSessionMemoryRequirementsKHR {
19996    #[inline]
19997    fn next_mut(&self) -> *mut c_void {
19998        self.next
19999    }
20000}
20001
20002unsafe impl InputChainStruct for VideoSessionParametersCreateInfoKHR {
20003    const TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
20004
20005    #[inline]
20006    fn s_type(&self) -> StructureType {
20007        self.s_type
20008    }
20009
20010    #[inline]
20011    fn next(&self) -> *const c_void {
20012        self.next
20013    }
20014}
20015
20016unsafe impl InputChainStruct for VideoSessionParametersUpdateInfoKHR {
20017    const TYPE: StructureType = StructureType::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
20018
20019    #[inline]
20020    fn s_type(&self) -> StructureType {
20021        self.s_type
20022    }
20023
20024    #[inline]
20025    fn next(&self) -> *const c_void {
20026        self.next
20027    }
20028}
20029
20030unsafe impl InputChainStruct for WaylandSurfaceCreateInfoKHR {
20031    const TYPE: StructureType = StructureType::WAYLAND_SURFACE_CREATE_INFO_KHR;
20032
20033    #[inline]
20034    fn s_type(&self) -> StructureType {
20035        self.s_type
20036    }
20037
20038    #[inline]
20039    fn next(&self) -> *const c_void {
20040        self.next
20041    }
20042}
20043
20044unsafe impl InputChainStruct for Win32KeyedMutexAcquireReleaseInfoKHR {
20045    const TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
20046
20047    #[inline]
20048    fn s_type(&self) -> StructureType {
20049        self.s_type
20050    }
20051
20052    #[inline]
20053    fn next(&self) -> *const c_void {
20054        self.next
20055    }
20056}
20057
20058unsafe impl InputChainStruct for Win32KeyedMutexAcquireReleaseInfoNV {
20059    const TYPE: StructureType = StructureType::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
20060
20061    #[inline]
20062    fn s_type(&self) -> StructureType {
20063        self.s_type
20064    }
20065
20066    #[inline]
20067    fn next(&self) -> *const c_void {
20068        self.next
20069    }
20070}
20071
20072unsafe impl InputChainStruct for Win32SurfaceCreateInfoKHR {
20073    const TYPE: StructureType = StructureType::WIN32_SURFACE_CREATE_INFO_KHR;
20074
20075    #[inline]
20076    fn s_type(&self) -> StructureType {
20077        self.s_type
20078    }
20079
20080    #[inline]
20081    fn next(&self) -> *const c_void {
20082        self.next
20083    }
20084}
20085
20086unsafe impl InputChainStruct for WriteDescriptorSet {
20087    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET;
20088
20089    #[inline]
20090    fn s_type(&self) -> StructureType {
20091        self.s_type
20092    }
20093
20094    #[inline]
20095    fn next(&self) -> *const c_void {
20096        self.next
20097    }
20098}
20099
20100unsafe impl InputChainStruct for WriteDescriptorSetAccelerationStructureKHR {
20101    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
20102
20103    #[inline]
20104    fn s_type(&self) -> StructureType {
20105        self.s_type
20106    }
20107
20108    #[inline]
20109    fn next(&self) -> *const c_void {
20110        self.next
20111    }
20112}
20113
20114unsafe impl InputChainStruct for WriteDescriptorSetAccelerationStructureNV {
20115    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
20116
20117    #[inline]
20118    fn s_type(&self) -> StructureType {
20119        self.s_type
20120    }
20121
20122    #[inline]
20123    fn next(&self) -> *const c_void {
20124        self.next
20125    }
20126}
20127
20128unsafe impl InputChainStruct for WriteDescriptorSetInlineUniformBlock {
20129    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
20130
20131    #[inline]
20132    fn s_type(&self) -> StructureType {
20133        self.s_type
20134    }
20135
20136    #[inline]
20137    fn next(&self) -> *const c_void {
20138        self.next
20139    }
20140}
20141
20142unsafe impl InputChainStruct for WriteDescriptorSetPartitionedAccelerationStructureNV {
20143    const TYPE: StructureType =
20144        StructureType::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV;
20145
20146    #[inline]
20147    fn s_type(&self) -> StructureType {
20148        self.s_type
20149    }
20150
20151    #[inline]
20152    fn next(&self) -> *const c_void {
20153        self.next
20154    }
20155}
20156
20157unsafe impl OutputChainStruct for WriteDescriptorSetPartitionedAccelerationStructureNV {
20158    #[inline]
20159    fn next_mut(&self) -> *mut c_void {
20160        self.next
20161    }
20162}
20163
20164unsafe impl InputChainStruct for WriteDescriptorSetTensorARM {
20165    const TYPE: StructureType = StructureType::WRITE_DESCRIPTOR_SET_TENSOR_ARM;
20166
20167    #[inline]
20168    fn s_type(&self) -> StructureType {
20169        self.s_type
20170    }
20171
20172    #[inline]
20173    fn next(&self) -> *const c_void {
20174        self.next
20175    }
20176}
20177
20178unsafe impl InputChainStruct for WriteIndirectExecutionSetPipelineEXT {
20179    const TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT;
20180
20181    #[inline]
20182    fn s_type(&self) -> StructureType {
20183        self.s_type
20184    }
20185
20186    #[inline]
20187    fn next(&self) -> *const c_void {
20188        self.next
20189    }
20190}
20191
20192unsafe impl InputChainStruct for WriteIndirectExecutionSetShaderEXT {
20193    const TYPE: StructureType = StructureType::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT;
20194
20195    #[inline]
20196    fn s_type(&self) -> StructureType {
20197        self.s_type
20198    }
20199
20200    #[inline]
20201    fn next(&self) -> *const c_void {
20202        self.next
20203    }
20204}
20205
20206unsafe impl InputChainStruct for XcbSurfaceCreateInfoKHR {
20207    const TYPE: StructureType = StructureType::XCB_SURFACE_CREATE_INFO_KHR;
20208
20209    #[inline]
20210    fn s_type(&self) -> StructureType {
20211        self.s_type
20212    }
20213
20214    #[inline]
20215    fn next(&self) -> *const c_void {
20216        self.next
20217    }
20218}
20219
20220unsafe impl InputChainStruct for XlibSurfaceCreateInfoKHR {
20221    const TYPE: StructureType = StructureType::XLIB_SURFACE_CREATE_INFO_KHR;
20222
20223    #[inline]
20224    fn s_type(&self) -> StructureType {
20225        self.s_type
20226    }
20227
20228    #[inline]
20229    fn next(&self) -> *const c_void {
20230        self.next
20231    }
20232}