1#[derive(thiserror::Error, Debug)]
5pub enum Error {
6 #[error("I/O error: {0}")]
7 IO(#[from] std::io::Error),
8 #[error("Invalid magic number: {0:?}")]
9 InvalidMagicNumber([u8; 4]),
10 #[error("Invalid file table offset: {0}")]
11 InvalidTableOffset(i32),
12 #[error("Invalid file table size: {0}")]
13 InvalidTableSize(i32),
14 #[error("Invalid file offset: {0}")]
15 InvalidFileOffset(i32),
16 #[error("Invalid file size: {0}")]
17 InvalidFileSize(i32),
18 #[error("File name too long: {0}")]
19 FilenameTooLong(String),
20 #[error("Non-UTF-8 file name: {0}")]
21 NonUtf8Filename(#[from] std::string::FromUtf8Error),
22 #[error("Non-UTF-8 file name: {0}")]
23 NonUtf8Path(std::path::PathBuf),
24 #[error("No such file in PAK archive: {0}")]
25 NoSuchFile(String),
26 #[error("Not a directory: {0}")]
27 NotDirectory(String),
28 #[error("Pak path already exists: {0}")]
29 PakPathExists(String),
30 #[error("Failed to create directory: {0}")]
31 CreateDirectory(std::io::Error),
32 #[error("Failed to read directory: {0} :: {1}")]
33 ReadDirectory(std::path::PathBuf, String),
34 #[error("Failed to open PAK file: {0}")]
35 OpenPak(std::io::Error),
36 #[error("Failed to write to PAK file: {0}")]
37 WritePak(std::io::Error),
38 #[error("Failed to read from PAK file: {0} :: {1}")]
39 ReadPak(std::path::PathBuf, String),
40}
41
42pub type Result<T> = std::result::Result<T, Error>;