#[doc = crate::_tags!(term layout ffi)]
#[doc = crate::_doc_location!("sys/os/term")]
#[must_use]
#[repr(C)] #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
pub struct TermSize {
pub rows: u16,
pub cols: u16,
pub x: u16,
pub y: u16,
}
impl TermSize {
pub const fn new(rows_cols: (u16, u16), xy: (u16, u16)) -> Self {
TermSize {
rows: rows_cols.0,
cols: rows_cols.1,
x: xy.0,
y: xy.1,
}
}
#[must_use]
pub const fn pixels(self) -> (u16, u16) {
(self.x, self.y)
}
#[must_use]
pub const fn cells(self) -> (u16, u16) {
(self.cols, self.rows)
}
#[must_use]
pub const fn pixels_per_cell(self) -> (u16, u16) {
(self.x / self.cols, self.y / self.rows)
}
}