#[non_exhaustive]pub enum RomError {
Truncated {
needed: usize,
got: usize,
},
BadMagic,
FdsUnsupported,
UnsupportedMapper(u16),
InvalidConfig(String),
}Expand description
Errors returned by crate::parse.
Marked #[non_exhaustive] so new variants can be added without breaking
downstream match arms.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Truncated
File ended before the header / declared sections finished loading.
Fields
BadMagic
Magic bytes did not match "NES\x1A".
FdsUnsupported
The file is a Famicom Disk System disk image (fwNES "FDS\x1A" header
or a raw "*NINTENDO-HVC*" disk side), handed to the CARTRIDGE parser.
FDS is supported since v2.2.0, but as a separate sub-platform: a disk
loads through rustynes_core::Nes::from_disk together with the
disksys.rom BIOS, which the desktop and web frontends do. It is
detected here so a host without that path (the mobile apps, which load
iNES / NES 2.0 only) shows a clear message instead of a generic
bad-magic error. Until v2.7.5 the message still said FDS was “planned
for v2.2.0” (core audit §4.7).
UnsupportedMapper(u16)
Mapper id is outside the coverage matrix for this build.
InvalidConfig(String)
The header parsed but encoded an internally inconsistent configuration (e.g., trainer flag set on a NES 2.0 ROM that has no trainer bytes).
Trait Implementations§
Source§impl Error for RomError
impl Error for RomError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()