use super::dirty::DirtyTracker;
use crate::screen::grid::TerminalModes;
pub(in crate::screen) struct RenderCache {
pub(super) rows: DirtyTracker,
pub(super) last_modes: Option<TerminalModes>,
pub(super) last_scroll_region: Option<(u16, u16)>,
pub(super) last_title: String,
pub(super) last_cursor: Option<(u16, u16)>,
pub(super) last_cursor_visible: Option<bool>,
}
impl Default for RenderCache {
fn default() -> Self {
Self::new()
}
}
impl RenderCache {
pub fn new() -> Self {
Self {
rows: DirtyTracker::new(),
last_modes: None,
last_scroll_region: None,
last_title: String::new(),
last_cursor: None,
last_cursor_visible: None,
}
}
pub fn invalidate(&mut self) {
self.rows.invalidate();
self.last_modes = None;
self.last_scroll_region = None;
self.last_title.clear();
self.last_cursor = None;
self.last_cursor_visible = None;
}
}