Skip to main content

DisplayCapabilities

Struct DisplayCapabilities 

Source
#[non_exhaustive]
pub struct DisplayCapabilities {
Show 50 fields pub manufacturer: Option<ManufacturerId>, pub manufacture_date: Option<ManufactureDate>, pub edid_version: Option<EdidVersion>, pub product_code: Option<u16>, pub serial_number: Option<u32>, pub serial_number_string: Option<MonitorString>, pub display_name: Option<MonitorString>, pub unspecified_text: [Option<MonitorString>; 4], pub white_points: [Option<WhitePoint>; 2], pub digital: bool, pub color_bit_depth: Option<ColorBitDepth>, pub display_technology: Option<DisplayTechnology>, pub display_subtype: Option<u8>, pub operating_mode: Option<OperatingMode>, pub backlight_type: Option<BacklightType>, pub data_enable_used: Option<bool>, pub data_enable_positive: Option<bool>, pub native_pixels: Option<(u16, u16)>, pub panel_aspect_ratio_100: Option<u8>, pub physical_orientation: Option<PhysicalOrientation>, pub rotation_capability: Option<RotationCapability>, pub zero_pixel_location: Option<ZeroPixelLocation>, pub scan_direction: Option<ScanDirection>, pub subpixel_layout: Option<SubpixelLayout>, pub pixel_pitch_hundredths_mm: Option<(u8, u8)>, pub pixel_response_time_ms: Option<u8>, pub power_sequencing: Option<PowerSequencing>, pub transfer_characteristic: Option<DisplayIdTransferCharacteristic>, pub display_id_interface: Option<DisplayIdInterface>, pub stereo_interface: Option<DisplayIdStereoInterface>, pub tiled_topology: Option<DisplayIdTiledTopology>, pub chromaticity: Chromaticity, pub gamma: Option<DisplayGamma>, pub display_features: Option<DisplayFeatureFlags>, pub digital_color_encoding: Option<DigitalColorEncoding>, pub analog_color_type: Option<AnalogColorType>, pub video_interface: Option<VideoInterface>, pub analog_sync_level: Option<AnalogSyncLevel>, pub screen_size: Option<ScreenSize>, pub min_v_rate: Option<u16>, pub max_v_rate: Option<u16>, pub min_h_rate_khz: Option<u16>, pub max_h_rate_khz: Option<u16>, pub max_pixel_clock_mhz: Option<u16>, pub preferred_image_size_mm: Option<(u16, u16)>, pub timing_formula: Option<TimingFormula>, pub color_management: Option<ColorManagementData>, pub supported_modes: Vec<VideoMode>, pub warnings: Vec<ParseWarning>, pub extension_data: Vec<(u8, Arc<dyn ExtensionData>)>,
}
Expand description

Consumer-facing display capability model produced by a display data parser.

All fields defined by the relevant specification are decoded and exposed here. No field is omitted because it appears obscure or unlikely to be needed — that judgement belongs to the consumer, not the library.

Fields are Option where the underlying data may be absent or undecodable. None means the value was not present or could not be reliably determined; it does not imply the field is unimportant. The library never invents or defaults data.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§manufacturer: Option<ManufacturerId>

Three-character PNP manufacturer ID (e.g. GSM for LG, SAM for Samsung).

§manufacture_date: Option<ManufactureDate>

Manufacture date or model year.

§edid_version: Option<EdidVersion>

EDID specification version and revision.

§product_code: Option<u16>

Manufacturer-assigned product code.

§serial_number: Option<u32>

Manufacturer-assigned serial number, if encoded numerically in the base block.

§serial_number_string: Option<MonitorString>

Serial number string from the monitor serial number descriptor (0xFF), if present.

§display_name: Option<MonitorString>

Human-readable display name from the monitor name descriptor, if present.

§unspecified_text: [Option<MonitorString>; 4]

Unspecified ASCII text strings from 0xFE descriptors, in descriptor slot order.

Up to four entries (one per descriptor slot). Each slot is None if the corresponding descriptor was not a 0xFE entry.

§white_points: [Option<WhitePoint>; 2]

Additional white points from the 0xFB descriptor.

Up to two entries (the EDID 0xFB descriptor has two fixed slots). Each slot is None if the corresponding entry was unused (index byte 0x00).

§digital: bool

true if the display uses a digital input interface.

§color_bit_depth: Option<ColorBitDepth>

Color bit depth per primary channel. None for analog displays or when the field is undefined or reserved.

§display_technology: Option<DisplayTechnology>

Physical display technology (e.g. TFT, OLED, PDP). None when the Display Device Data Block is absent.

§display_subtype: Option<u8>

Technology-specific sub-type code (raw, 0–15). None when the Display Device Data Block is absent.

§operating_mode: Option<OperatingMode>

Panel operating mode (continuous or non-continuous refresh). None when the Display Device Data Block is absent.

§backlight_type: Option<BacklightType>

Backlight type. None when the Display Device Data Block is absent.

§data_enable_used: Option<bool>

Whether the panel uses a Data Enable (DE) signal. None when the Display Device Data Block is absent.

§data_enable_positive: Option<bool>

Data Enable signal polarity: true = positive, false = negative. Valid only when data_enable_used is Some(true). None when the Display Device Data Block is absent.

§native_pixels: Option<(u16, u16)>

Native pixel format (width_px, height_px). None when the Display Device Data Block is absent or either dimension is zero.

