1mod apple_compression;
11pub mod asset;
12mod car;
13pub mod decode;
14pub mod diagnostics;
15pub mod export;
16#[cfg(feature = "image")]
17pub mod image;
18mod image_conv;
19pub mod metadata;
20mod model;
21pub mod output;
22pub mod raw;
23pub mod view;
24
25pub use bom::ByteSlice as PayloadBytes;
26
27pub use crate::asset::{
28 AssetEntry, AssetId, AssetKind, AssetVariant, AttributeSet, PayloadKind,
29 ResolvedPayloadSummary, TypedAttribute, VariantAttributes, VariantMatchError, VariantQuery,
30 asset_kind_for_item, payload_kind_for_item,
31};
32pub use crate::car::{
33 CSIItem, Car, CarError, CarResult, FacetItem, ReferenceRect, ReferenceResolveError,
34 ResolvedInternalReference,
35};
36pub use crate::decode::{
37 DecodeBudgetError, DecodeOptions, DecodeStage, OrientationPolicy, RenditionData,
38 RenditionDataRef,
39};
40pub use crate::diagnostics::{
41 DiagnosticIssue, DiagnosticsReport, DiagnosticsTotals, EntryDiagnostics, UnsupportedReason,
42};
43pub use crate::image_conv::RgbaPayload;
44pub use crate::metadata::{
45 ExifOrientation, TlvMetadata, TlvMetric, TlvMetrics, TlvRect, TlvReference, UnknownTlv,
46};
47pub use crate::model::rendition;
48pub use crate::model::{
49 CSIHeader, CSIMetadata, ColorModel, ColorSpace, Encoding, ExtendedMetadata, Header,
50};
51pub use crate::output::{
52 OutputIdentity, OutputIdentityKind, default_raw_extension, default_raw_extension_for_item,
53 rendition_scale, suggested_file_name, supported_output_identity,
54};
55
56pub(crate) fn deku_read_str(bytes: Vec<u8>) -> Result<String, deku::DekuError> {
57 Ok(String::from_utf8_lossy(&bytes)
58 .trim_end_matches('\0')
59 .to_string())
60}