use arrayvec::ArrayString;
#[repr(C)]
#[derive(Clone, Debug, PartialEq, PartialOrd)]
pub struct VendorProductId {
pub manufacturer_name: Manufacturer,
pub product_code: u16,
pub serial_number: Option<u32>,
pub date: Date,
}
#[repr(C)]
#[derive(Clone, Debug, PartialEq, PartialOrd)]
pub enum Manufacturer {
Name(ArrayString<{ pnpid::MAX_LEN }>),
Id(ArrayString<3>),
}
#[repr(C)]
#[derive(Clone, Debug, PartialEq, PartialOrd)]
pub enum Date {
Manufacture {
week: Option<u8>,
year: u16,
},
ModelYear(u16),
}