Part of Ashlar — a display connection stack in Rust, HDMI 2.1 first: from EDID parsing through mode negotiation to FRL link training.
display-types · piaf · concordance · cartouche · culvert · plumbob · hdmi-hal · hdmi-hal-i2c-dev
Shared display capability types for display connection negotiation.
This crate provides [DisplayCapabilities] and all its supporting types —
the stable, typed model that EDID/DisplayID parsers produce and negotiation
engines consume. It is the shared vocabulary between
piaf (the parser) and
concordance (the negotiation engine),
and is suitable for any crate that needs to describe display capabilities without
taking a dependency on a full parser.
| Flag | Default | Description |
|---|---|---|
std |
yes | Enables std-dependent types; implies alloc. |
alloc |
no | Enables heap-allocated types (Vec, Arc, String) without full std. |
serde |
no | Derives Serialize/Deserialize for all public types. |
With neither std nor alloc the crate compiles in bare no_std mode and
exposes only the scalar types (enums and copy structs).
cargo add display-typesFor no_std with heap allocation (e.g. embedded with an allocator):
cargo add display-types --no-default-features --features allocFor bare no_std (scalars only):
cargo add display-types --no-default-featuresSee CONTRIBUTING.md for guidelines and doc/setup.md for build and test instructions.
Releases are built on GitHub Actions and attested with
SLSA Build Level 2 provenance (from 0.4.0). To verify a release
.crate against its signed provenance, install the
GitHub CLI and run:
gh attestation verify display-types-X.Y.Z.crate --repo ashlar-display/display-typesReleases from before the repository moved to the ashlar-display organization (0.4.0 to
0.4.2) were attested under its previous owner, and verify against it:
gh attestation verify display-types-X.Y.Z.crate --owner DracoWhitefire \
--signer-repo DracoWhitefire/display-typesThe attested .crate is attached to each
GitHub release.
Releases from 0.4.1 are uploaded through crates.io trusted publishing: the publish workflow obtains a short-lived token via OpenID Connect instead of using a stored API token. Since 0.4.1 was released, crates.io also rejects uploads made with an API token for this crate (the badge above reflects that setting). Each version's publishing details, including the workflow run and commit, are available from the crates.io API:
curl -A "your-tool (contact)" https://crates.io/api/v1/crates/display-types/X.Y.Z
# see .version.trustpub_dataVersions up to 0.3.1 were uploaded with an API token (mostly from CI) and carry no provenance; 0.4.0 carries provenance but was also uploaded with an API token.
Licensed under the Mozilla Public License 2.0.