tree_table/api/
set_frozen.rs1use alloc::{string::String, vec::Vec};
2
3use crate::Table;
4
5impl Table {
6 pub fn set_frozen_rows(&mut self, freeze: Vec<u64>) -> Result<(), String> {
7 let max_row = Self::acr_total_rows(&self.grid.index.cells) as u64;
8 let rows: Vec<usize> = freeze
9 .into_iter()
10 .filter_map(|r| if r < max_row { Some(r as usize) } else { None })
11 .collect();
12 self.grid.frozen_rows = rows;
13 Ok(())
14 }
15
16 pub fn set_frozen_cols(&mut self, freeze: Vec<u64>) -> Result<(), String> {
17 let max_col = Self::acr_total_cols(&self.grid.header.cells) as u64;
18 let cols: Vec<usize> = freeze
19 .into_iter()
20 .filter_map(|c| if c < max_col { Some(c as usize) } else { None })
21 .collect();
22 self.grid.frozen_cols = cols;
23 Ok(())
24 }
25}