use std::{fmt, convert::{TryFrom, TryInto}};
use crate::NCurseswWinError;
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct Size {
pub lines: u16,
pub columns: u16
}
impl Default for Size {
fn default() -> Self {
Self { lines: 0, columns: 0 }
}
}
impl TryInto<ncursesw::Size> for Size {
type Error = NCurseswWinError;
fn try_into(self) -> Result<ncursesw::Size, Self::Error> {
Ok(ncursesw::Size { lines: u16::try_into(self.lines)?, columns: u16::try_into(self.columns)? })
}
}
impl TryFrom<ncursesw::Size> for Size {
type Error = NCurseswWinError;
fn try_from(size: ncursesw::Size) -> Result<Self, Self::Error> {
Ok(Self { lines: u16::try_from(size.lines)?, columns: u16::try_from(size.columns)? })
}
}
impl fmt::Display for Size {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "(lines: {}, columns: {})", self.lines, self.columns)
}
}