use indexmap::IndexMap;
use samplic;
use Uuid;

pub type UuidVector = Vec<Uuid>;

#[derive(Debug)]
pub struct DeviceDescription {
    pub samplic: samplic::DeviceDescription,
}

#[derive(Debug)]
pub struct Device {
    pub description: DeviceDescription,
    pub profilelist: UuidVector,
    pub profiles: ProfileDescriptions,
    pub samplings: SamplingDescriptions,
}

#[derive(Debug)]
pub struct ProfileDescription {
    pub samplic: samplic::ProfileDescription,
}

pub type ProfileDescriptions = IndexMap<String, ProfileDescription>;

#[derive(Debug)]
pub struct SamplingDescription {
    pub samplic: samplic::SamplingDescription,
}

pub type SamplingDescriptions = IndexMap<String, SamplingDescription>;
