use ash::vk; pub struct VkSwapchain { swapchain_loader: ash::khr::swapchain::Device, swapchain: Option, } impl VkSwapchain { pub fn new( swapchain_loader: ash::khr::swapchain::Device, swapchain: Option, ) -> Self { Self { swapchain_loader, swapchain } } } impl Drop for VkSwapchain { fn drop(&mut self) { if let Some(swapchain) = self.swapchain { unsafe { self.swapchain_loader.destroy_swapchain(swapchain, None); } } } }