ariel_os::reexports::embassy_usb::class::hid

Trait RequestHandler

pub trait RequestHandler {
    // Provided methods
    fn get_report(&mut self, id: ReportId, buf: &mut [u8]) -> Option<usize> { ... }
    fn set_report(&mut self, id: ReportId, data: &[u8]) -> OutResponse { ... }
    fn get_idle_ms(&mut self, id: Option<ReportId>) -> Option<u32> { ... }
    fn set_idle_ms(&mut self, id: Option<ReportId>, duration_ms: u32) { ... }
}
Expand description

Handler for HID-related control requests.

Provided Methods§

fn get_report(&mut self, id: ReportId, buf: &mut [u8]) -> Option<usize>

Reads the value of report id into buf returning the size.

Returns None if id is invalid or no data is available.

fn set_report(&mut self, id: ReportId, data: &[u8]) -> OutResponse

Sets the value of report id to data.

fn get_idle_ms(&mut self, id: Option<ReportId>) -> Option<u32>

Get the idle rate for id.

If id is None, get the idle rate for all reports. Returning None will reject the control request. Any duration at or above 1.024 seconds or below 4ms will be returned as an indefinite idle rate.

fn set_idle_ms(&mut self, id: Option<ReportId>, duration_ms: u32)

Set the idle rate for id to dur.

If id is None, set the idle rate of all input reports to dur. If an indefinite duration is requested, dur will be set to u32::MAX.

Implementors§