pub trait USBHost {
// Required methods
fn control_transfer(
&mut self,
ep: &mut dyn Endpoint,
bm_request_type: RequestType,
b_request: RequestCode,
w_value: WValue,
w_index: u16,
buf: Option<&mut [u8]>,
) -> Result<usize, TransferError>;
fn in_transfer(
&mut self,
ep: &mut dyn Endpoint,
buf: &mut [u8],
) -> Result<usize, TransferError>;
fn out_transfer(
&mut self,
ep: &mut dyn Endpoint,
buf: &[u8],
) -> Result<usize, TransferError>;
}Expand description
Trait for host controller interface.
Required Methods§
Sourcefn control_transfer(
&mut self,
ep: &mut dyn Endpoint,
bm_request_type: RequestType,
b_request: RequestCode,
w_value: WValue,
w_index: u16,
buf: Option<&mut [u8]>,
) -> Result<usize, TransferError>
fn control_transfer( &mut self, ep: &mut dyn Endpoint, bm_request_type: RequestType, b_request: RequestCode, w_value: WValue, w_index: u16, buf: Option<&mut [u8]>, ) -> Result<usize, TransferError>
Issue a control transfer with an optional data stage to
ep. The data stage direction is determined by the direction
of bm_request_type.
On success, the amount of data transferred into buf is
returned.
Sourcefn in_transfer(
&mut self,
ep: &mut dyn Endpoint,
buf: &mut [u8],
) -> Result<usize, TransferError>
fn in_transfer( &mut self, ep: &mut dyn Endpoint, buf: &mut [u8], ) -> Result<usize, TransferError>
Issue a transfer from ep to the host.
On success, the amount of data transferred into buf is
returned.
Sourcefn out_transfer(
&mut self,
ep: &mut dyn Endpoint,
buf: &[u8],
) -> Result<usize, TransferError>
fn out_transfer( &mut self, ep: &mut dyn Endpoint, buf: &[u8], ) -> Result<usize, TransferError>
Issue a transfer from the host to ep.
On success, the amount of data transferred from buf is
returned. This should always be equal to buf.len().
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".