Expand description
A no_std-friendly library for parsing and generation of Image4 images written in pure Rust.
This library is currently in EXPERIMENTAL state. It’s very likely that the API changes in the future.
§Usage
This library is based on the der crate. Decoding and encoding is based on the Decode and
Encode traits.
An Image4 file may be decoded as follows:
use image4::{der::Decode, ImageRef, Tag};
let bytes = include_bytes!("../tests/data/test.img4");
let image = ImageRef::from_der(bytes)?;
assert_eq!(image.payload().tag(), Tag::from_bytes(*b"TEST"));§Supported formats
The library supports the following formats:
- Full Image4 containers (IMG4) via the
ImageRefandImagetypes; - Image4 payload files (IM4P) via the
PayloadRefandPayloadtypes; - Image4 manifest files (IM4M) via the
ManifestRefandManifesttypes.
Additionally the new payload properties format (PAYP) is supported via the PayloadPropsRef
and PayloadProps types, though it likely isn’t stored as a separate file.
§Features
alloc: enables owned versions of reference types,allocsupport inderand decoding of Image4 properties.std: implementsstd::error::Errortrait on provided errors, enablesstdsupport in thedercrate.payload: enables thepayloadmodule.manifest: enables themanifestmodule.restore_info: enables therestore_infomodule.image: enables theimagemodule, requirespayload,manifestandrestore_infofeatures.serde: implements (de)serialization for Image4 property lists. Useful for translating payload properties and manifest bodies to other formats and vice versa. Disabled by default.property: adds support for Image4 property lists (enables thepropertymodule). These are an implementation detail of the Image4 format and usually shouldn’t be used directly.
All features are enabled by default.
Re-exports§
pub use image::Image;imageandallocpub use image::ImageRef;imagepub use manifest::Manifest;manifestandallocpub use manifest::ManifestRef;manifestpub use payload::Payload;payloadandallocpub use payload::PayloadRef;payloadpub use restore_info::RestoreInfo;restore_infoandallocpub use restore_info::RestoreInfoRef;restore_infopub use der;
Modules§
- image
image - Contains the
ImageRefandImagetypes that represent an Image4 container (an IMG4 file). - manifest
manifest - Contains the
ManifestRef,Manifesttypes that both represent a signed Image4 manifest, their unsigned counterparts and supporting types. - payload
payload - Contains types used to parse and generate Image4 payload files (aka IM4P).
- property
property - Contains everything needed to implement Image4 properties parsing.
- restore_
info restore_info - Contains the
RestoreInfotype that represents Image4 restore info (an IM4R file).
Structs§
- Tag
- A 4CC tag that is common in the Image4 format.
Type Aliases§
- Result
- Result type.