1use interface::{
4 display::DisplayDriver, mouse::MouseDriver, split::SplitDriver, system::SystemDriver,
5 usb::UsbReporterDriverBuilder, wireless::WirelessReporterDriverBuilder,
6};
7
8use crate::drivers::interface::{
9 debounce::DebounceDriver, encoder::EncoderDriver, keyscan::KeyscanDriver, rgb::RgbDriver,
10 storage::StorageDriver,
11};
12
13pub mod dummy;
14pub mod interface;
15
16pub struct Drivers<
21 System: SystemDriver,
22 KeyScan: KeyscanDriver,
23 Debounce: DebounceDriver,
24 Encoder: EncoderDriver,
25 Rgb: RgbDriver,
26 Storage: StorageDriver,
27 Split: SplitDriver,
28 Ble: WirelessReporterDriverBuilder,
29 Usb: UsbReporterDriverBuilder,
30 Display: DisplayDriver,
31 Mouse: MouseDriver,
32> {
33 pub system: System,
34 pub keyscan: KeyScan,
35 pub debounce: Option<Debounce>,
36 pub encoder: Option<Encoder>,
37 pub rgb: Option<Rgb>,
38 pub storage: Option<Storage>,
39 pub split: Option<Split>,
40 pub ble_builder: Option<Ble>,
41 pub usb_builder: Option<Usb>,
42 pub mouse: Option<Mouse>,
43 pub display: Option<Display>,
44}