use thiserror::Error;
pub mod decoder;
pub mod encoder;
pub mod sixel_image;
pub use decoder::DcsSettings;
#[allow(deprecated)]
pub use decoder::{sixel_decode, sixel_decode_from_dcs};
#[allow(deprecated)]
pub use encoder::{sixel_encode, sixel_encode_default};
pub use encoder::{EncodeOptions, QuantizeMethod};
pub use sixel_image::{BackgroundMode, PixelAspectRatio, SixelImage};
#[derive(Debug, Error)]
pub enum SixelError {
#[error("invalid dimensions: {width}x{height}")]
InvalidDimensions { width: usize, height: usize },
#[error("buffer size mismatch: expected {expected} bytes, got {actual}")]
BufferSizeMismatch { expected: usize, actual: usize },
#[error("invalid SIXEL data: {0}")]
InvalidData(String),
#[error("no SIXEL data found (missing DCS introducer)")]
NoSixelData,
#[error("quantization error: {0}")]
Quantization(String),
#[error("integer overflow")]
IntegerOverflow,
}
pub type Result<T> = core::result::Result<T, SixelError>;
pub(crate) const SIXEL_PALETTE_MAX: usize = 256;
pub(crate) const SIXEL_WIDTH_LIMIT: usize = 1000000;
pub(crate) const SIXEL_HEIGHT_LIMIT: usize = 1000000;