sesh_shared/
term.rs

1use anyhow::Result;
2use termion;
3
4pub struct Size {
5    /// Number of columns
6    pub cols: u16,
7    /// Number of rows
8    pub rows: u16,
9}
10
11impl Size {
12    pub fn term_size() -> Result<Size> {
13        let (cols, rows) = termion::terminal_size()?;
14        Ok(Size { cols, rows })
15    }
16}
17
18// impl Into<sesh_proto::
19
20impl From<&Size> for libc::winsize {
21    fn from(val: &Size) -> Self {
22        libc::winsize {
23            ws_row: val.rows,
24            ws_col: val.cols,
25            ws_xpixel: 0,
26            ws_ypixel: 0,
27        }
28    }
29}