use std::iter;
use terminal_size::terminal_size;
#[derive(Debug, Clone)]
pub struct CLI {
term_width: u32,
term_height: u32,
}
impl CLI {
#[inline]
pub fn new() -> CLI {
let term_size = terminal_size().unwrap();
CLI {
term_width: (term_size.0).0 as u32,
term_height: (term_size.1).0 as u32,
}
}
pub fn update(&mut self) {
let term_size = terminal_size().unwrap();
self.term_width = (term_size.0).0 as u32;
self.term_height = (term_size.1).0 as u32;
}
pub fn border_horizontal(&self, border_char: char, length_mult: f32) -> String {
let eff_width = (self.term_width as f32 * length_mult) as usize;
let border = iter::repeat(border_char.to_string()).take(eff_width).collect::<String>();
border
}
}