all_term 0.1.0

Cross-platform terminal abstraction library
Documentation
use libc::{
    winsize,
    ioctl,
    TIOCGWINSZ,
    STDIN_FILENO,
};

pub fn get_terminal_size() -> Result<(usize, usize), String> {
    let mut size = winsize {
        ws_row: 0,
        ws_col: 0,
        ws_xpixel: 0,
        ws_ypixel: 0,
    };

    let result = unsafe {
        ioctl(STDIN_FILENO, TIOCGWINSZ, &mut size)
    };

    if result == 0 {
        Ok((size.ws_col as usize, size.ws_row as usize))
    } else {
        Err(format!("ioctl error {}", result))
    }
}