use core::io::{Error, ErrorKind};
use irid_syscall::SystemError;
pub fn convert_error(error: SystemError) -> Error {
Error::from(match error.0 {
1 | 13 => ErrorKind::PermissionDenied,
2 => ErrorKind::NotFound,
3 => ErrorKind::Other,
4 => ErrorKind::Interrupted,
5 => ErrorKind::InputOutputError,
6 => ErrorKind::NotFound,
7 => ErrorKind::ArgumentListTooLong,
9 | 14 => ErrorKind::InvalidInput,
10 => ErrorKind::NotFound,
11 => ErrorKind::AddrNotAvailable,
12 => ErrorKind::OutOfMemory,
15 => ErrorKind::Unsupported,
16 => ErrorKind::ResourceBusy,
17 => ErrorKind::AlreadyExists,
18 => ErrorKind::CrossesDevices,
19 => ErrorKind::NotFound,
20 => ErrorKind::NotADirectory,
21 => ErrorKind::IsADirectory,
22 => ErrorKind::InvalidInput,
23 | 24 => ErrorKind::TooManyOpenFiles,
25 => ErrorKind::Unsupported,
26 => ErrorKind::ResourceBusy,
27 => ErrorKind::FileTooLarge,
28 => ErrorKind::StorageFull,
29 => ErrorKind::NotSeekable,
30 => ErrorKind::ReadOnlyFilesystem,
31 => ErrorKind::TooManyLinks,
32 => ErrorKind::BrokenPipe,
33 => ErrorKind::InvalidInput,
34 => ErrorKind::InvalidData,
35 => ErrorKind::Deadlock,
36 => ErrorKind::InvalidFilename,
37 => ErrorKind::ResourceBusy,
38 => ErrorKind::Unsupported,
40 => ErrorKind::FilesystemLoop,
41 => ErrorKind::WouldBlock,
56 => ErrorKind::Unsupported,
60 => ErrorKind::Unsupported,
62 => ErrorKind::TimedOut,
65 => ErrorKind::NotFound,
76 => ErrorKind::AlreadyExists,
77 => ErrorKind::InvalidInput,
79 => ErrorKind::PermissionDenied,
80 | 81 => ErrorKind::InputOutputError,
84 => ErrorKind::InvalidData,
85 => ErrorKind::Interrupted,
95 | 96 => ErrorKind::Unsupported,
98 => ErrorKind::AlreadyExists,
100 => ErrorKind::NetworkDown,
101 => ErrorKind::NetworkUnreachable,
110 => ErrorKind::TimedOut,
121 => ErrorKind::InputOutputError,
122 => ErrorKind::StorageFull,
123 => ErrorKind::AddrNotAvailable,
_ => ErrorKind::Uncategorized
})
}