A crate for both interacting with SCSI devices as a host and for writing new SCSI device software/firmware.
Currently the main focus of this crate is Bulk Only USB Mass Storage Device compatibility, since that comprises a significant chunk of use cases. However, more functionality can be requested and/or PRed as necessary or desired.
Contains implementations for the different SCSI commands and responses, as well as helper utilities to, for example, treat the SCSI device as a normal block devies.
A general error struct for the package.
The cause of a returned error. This is implemented as an enum with a large number of variants to reduce allocations.
The direction that the USB transfer was going when it errored.
Allows for a struct to deserialize itself from a raw byte buffer.
Allows a struct to serialize itself to a raw byte buffer.
The trait that all communication devices should implement if they are to be used to transfer SCSI information.