#![allow(unsafe_code)]
#[cfg(windows)]
pub mod windows;
#[cfg(unix)]
pub mod unix;
pub fn read_password() -> std::io::Result<String> {
#[cfg(windows)]
{
windows::read_password()
}
#[cfg(unix)]
{
unix::read_password()
}
#[cfg(not(any(windows, unix)))]
{
use std::io::{self, Write};
print!("Password: ");
io::stdout().flush()?;
let mut password = String::new();
io::stdin().read_line(&mut password)?;
password.pop(); Ok(password)
}
}
pub fn get_terminal_size() -> Option<(u16, u16)> {
#[cfg(windows)]
{
windows::get_terminal_size()
}
#[cfg(unix)]
{
unix::get_terminal_size()
}
#[cfg(not(any(windows, unix)))]
{
Some((80, 24))
}
}