diff options
author | Ben S <ogham@bsago.me> | 2015-06-29 14:47:07 +0100 |
---|---|---|
committer | Ben S <ogham@bsago.me> | 2015-06-29 14:47:07 +0100 |
commit | 56895ab84fff784b2e8c550fd47ea1dd3698814b (patch) | |
tree | 91ff30f676f11668584a787fe897dacfddddf3b7 /src/output | |
parent | fe0d433e65e8cde164cf2533057f4461174de584 (diff) |
Extract some methods
Diffstat (limited to 'src/output')
-rw-r--r-- | src/output/grid_details.rs | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/output/grid_details.rs b/src/output/grid_details.rs index bb191f8..92b373c 100644 --- a/src/output/grid_details.rs +++ b/src/output/grid_details.rs @@ -1,5 +1,6 @@ use std::iter::repeat; +use users::OSUsers; use term_grid as grid; use column::{Column, Cell}; @@ -40,30 +41,22 @@ impl GridDetails { } } - pub fn make_grid(&self, column_count: usize, columns_for_dir: &[Column], files: &[File], cells: Vec<Vec<Cell>>) -> grid::Grid { - let make_table = || { - let mut table = Table::with_options(self.details.colours, columns_for_dir.into()); - if self.details.header { table.add_header() } - table - }; + fn make_table(&self, columns_for_dir: &[Column]) -> Table<OSUsers> { + let mut table = Table::with_options(self.details.colours, columns_for_dir.into()); + if self.details.header { table.add_header() } + table + } - let mut tables: Vec<_> = repeat(()).map(|_| make_table()).take(column_count).collect(); + fn make_grid(&self, column_count: usize, columns_for_dir: &[Column], files: &[File], cells: Vec<Vec<Cell>>) -> grid::Grid { + let mut tables: Vec<_> = repeat(()).map(|_| self.make_table(columns_for_dir)).take(column_count).collect(); let mut num_cells = cells.len(); if self.details.header { num_cells += column_count; } - let mut original_height = cells.len() / column_count; - if cells.len() % column_count != 0 { - original_height += 1; - } - - let mut height = num_cells / column_count; - - if num_cells % column_count != 0 { - height += 1; - } + let original_height = divide_rounding_up(cells.len(), column_count); + let height = divide_rounding_up(num_cells, column_count); for (i, (file, row)) in files.iter().zip(cells.into_iter()).enumerate() { let index = if self.grid.across { @@ -116,3 +109,10 @@ impl GridDetails { grid } } + + +fn divide_rounding_up(a: usize, b: usize) -> usize { + let mut result = a / b; + if a % b != 0 { result += 1; } + result +}
\ No newline at end of file |