rustzx_core/
error.rs

1use displaydoc::Display;
2use from_variants::FromVariants;
3
4#[derive(Debug, Display, FromVariants)]
5pub enum Error {
6    /// Failed to read asset
7    AssetRead(IoError),
8    /// Failed to load rom
9    RomLoad(RomLoadError),
10    /// Failed to load tape
11    TapeLoad(TapeLoadError),
12    /// Failed to load screen
13    ScreenLoad(ScreenLoadError),
14}
15
16#[derive(Debug, Display)]
17pub enum IoError {
18    /// Unexpected end of file
19    UnexpectedEof,
20    /// Sink unexpectedly refused to write more bytes
21    WriteZero,
22    /// Seek operation was performed with offset before beginning of the asset
23    SeekBeforeStart,
24    /// Host-provided asset implementation failed
25    HostAssetImplFailed,
26}
27
28#[derive(Debug, Display)]
29pub enum RomLoadError {
30    /// More assets required to load rom
31    MoreAssetsRequired,
32}
33
34#[derive(Debug, Display)]
35pub enum TapeLoadError {
36    /// Provided tap file is invalid
37    InvalidTapFile,
38}
39
40#[derive(Debug, Display)]
41pub enum ScreenLoadError {
42    /// Provided scr file is invalid
43    InvalidScrFile,
44    /// Selected machine can't be used to load given screen file
45    MachineNotSupported,
46}