irid-std 0.3.1

A replacement for std when running without a filesystem on the irid kernel
Documentation
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
    })
}