#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct Modes {
set: std::collections::BTreeSet<u32>,
}
impl Modes {
pub fn is_set(&self, mode: u32) -> bool {
self.set.contains(&mode)
}
pub fn all_set(&self) -> Vec<u32> {
self.set.iter().copied().collect()
}
pub fn synchronized_output(&self) -> bool {
self.is_set(2026)
}
pub fn alt_screen(&self) -> bool {
self.is_set(1049)
}
pub fn cursor_visible(&self) -> bool {
self.is_set(25)
}
pub fn bracketed_paste(&self) -> bool {
self.is_set(2004)
}
pub fn focus_reporting(&self) -> bool {
self.is_set(1004)
}
pub fn sgr_mouse(&self) -> bool {
self.is_set(1006)
}
pub fn autowrap(&self) -> bool {
self.is_set(7)
}
pub(super) fn insert(&mut self, mode: u32) {
self.set.insert(mode);
}
pub(super) fn remove(&mut self, mode: u32) {
self.set.remove(&mode);
}
}
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct VtCounters {
pub unknown: u64,
pub utf8_errors: u64,
pub sync_begins: u64,
pub sync_ends: u64,
pub string_frames: u64,
pub kitty_push_depth: u64,
}