1 #![allow( 2 clippy::too_many_arguments, 3 clippy::cognitive_complexity, 4 clippy::wrong_self_convention 5 )] 6 #[macro_use] 7 mod macros; 8 pub use macros::*; 9 mod aliases; 10 pub use aliases::*; 11 mod bitflags; 12 pub use bitflags::*; 13 mod const_debugs; 14 pub(crate) use const_debugs::*; 15 mod constants; 16 pub use constants::*; 17 mod definitions; 18 pub use definitions::*; 19 mod enums; 20 pub use enums::*; 21 mod extensions; 22 pub use extensions::*; 23 mod feature_extensions; 24 pub use feature_extensions::*; 25 mod features; 26 pub use features::*; 27 #[doc = r" Native bindings from Vulkan headers, generated by bindgen"] 28 #[allow(nonstandard_style)] 29 #[allow(deref_nullptr)] 30 pub mod native; 31 mod platform_types; 32 pub use platform_types::*; 33 #[doc = r" Iterates through the pointer chain. Includes the item that is passed into the function."] 34 #[doc = r" Stops at the last `BaseOutStructure` that has a null `p_next` field."] ptr_chain_iter<T>(ptr: &mut T) -> impl Iterator<Item = *mut BaseOutStructure>35pub(crate) unsafe fn ptr_chain_iter<T>(ptr: &mut T) -> impl Iterator<Item = *mut BaseOutStructure> { 36 let ptr: *mut BaseOutStructure = ptr as *mut T as _; 37 (0..).scan(ptr, |p_ptr, _| { 38 if p_ptr.is_null() { 39 return None; 40 } 41 let n_ptr = (**p_ptr).p_next as *mut BaseOutStructure; 42 let old = *p_ptr; 43 *p_ptr = n_ptr; 44 Some(old) 45 }) 46 } 47 pub trait Handle { 48 const TYPE: ObjectType; as_raw(self) -> u6449 fn as_raw(self) -> u64; from_raw(_: u64) -> Self50 fn from_raw(_: u64) -> Self; 51 } 52