use hadris_io as io;
#[derive(Debug, thiserror::Error)]
pub enum CdError {
#[error("I/O error: {0}")]
Io(#[from] io::Error),
#[error("ISO error: {0}")]
Iso(#[from] hadris_iso::write::IsoCreationError),
#[error("UDF error: {0}")]
Udf(#[from] hadris_udf::UdfError),
#[error("Invalid file path: {0}")]
InvalidPath(String),
#[error("File not found: {0}")]
FileNotFound(String),
#[error("Directory not found: {0}")]
DirectoryNotFound(String),
#[error("Volume name too long (max {max} characters): {name}")]
VolumeNameTooLong { name: String, max: usize },
#[error("Invalid configuration: {0}")]
InvalidConfig(String),
}
pub type CdResult<T> = Result<T, CdError>;