use crate::cell_renderer::Cell;
use crate::selection::Selection;
use std::sync::Arc;
use std::time::Instant;
pub struct RenderCache {
pub(crate) cells: Option<Arc<Vec<Cell>>>, pub(crate) generation: u64, pub(crate) scroll_offset: usize, pub(crate) cursor_pos: Option<(usize, usize)>, pub(crate) selection: Option<Selection>, pub(crate) terminal_title: String, pub(crate) scrollback_len: usize, pub(crate) pane_cells: Option<Vec<Cell>>, pub(crate) pane_cells_generation: u64, pub(crate) pane_scrollback_len: usize, pub(crate) prettifier_feed_generation: u64, pub(crate) prettifier_feed_scroll_offset: usize, pub(crate) prettifier_command_start_line: Option<usize>, pub(crate) prettifier_command_text: Option<String>, pub(crate) prettifier_feed_last_time: Instant, pub(crate) prettifier_feed_last_hash: u64, }
impl RenderCache {
pub(crate) fn new() -> Self {
Self {
cells: None,
generation: 0,
scroll_offset: 0,
cursor_pos: None,
selection: None,
terminal_title: String::new(),
scrollback_len: 0,
pane_cells: None,
pane_cells_generation: 0,
pane_scrollback_len: 0,
prettifier_feed_generation: 0,
prettifier_feed_scroll_offset: usize::MAX, prettifier_command_start_line: None,
prettifier_command_text: None,
prettifier_feed_last_time: Instant::now(),
prettifier_feed_last_hash: 0,
}
}
}
impl Default for RenderCache {
fn default() -> Self {
Self::new()
}
}