jay-compositor 1.15.0

The Jay compositor
use crate::gfx_apis::vulkan::VulkanError;
use crate::vulkan_core::VulkanCoreInstance;
use log::Level;
use std::ops::Deref;
use std::ops::DerefMut;
use std::rc::Rc;

pub struct VulkanInstance {
    instance: VulkanCoreInstance,
}

impl Deref for VulkanInstance {
    type Target = VulkanCoreInstance;

    fn deref(&self) -> &Self::Target {
        &self.instance
    }
}

impl DerefMut for VulkanInstance {
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.instance
    }
}

impl VulkanInstance {
    pub fn new(log_level: Level) -> Result<Rc<Self>, VulkanError> {
        Ok(Rc::new(Self {
            instance: VulkanCoreInstance::new(log_level)?,
        }))
    }
}