use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("data too large (maximum supported {0} bytes)")]
DataTooLarge(u32),
#[error("Bento4 failed to create a decryptor context")]
ContextCreationFailed,
#[error("failed to decrypt media with Bento4 error code {0}")]
DecryptionFailed(i32),
#[error("invalid hex value '{input}': {message}")]
InvalidHex { input: String, message: String },
#[error("invalid --key spec '{input}': {message}")]
InvalidKeySpec { input: String, message: String },
#[error("path contains an interior NUL byte: {0}")]
InvalidPath(#[from] std::ffi::NulError),
#[error("at least one decryption key must be configured")]
NoKeys,
#[error("hex decode error: {0}")]
HexDecode(#[from] hex::FromHexError),
}