use simd_json::OwnedValue as Value;
use crate::ui::{self, RenderOptions};
pub struct OutputState {
values: Vec<Value>,
total_lines: usize,
}
impl OutputState {
pub fn new() -> Self {
Self {
values: vec![],
total_lines: 0,
}
}
pub fn values(&self) -> &[Value] {
&self.values
}
pub fn total_lines(&self) -> usize {
self.total_lines
}
pub fn set_values(&mut self, values: Vec<Value>, options: &RenderOptions) {
self.values = values;
self.total_lines = ui::count_total_lines(&self.values, options);
}
pub fn recompute_lines(&mut self, options: &RenderOptions) {
self.total_lines = ui::count_total_lines(&self.values, options);
}
#[cfg(test)]
pub fn set_total_lines(&mut self, lines: usize) {
self.total_lines = lines;
}
}