pub trait UsbHostHandler: Sized {
type Driver: UsbHostDriver;
type PollEvent;
// Required methods
fn static_spec() -> StaticHandlerSpec;
async fn try_register(
bus: &Self::Driver,
enum_info: &EnumerationInfo,
) -> Result<Self, RegisterError>;
async fn wait_for_event(
&mut self,
) -> Result<HandlerEvent<Self::PollEvent>, HostError>;
}Expand description
A USB host-side class driver.
Implemented by class drivers (HID, CDC-ACM, Hub, …). The host calls
try_register after enumeration; on success the driver owns
the relevant channels and events are polled via wait_for_event.
Required Associated Types§
type Driver: UsbHostDriver
type PollEvent
Required Methods§
fn static_spec() -> StaticHandlerSpec
async fn try_register( bus: &Self::Driver, enum_info: &EnumerationInfo, ) -> Result<Self, RegisterError>
async fn wait_for_event( &mut self, ) -> Result<HandlerEvent<Self::PollEvent>, HostError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.