#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub struct ScsiError {
pub cause: ErrorCause,
}
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub enum ErrorCause {
ParseError,
NonBlocksizeMultipleLengthError {
actual: usize,
block_size: usize,
},
UsbTransferError {
direction: UsbTransferDirection,
},
FlagError {
flags: u32,
},
BufferTooSmallError {
expected: usize,
actual: usize,
},
UnsupportedOperationError,
InvalidDeviceError,
}
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub enum UsbTransferDirection {
In,
Out,
}
impl ScsiError {
pub fn from_cause(cause: ErrorCause) -> ScsiError {
ScsiError { cause }
}
}