Skip to main content

rmux_types/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3
4//! Portable semantic newtypes shared by non-adjacent RMUX crates.
5
6/// A terminal geometry request.
7#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9pub struct TerminalSize {
10    /// The requested column count.
11    pub cols: u16,
12    /// The requested row count.
13    pub rows: u16,
14}
15
16impl TerminalSize {
17    /// Creates a terminal size value from column and row counts.
18    #[must_use]
19    pub const fn new(cols: u16, rows: u16) -> Self {
20        Self { cols, rows }
21    }
22}