use device::{Physical, FamilyQueue};
pub trait Instance
where Self::PhysicalDevice : Physical, Self::FamilyQueue : FamilyQueue
{
type PhysicalDevice;
type FamilyQueue;
type Error;
fn physical_devices(&self) -> Result<Vec<Self::PhysicalDevice>, Self::Error>;
fn family_queues(&self, physical: Self::PhysicalDevice) -> Result<Vec<Self::FamilyQueue>, Self::Error>;
}