jenslog-rs/src/logging/logger.rs
LordMZTE 9e78b067f5 move keystate into own file
configure clippy linter
adjust style to linter settings
2020-08-26 13:51:43 +02:00

28 lines
751 B
Rust

use crate::logging::loggers::{ConsoleLogger, FileLogger};
use crate::scan_code_to_key_name;
use crate::key::keystate::KeyState;
pub trait Logger: Sync {
fn log(&self, key: &KeyState);
}
pub fn get_logger(name: &str) -> Box<dyn Logger> {
match name {
"file" => Box::new(FileLogger::new_default()),
_ => Box::new(ConsoleLogger),
}
}
impl dyn Logger {
pub fn default_format(key: &KeyState) -> String {
format!(
"{} >> {}{}{} >> {}\n",
key.kbdllstruct.vkCode,
if key.win_down { "w" } else { "" },
if key.ctrl_down { "c" } else { "" },
if key.shift_down { "s" } else { "" },
scan_code_to_key_name(key.kbdllstruct.scanCode)
)
}
}