The goal is to have a clean, minimal Rust implementation, not a wrapper of an existing C implementation (e.g. the STMicroelectronics implementation or libopencm3). Studying https://github.com/dmitrystu/libusb_stm32 should prove helpful in finding all the details hidden "somewhere" in the datasheet and reference manual.
The biggest problem moving this effort forward is the lack of an embedded Rust USB stack: https://github.com/rust-embedded/wg/issues/40
There is a port of @mvirkkunen's usb-device (implemented for stm32f103) to atsamd21, and another effort for stm32f0.
The goal is to have a clean, minimal Rust implementation, not a wrapper of an existing C implementation (e.g. the STMicroelectronics implementation or libopencm3). Studying https://github.com/dmitrystu/libusb_stm32 should prove helpful in finding all the details hidden "somewhere" in the datasheet and reference manual.