Skip to main content

tree_table/api/
set_frozen.rs

1use 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}