mod color;
pub mod log;
pub use color::Color;
#[cfg(windows)]
pub fn set_legacy_windows_support(toggle: bool) {
use windows_sys::Win32::System::Console::{
GetConsoleMode, GetStdHandle, SetConsoleMode, ENABLE_VIRTUAL_TERMINAL_PROCESSING,
STD_OUTPUT_HANDLE,
};
unsafe {
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
let mut original_mode = 0;
GetConsoleMode(handle, &mut original_mode);
let enabled = original_mode & ENABLE_VIRTUAL_TERMINAL_PROCESSING
== ENABLE_VIRTUAL_TERMINAL_PROCESSING;
match (toggle, enabled) {
(true, false) => {
SetConsoleMode(handle, ENABLE_VIRTUAL_TERMINAL_PROCESSING | original_mode)
}
(false, true) => {
SetConsoleMode(handle, ENABLE_VIRTUAL_TERMINAL_PROCESSING ^ original_mode)
}
_ => 0,
};
}
}