use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Base64 decoding error: {0}")]
Base64(#[from] base64::DecodeError),
#[error("Invalid bundle version: {0}")]
InvalidBundleVersion(String),
#[error("Missing required field: {0}")]
MissingField(String),
#[error("Invalid media type: {0}")]
InvalidMediaType(String),
#[error("Invalid checkpoint format: {0}")]
InvalidCheckpoint(String),
#[error("Invalid hash algorithm: {0}")]
InvalidHashAlgorithm(String),
#[error("Invalid certificate: {0}")]
InvalidCertificate(String),
#[error("Validation error: {0}")]
Validation(String),
#[error("Invalid encoding: {0}")]
InvalidEncoding(String),
}
pub type Result<T> = std::result::Result<T, Error>;