rmk_config/resolved/
identity.rs1pub struct Identity {
3 pub name: String,
4 pub vendor_id: u16,
5 pub product_id: u16,
6 pub manufacturer: String,
7 pub product_name: String,
8 pub serial_number: Option<String>,
11}
12
13impl crate::KeyboardTomlConfig {
14 pub fn identity(&self) -> Result<Identity, String> {
16 let keyboard = self
17 .keyboard
18 .as_ref()
19 .ok_or_else(|| "keyboard.toml: [keyboard] section is required".to_string())?;
20 Ok(Identity {
21 name: keyboard.name.clone(),
22 vendor_id: keyboard.vendor_id,
23 product_id: keyboard.product_id,
24 manufacturer: keyboard.manufacturer.clone().unwrap_or_else(|| "RMK".to_string()),
25 product_name: keyboard
26 .product_name
27 .clone()
28 .unwrap_or_else(|| "RMK Keyboard".to_string()),
29 serial_number: keyboard.serial_number.clone(),
30 })
31 }
32}