use keybinds::Keybinds;
use serde::Deserialize;
use std::time::Duration;
#[derive(Deserialize, Debug)]
enum Action {
OpenFile,
ExitApp,
}
#[derive(Deserialize)]
struct KeyboardConfig {
bindings: Keybinds<Action>,
timeout: Option<u64>,
}
#[derive(Deserialize)]
struct Config {
keyboard: KeyboardConfig,
}
fn main() {
let configuration = r#"
[keyboard]
timeout = 500
[keyboard.bindings]
"Ctrl+Alt+Enter" = "OpenFile"
"Ctrl+x Ctrl+c" = "ExitApp"
"#;
let config: Config = toml::from_str(configuration).unwrap();
let mut keybinds = config.keyboard.bindings;
if let Some(ms) = config.keyboard.timeout {
keybinds.set_timeout(Duration::from_millis(ms));
}
dbg!(keybinds.as_slice());
dbg!(keybinds.timeout());
}