iso9660-forensic 0.3.0

Pure-Rust forensic ISO 9660 reader: multi-session, Rock Ridge, Joliet, El Torito, 2352-byte raw sectors
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum IsoError {
    #[error("I/O error: {0}")]
    Io(#[from] std::io::Error),
    #[error("not an ISO image: missing CD001 signature at sector 16")]
    NotAnIso,
    #[error("unsupported sector size: expected 2048 or 2352, detected {0}")]
    UnsupportedSectorSize(u64),
    #[error("volume descriptor parse error: {0}")]
    BadDescriptor(String),
    #[error("directory record parse error: {0}")]
    BadDirRecord(String),
    #[error("file not found: {0}")]
    NotFound(String),
    #[error("path traversal outside root")]
    PathTraversal,
    #[error("resource limit exceeded: {0}")]
    ResourceLimit(String),
}