§panel_aspect_ratio_100: Option<u8>

Panel aspect ratio encoded as (AR − 1) × 100 (raw byte). For example 77 represents approximately 16:9 (AR ≈ 1.77). None when the block is absent.

§physical_orientation: Option<PhysicalOrientation>

Physical mounting orientation of the panel. None when the Display Device Data Block is absent.

§rotation_capability: Option<RotationCapability>

Panel rotation capability. None when the Display Device Data Block is absent.

§zero_pixel_location: Option<ZeroPixelLocation>

Location of the zero (origin) pixel in the framebuffer. None when the Display Device Data Block is absent.

§scan_direction: Option<ScanDirection>

Fast-scan direction relative to H-sync. None when the Display Device Data Block is absent.

§subpixel_layout: Option<SubpixelLayout>

Sub-pixel color filter arrangement. None when the Display Device Data Block is absent.

§pixel_pitch_hundredths_mm: Option<(u8, u8)>

Pixel pitch (horizontal_hundredths_mm, vertical_hundredths_mm) in 0.01 mm units. None when the Display Device Data Block is absent or either pitch is zero.

§pixel_response_time_ms: Option<u8>

Pixel response time in milliseconds. None when the Display Device Data Block is absent or the value is zero.

§power_sequencing: Option<PowerSequencing>

Interface power sequencing timing parameters. None when the Interface Power Sequencing Block is absent.

§transfer_characteristic: Option<DisplayIdTransferCharacteristic>

Display luminance transfer function. None when the Transfer Characteristics Block is absent.

§display_id_interface: Option<DisplayIdInterface>

Physical display interface capabilities. None when the Display Interface Data Block is absent.

§stereo_interface: Option<DisplayIdStereoInterface>

Stereo display interface parameters. None when the Stereo Display Interface Data Block is absent.

§tiled_topology: Option<DisplayIdTiledTopology>

Tiled display topology. None when the Tiled Display Topology Data Block is absent.

§chromaticity: Chromaticity

CIE xy chromaticity coordinates for the color primaries and white point.

§gamma: Option<DisplayGamma>

Display gamma. None if the display did not specify a gamma value.

§display_features: Option<DisplayFeatureFlags>

Display feature support flags.

§digital_color_encoding: Option<DigitalColorEncoding>

Supported color encoding formats. Only populated for EDID 1.4+ digital displays.

§analog_color_type: Option<AnalogColorType>

Color type for analog displays; None for the undefined value (0b11).

§video_interface: Option<VideoInterface>

Video interface type. None for analog displays or when the field is undefined or reserved.

§analog_sync_level: Option<AnalogSyncLevel>

Analog sync and video white levels. Only populated for analog displays.

§screen_size: Option<ScreenSize>

Physical screen dimensions or aspect ratio. None when both bytes are zero (undefined).

§min_v_rate: Option<u16>

Minimum supported vertical refresh rate in Hz.

§max_v_rate: Option<u16>

Maximum supported vertical refresh rate in Hz.

§min_h_rate_khz: Option<u16>

Minimum supported horizontal scan rate in kHz.

§max_h_rate_khz: Option<u16>

Maximum supported horizontal scan rate in kHz.

§max_pixel_clock_mhz: Option<u16>

Maximum pixel clock in MHz.

§preferred_image_size_mm: Option<(u16, u16)>

Physical image area dimensions in millimetres (width_mm, height_mm).

More precise than screen_size (which is in cm). None when all DTD image-size fields are zero.

§timing_formula: Option<TimingFormula>

Video timing formula reported in the display range limits descriptor.

§color_management: Option<ColorManagementData>

DCM polynomial coefficients.

§supported_modes: Vec<VideoMode>

Video modes decoded from the display data.

§warnings: Vec<ParseWarning>

Non-fatal conditions collected from the parser and all handlers.

Not serialized — use a custom handler to map warnings to a serializable form.

§extension_data: Vec<(u8, Arc<dyn ExtensionData>)>

Typed data attached by extension handlers, keyed by extension tag byte.

Uses a Vec of (tag, data) pairs rather than a HashMap so that this field is available in alloc-only (no_std) builds. The number of distinct extension tags in any real EDID is small enough that linear scan is negligible.

Not serialized — use a custom handler to map this to a serializable form.

Implementations§

Source§

impl DisplayCapabilities

Source

pub fn iter_warnings(&self) -> impl Iterator<Item = &ParseWarning>

Returns an iterator over all collected warnings.

Source

pub fn push_warning(&mut self, w: impl Error + Send + Sync + 'static)

Appends a warning, wrapping it in a ParseWarning.

Source

pub fn set_extension_data<T: ExtensionData>(&mut self, tag: u8, data: T)

Store typed data from a handler, keyed by an extension tag. Replaces any previously stored entry for the same tag.

Source

pub fn get_extension_data<T: Any>(&self, tag: u8) -> Option<&T>

Retrieve typed data previously stored by a handler for the given tag. Returns None if no data is stored for the tag or the type does not match.

Trait Implementations§

Source§

impl Clone for DisplayCapabilities

Source§

fn clone(&self) -> DisplayCapabilities

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DisplayCapabilities

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DisplayCapabilities

Source§

fn default() -> DisplayCapabilities

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ExtensionData for T
where T: Any + Debug + Send + Sync,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns self as &dyn Any to enable downcasting.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.