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}