use arrayvec::ArrayString;
use color_point::WhitePoint;
use cvt_3_byte_timing::TimingCodeDesc;
use crate::prelude::internal::*;
use super::std_timings::STiming;
pub mod color_point;
pub mod cvt_3_byte_timing;
pub mod display_range_limits;
pub type ByteStr13 = ArrayString<13>;
#[repr(C)]
#[derive(Clone, Debug, PartialEq, PartialOrd)]
pub enum DisplayDescriptor {
ProductSerial(ByteStr13),
DataString(ByteStr13),
DisplayRangeLimits(RangeLimitsDesc),
ProductName(ByteStr13),
ColorPointData { w1: WhitePoint, w2: WhitePoint },
StandardTimingIdentifications {
_9: Option<STiming>,
_10: Option<STiming>,
_11: Option<STiming>,
_12: Option<STiming>,
_13: Option<STiming>,
_14: Option<STiming>,
},
DcmData {
version_number: u8,
red_a3: u16,
red_a2: u16,
green_a3: u16,
green_a2: u16,
blue_a3: u16,
blue_a2: u16,
},
Cvt3ByteTimingCodes {
version_number: u8,
first: TimingCodeDesc,
second: Option<TimingCodeDesc>,
third: Option<TimingCodeDesc>,
last: Option<TimingCodeDesc>,
},
EstablishedTimingsIII {
_640x350_85hz: bool,
_640x400_85hz: bool,
_720x400_85hz: bool,
_640x480_85hz: bool,
_848x480_60hz: bool,
_800x600_85hz: bool,
_1024x768_85hz: bool,
_1152x864_75hz: bool,
_1280x768_60hz_reduced: bool,
_1280x768_60hz: bool,
_1280x768_75hz: bool,
_1280x768_85hz: bool,
_1280x960_60hz: bool,
_1280x960_85hz: bool,
_1280x1024_60hz: bool,
_1280x1024_85hz: bool,
_1360x768_60hz: bool,
_1440x900_60hz_reduced: bool,
_1440x900_60hz: bool,
_1440x900_75hz: bool,
_1440x900_85hz: bool,
_1400x1050_60hz_reduced: bool,
_1400x1050_60hz: bool,
_1400x1050_75hz: bool,
_1400x1050_85hz: bool,
_1680x1050_60hz_reduced: bool,
_1680x1050_60hz: bool,
_1680x1050_75hz: bool,
_1680x1050_85hz: bool,
_1600x1200_60hz: bool,
_1600x1200_65hz: bool,
_1600x1200_70hz: bool,
_1600x1200_75hz: bool,
_1600x1200_85hz: bool,
_1792x1344_60hz: bool,
_1792x1344_75hz: bool,
_1856x1392_60hz: bool,
_1856x1392_75hz: bool,
_1920x1200_60hz_reduced: bool,
_1920x1200_60hz: bool,
_1920x1200_75hz: bool,
_1920x1200_85hz: bool,
_1920x1440_60hz: bool,
_1920x1440_75hz: bool,
},
DummyDescriptor,
Manufacturer {
data: [u8; 18],
},
}