tapr 0.6.0

tapr is a table pretty-printer. Outputs a CSV or TSV file as nicely as possible by adjusting column widths.
Documentation
pub use terminal_size::{Height, Width};

#[cfg(windows)]
pub fn safe_terminal_size() -> Option<(Width, Height)> {
    use std::os::windows::io::RawHandle;
    use winapi::um::processenv::GetStdHandle;
    use winapi::um::winbase::{STD_ERROR_HANDLE, STD_OUTPUT_HANDLE};

    let stdout = unsafe { GetStdHandle(STD_OUTPUT_HANDLE) } as RawHandle;
    if let Some(wh) = terminal_size::terminal_size_using_handle(stdout) {
        Some(wh)
    } else {
        let stderr = unsafe { GetStdHandle(STD_ERROR_HANDLE) } as RawHandle;
        terminal_size::terminal_size_using_handle(stderr)
    }
}

#[cfg(not(windows))]
pub fn safe_terminal_size() -> Option<(Width, Height)> {
    if let Some(wh) = terminal_size::terminal_size_using_fd(libc::STDOUT_FILENO) {
        Some(wh)
    } else {
        terminal_size::terminal_size_using_fd(libc::STDERR_FILENO)
    }
}