1use ash::{prelude::VkResult, vk};
2
3use crate::GuardedResource;
4
5pub trait EntryExt {
7 #[allow(clippy::missing_safety_doc)]
9 unsafe fn create_guarded_instance<'a>(
10 &self,
11 create_info: &vk::InstanceCreateInfo,
12 allocation_callbacks: Option<&'a vk::AllocationCallbacks>,
13 ) -> VkResult<GuardedResource<'a, ash::Instance, &'static ()>>;
14}
15
16impl EntryExt for ash::Entry {
17 unsafe fn create_guarded_instance<'a>(
18 &self,
19 create_info: &vk::InstanceCreateInfo,
20 allocation_callbacks: Option<&'a vk::AllocationCallbacks>,
21 ) -> VkResult<GuardedResource<'a, ash::Instance, &'static ()>> {
22 let instance = self.create_instance(create_info, allocation_callbacks)?;
23 Ok(GuardedResource::new(instance, &(), allocation_callbacks))
24 }
25}