aboutsummaryrefslogtreecommitdiff
path: root/crates/nres/src/error.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-06-22 12:12:27 +0300
committerValentin Popov <valentin@popov.link>2026-06-22 12:13:32 +0300
commitd0bdbaa1ed76dfbf3211bb43eee48c49cc4fd448 (patch)
treea0bd35c3940be62a5b5de1acc2366af377ffd181 /crates/nres/src/error.rs
parent7416fdc7e9a48837fff5056e6dc8d0774e90964b (diff)
downloadfparkan-d0bdbaa1ed76dfbf3211bb43eee48c49cc4fd448.tar.xz
fparkan-d0bdbaa1ed76dfbf3211bb43eee48c49cc4fd448.zip
feat: implement FParkan architecture foundation
Add the modular fparkan workspace, domain crates, adapters, apps, xtask policy/CI, acceptance evidence, and licensed corpus gates for the macOS-focused roadmap foundation.
Diffstat (limited to 'crates/nres/src/error.rs')
-rw-r--r--crates/nres/src/error.rs110
1 files changed, 0 insertions, 110 deletions
diff --git a/crates/nres/src/error.rs b/crates/nres/src/error.rs
deleted file mode 100644
index 9a3c651..0000000
--- a/crates/nres/src/error.rs
+++ /dev/null
@@ -1,110 +0,0 @@
-use core::fmt;
-
-#[derive(Debug)]
-#[non_exhaustive]
-pub enum Error {
- Io(std::io::Error),
-
- InvalidMagic {
- got: [u8; 4],
- },
- UnsupportedVersion {
- got: u32,
- },
- TotalSizeMismatch {
- header: u32,
- actual: u64,
- },
-
- InvalidEntryCount {
- got: i32,
- },
- TooManyEntries {
- got: usize,
- },
- DirectoryOutOfBounds {
- directory_offset: u64,
- directory_len: u64,
- file_len: u64,
- },
-
- EntryIdOutOfRange {
- id: u32,
- entry_count: u32,
- },
- EntryDataOutOfBounds {
- id: u32,
- offset: u64,
- size: u32,
- directory_offset: u64,
- },
- NameTooLong {
- got: usize,
- max: usize,
- },
- NameContainsNul,
- BadNameEncoding,
-
- IntegerOverflow,
-
- RawModeDisallowsOperation(&'static str),
-}
-
-impl From<std::io::Error> for Error {
- fn from(value: std::io::Error) -> Self {
- Self::Io(value)
- }
-}
-
-impl fmt::Display for Error {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- match self {
- Error::Io(e) => write!(f, "I/O error: {e}"),
- Error::InvalidMagic { got } => write!(f, "invalid NRes magic: {got:02X?}"),
- Error::UnsupportedVersion { got } => {
- write!(f, "unsupported NRes version: {got:#x}")
- }
- Error::TotalSizeMismatch { header, actual } => {
- write!(f, "NRes total_size mismatch: header={header}, actual={actual}")
- }
- Error::InvalidEntryCount { got } => write!(f, "invalid entry_count: {got}"),
- Error::TooManyEntries { got } => write!(f, "too many entries: {got} exceeds u32::MAX"),
- Error::DirectoryOutOfBounds {
- directory_offset,
- directory_len,
- file_len,
- } => write!(
- f,
- "directory out of bounds: off={directory_offset}, len={directory_len}, file={file_len}"
- ),
- Error::EntryIdOutOfRange { id, entry_count } => {
- write!(f, "entry id out of range: id={id}, count={entry_count}")
- }
- Error::EntryDataOutOfBounds {
- id,
- offset,
- size,
- directory_offset,
- } => write!(
- f,
- "entry data out of bounds: id={id}, off={offset}, size={size}, dir_off={directory_offset}"
- ),
- Error::NameTooLong { got, max } => write!(f, "name too long: {got} > {max}"),
- Error::NameContainsNul => write!(f, "name contains NUL byte"),
- Error::BadNameEncoding => write!(f, "bad name encoding"),
- Error::IntegerOverflow => write!(f, "integer overflow"),
- Error::RawModeDisallowsOperation(op) => {
- write!(f, "operation not allowed in raw mode: {op}")
- }
- }
- }
-}
-
-impl std::error::Error for Error {
- fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
- match self {
- Self::Io(err) => Some(err),
- _ => None,
- }
- }
-}