use is_terminal::IsTerminal;
use std::io::Write;
pub fn get_terminal_width() -> usize {
terminal_size::terminal_size()
.map(|(terminal_size::Width(w), _)| w as usize)
.unwrap_or(80)
}
pub fn flush_stdout() {
std::io::stdout().flush().ok();
}
pub fn read_line() -> std::io::Result<String> {
let mut buffer = String::new();
std::io::stdin().read_line(&mut buffer)?;
Ok(buffer.trim().to_string())
}
pub fn is_piped_output() -> bool {
!std::io::stdout().is_terminal()
}
pub fn is_piped_input() -> bool {
!std::io::stdin().is_terminal()
}