1 | use crate::grid::{ |
2 | config::SpannedConfig, |
3 | dimension::SpannedGridDimension, |
4 | records::{ExactRecords, IntoRecords, Records}, |
5 | }; |
6 | |
7 | pub(crate) fn get_table_height<R>(records: R, cfg: &SpannedConfig) -> (usize, Vec<usize>) |
8 | where |
9 | R: Records + ExactRecords, |
10 | <R::Iter as IntoRecords>::Cell: AsRef<str>, |
11 | { |
12 | let count_horizontals: usize = cfg.count_horizontal(records.count_rows()); |
13 | |
14 | let margin: Sides = cfg.get_margin(); |
15 | let margin_size: usize = margin.top.size + margin.bottom.size; |
16 | |
17 | let list: Vec = SpannedGridDimension::height(records, cfg); |
18 | let total: usize = list.iter().sum::<usize>(); |
19 | |
20 | let total: usize = total + count_horizontals + margin_size; |
21 | |
22 | (total, list) |
23 | } |
24 | |