virtio-drivers 0.13.0

VirtIO guest drivers.
Documentation
//! Implementation of `embedded-io::Error' trait for `Error`.

use crate::{Error, device::socket::SocketError};
use embedded_io::ErrorKind;

impl embedded_io::Error for Error {
    fn kind(&self) -> ErrorKind {
        match self {
            Error::InvalidParam => ErrorKind::InvalidInput,
            Error::DmaError => ErrorKind::OutOfMemory,
            Error::Unsupported => ErrorKind::Unsupported,
            Error::SocketDeviceError(e) => match e {
                &SocketError::ConnectionExists => ErrorKind::AddrInUse,
                SocketError::NotConnected => ErrorKind::NotConnected,
                SocketError::PeerSocketShutdown => ErrorKind::ConnectionAborted,
                SocketError::BufferTooShort => ErrorKind::InvalidInput,
                SocketError::OutputBufferTooShort(_) => ErrorKind::InvalidInput,
                SocketError::BufferTooLong(_, _) => ErrorKind::InvalidInput,
                SocketError::InsufficientBufferSpaceInPeer => ErrorKind::WriteZero,
                SocketError::UnknownOperation(_)
                | SocketError::InvalidOperation
                | SocketError::InvalidNumber
                | SocketError::UnexpectedDataInPacket
                | SocketError::RecycledWrongBuffer => ErrorKind::Other,
            },
            Error::QueueFull
            | Error::NotReady
            | Error::WrongToken
            | Error::AlreadyUsed
            | Error::IoError
            | Error::ConfigSpaceTooSmall
            | Error::ConfigSpaceMissing => ErrorKind::Other,
        }
    }
}