pub struct EDID {Show 24 fields
pub raw: Vec<u8>,
pub manufacturer: String,
pub description: Option<String>,
pub product_code: u16,
pub serial_number: u32,
pub model: String,
pub serial: Option<String>,
pub week: u8,
pub year: u16,
pub edid_version: u8,
pub edid_revision: u8,
pub video_input: VideoInputParams,
pub hscreen_size: u8,
pub vscreen_size: u8,
pub diagonal_inches: Option<f32>,
pub aspect_ratio: Option<String>,
pub resolution_width: Option<u32>,
pub resolution_height: Option<u32>,
pub pixel_clock_mhz: Option<f32>,
pub display_gamma: u8,
pub detailed_timings: Vec<DetailedTiming>,
pub range_limits: Option<RangeLimits>,
pub extension_blocks: u8,
pub checksum: u8,
}Expand description
Information from edid file (EDID v1.4 only supported yet)
Read Wikipedia for details.
Fields§
§raw: Vec<u8>Raw EDID bytes (at least 128 bytes)
manufacturer: StringManufacturer ID
This is a legacy Plug and Play ID assigned by the UEFI forum, which is a big-endian 16-bit value made up three 5-bit letters: 00001 = ‘A’, 00010 = ‘B’, etc.
Byte offset: 8-9
description: Option<String>General alphanumeric description of the display. Extracted from the Monitor Descriptor
block with type 0xFE
product_code: u16Manufacturer product code. 16-bit hex-nubmer, little-endian. For example, “LGC” + “C0CF”
Byte offset: 10-11
serial_number: u32Serial number. 32 bits, little-endian
Note: This may be zero in the serial number is provided as a text string instead.
Byte offset: 12-15
model: StringDisplay product name/model
Extracted from the Monitor Descriptor block with type 0xFC
serial: Option<String>Text serial number
Extracted from the Monitor Descriptor block with type 0xFF
week: u8Week of manufacture; or FF model year flag
WARN: week numbering isn’t consistent between manufacturers.
Byte offset: 16
year: u16Year of manufacture, or year of model, if model year flag is set
Byte offset: 17
edid_version: u8EDID version, usually 01 for 1.3 and 1.4
Byte offset: 18
edid_revision: u8EDID revision, usually 03 for 1.3 or 04 for 1.4
Byte offset: 19
video_input: VideoInputParamsVideo input parameters (signal type, voltage levels, etc.)
Byte offset: 20
hscreen_size: u8Horizontal screen size, in centimetres (range 1-255). A value of 0 indicates the size
is not specified
Byte offset: 21
vscreen_size: u8Vertical screen size, in centimetres. A value of 0 indicates the size is not specified
Byte offset: 22
diagonal_inches: Option<f32>Calculated screen diagonal in inches, derived from hscreen_size and vscreen_size
None if either dimension is 0.
aspect_ratio: Option<String>Calculated aspect ratio of the preferred timing mode (e.g. “16:10”, “4:3”, etc. or “1.60:1”)
resolution_width: Option<u32>Active horizontal resolution in pixels. Derived from the first Detailed Timing Descriptor (preferred timing)
resolution_height: Option<u32>Active vertical resolution in pixels. Derived from the first DTD (preferred timing)
pixel_clock_mhz: Option<f32>Pixel clock frequency in MHz. Derived from the first DTD (preferred timing)
display_gamma: u8Display gamma, factory default
Formula: (value + 100) / 100
Byte offset: 23
detailed_timings: Vec<DetailedTiming>List of all parsed DTDs. The first entry is typically the “Preferred Timing” (native resolution)
range_limits: Option<RangeLimits>Supported vertical/horizontal frequency ranges and maximum pixel clock. Extracted from the
Monitor Range Limits Descriptor (type 0xFD)
extension_blocks: u8Number of 128-byte extension blocks following this base block
Byte offset: 126
checksum: u8Checksum of the base block. The sum of all 128 bytes should be 0 modulo 256
Byte offset: 127
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EDID
impl<'de> Deserialize<'de> for EDID
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for EDID
impl RefUnwindSafe for EDID
impl Send for EDID
impl Sync for EDID
impl Unpin for EDID
impl UnsafeUnpin for EDID
impl UnwindSafe for EDID
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more