Skip to main content

rawshift_core/
lib.rs

1//! Shared core types for the rawshift image/video processing libraries.
2//!
3//! This crate holds pure, stateless data structures with no decoding logic:
4//! geometry ([`image::Size`], [`image::Point`], [`image::Rect`]), pixel sample
5//! types ([`pixel`]), CFA patterns, the raw/RGB image containers, and the
6//! format-agnostic [`metadata`] model. It is depended on by both
7//! `rawshift-image` and `rawshift-video` so they share one vocabulary of types
8//! without either pulling in the other.
9#![forbid(unsafe_code)]
10
11pub mod codec;
12pub mod color;
13pub mod image;
14pub mod metadata;
15pub mod pixel;
16
17pub use codec::{CodecDirection, CodecId, CodecInfo, MetadataEmbedOptions};
18pub use color::{BitDepth, ColorSpace};
19pub use image::XTransPattern;
20pub use metadata::{
21    ImageMetadata, MetadataEntry, MetadataExtractor, MetadataKey, MetadataNamespace, MetadataValue,
22};
23pub use pixel::{FromF32, Rgb, Rgb8, Rgb16, RgbF32, Rgba, Rgba8, Rgba16, RgbaF32, Sample};