Skip to main content

tree_table/api/
reset.rs

1use alloc::string::String;
2
3use crate::Options;
4use crate::Table;
5use crate::args::ResetArgs;
6
7impl Table {
8    /// Reset the table.
9    pub fn reset(&mut self, kwargs: Option<ResetArgs>) -> Result<(), String> {
10        let kwargs: ResetArgs = kwargs.unwrap_or_default();
11        if kwargs.opts {
12            self.opts = Options::new();
13        }
14        if kwargs.grid {
15            self.grid.reset();
16        }
17        if kwargs.index {
18            self.grid.index.reset();
19        }
20        if kwargs.header {
21            self.grid.header.reset();
22        }
23        if kwargs.selections {
24            Self::acr_deselect_all(&mut self.sel, None);
25        }
26        if kwargs.undo_stack {
27            self.grid.undo_stack.clear();
28            self.grid.redo_stack.clear();
29        }
30        Ok(())
31    }
32}