Skip to main content

rmk_config/resolved/
host.rs

1use crate::validate_unlock_keys;
2
3/// Resolved host-tool configuration.
4pub struct Host {
5    pub vial_enabled: bool,
6    pub rynk_enabled: bool,
7    pub unlock_keys: Vec<[u8; 2]>,
8    pub insecure: bool,
9    pub write_requires_unlock: bool,
10}
11
12impl crate::KeyboardTomlConfig {
13    /// Resolve host-tool configuration from TOML config.
14    pub fn host(&self) -> Host {
15        let host_toml = self.get_host_config();
16        let unlock_keys = host_toml.unlock_keys.unwrap_or_default();
17
18        validate_unlock_keys("[host]", &unlock_keys, self.layout.as_ref())
19            .unwrap_or_else(|err| panic!("❌ Parse `keyboard.toml` error: {err}"));
20
21        Host {
22            vial_enabled: host_toml.vial_enabled,
23            rynk_enabled: host_toml.rynk_enabled,
24            unlock_keys,
25            insecure: host_toml.insecure,
26            write_requires_unlock: host_toml.write_requires_unlock,
27        }
28    }
29}