Use trait objects instead of generics for UsbDevice::classes

This commit is contained in:
alexmoon
2022-03-27 17:12:57 -04:00
committed by Dario Nieuwenhuis
parent bdc6e0481c
commit 52c622b1cd
5 changed files with 120 additions and 201 deletions

View File

@ -175,10 +175,7 @@ impl<'d, D: Driver<'d>> UsbDeviceBuilder<'d, D> {
}
/// Creates the [`UsbDevice`] instance with the configuration in this builder.
///
/// If a device has mutliple [`UsbClass`]es, they can be provided as a tuple list:
/// `(class1, (class2, (class3, ()))`.
pub fn build<C: UsbClass<'d, D>>(mut self, classes: C) -> UsbDevice<'d, D, C> {
pub fn build(mut self, classes: &'d mut [&'d mut dyn UsbClass]) -> UsbDevice<'d, D> {
self.config_descriptor.end_configuration();
self.bos_descriptor.end_bos();