#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(not(feature = "pretty-safe"), forbid(unsafe_code))]
#[cfg(not(feature = "std"))]
extern crate alloc;
whereat::define_at_crate_info!();
pub(crate) mod blur;
pub(crate) mod color;
pub mod composite;
#[cfg(feature = "layout")]
pub(crate) mod execute;
#[doc(hidden)]
pub mod filter;
#[cfg(feature = "layout")]
pub mod layout;
pub(crate) mod pixel;
pub mod plane;
pub(crate) mod resize;
pub(crate) mod streaming;
pub(crate) mod transfer;
#[doc(hidden)]
pub mod weights;
#[allow(dead_code)] pub(crate) mod working;
#[doc(hidden)]
#[allow(clippy::excessive_precision)]
pub mod fastmath;
mod proven;
#[doc(hidden)]
pub mod simd;
pub use zenpixels::{AlphaMode, ChannelLayout, ChannelType, PixelDescriptor, TransferFunction};
#[cfg(feature = "layout")]
pub use execute::{
canvas_color_to_pixel, config_from_plan, execute, execute_layout,
execute_layout_with_background, execute_secondary, execute_secondary_with_background,
execute_with_background, execute_with_offer, fill_canvas, orient_image, place_on_canvas,
replicate_edges, streaming_from_plan, streaming_from_plan_batched,
};
pub use filter::Filter;
#[cfg(feature = "layout")]
pub use layout::{
CanvasColor, Constraint, ConstraintMode, DecoderOffer, DecoderRequest, Gravity, IdealLayout,
Layout, LayoutError, LayoutPlan, Orientation, Pipeline, Rect, Size, SourceCrop,
};
pub use pixel::{Element, LobeRatio, Padding, ResizeConfig, ResizeConfigBuilder, SourceRegion};
pub use plane::PlaneResizer;
pub use resize::Resizer;
pub use streaming::{OrientOutput, StreamingError, StreamingResize, WorkingFormat};
pub use composite::{
Background, BlendMode, CompositeError, NoBackground, SliceBackground, SolidBackground,
StreamedBackground, composite_over_premul, composite_over_solid_opaque_premul,
composite_over_solid_premul, unpremultiply_f32_row,
};
pub use zenblend::mask::{
LinearGradientMask, MaskFill, MaskSource, MaskSpan, MaskSpans, RadialGradientMask,
RoundedRectMask, SpanKind, mask_pixel_align,
};
pub use resize::{
resize_3ch, resize_4ch, resize_gray8, resize_hfirst_streaming, resize_hfirst_streaming_f32,
};
pub use transfer::{Bt709, Hlg, NoTransfer, Pq, Srgb, TransferCurve};
pub use whereat::{At, ResultAtExt};