favilla 0.3.0

A library with utilities for Vulkan programming.
Documentation
use crate::cleanup_queue::CleanupQueue;
use ash::vk;

pub trait Cleanup {
    fn queue(self, queue: &mut CleanupQueue);
}

impl Cleanup for vk::Buffer {
    fn queue(self, queue: &mut CleanupQueue) {
        queue.queue_buffer(self);
    }
}

impl Cleanup for vk::DeviceMemory {
    fn queue(self, queue: &mut CleanupQueue) {
        queue.queue_memory(self);
    }
}

impl<T> Cleanup for crate::buffer::VulkanBuffer<T> {
    fn queue(self, queue: &mut CleanupQueue) {
        self.buffer.queue(queue);
    }
}

impl<T: Copy> Cleanup for crate::buffer::StagingBuffer<T> {
    fn queue(self, queue: &mut CleanupQueue) {
        self.buffer.queue(queue);
    }
}

impl<T> Cleanup for crate::buffer::VulkanBufferWithDedicatedAllocation<T> {
    fn queue(self, queue: &mut CleanupQueue) {
        self.buffer.queue(queue);
        self.memory.queue(queue);
    }
}

impl<T: Copy> Cleanup for crate::buffer::StagingBufferWithDedicatedAllocation<T> {
    fn queue(self, queue: &mut CleanupQueue) {
        self.buffer.queue(queue);
        self.memory.queue(queue);
    }
}