summaryrefslogtreecommitdiffstats
path: root/src/output
diff options
context:
space:
mode:
authorBen S <ogham@bsago.me>2015-06-29 14:47:07 +0100
committerBen S <ogham@bsago.me>2015-06-29 14:47:07 +0100
commit56895ab84fff784b2e8c550fd47ea1dd3698814b (patch)
tree91ff30f676f11668584a787fe897dacfddddf3b7 /src/output
parentfe0d433e65e8cde164cf2533057f4461174de584 (diff)
Extract some methods
Diffstat (limited to 'src/output')
-rw-r--r--src/output/grid_details.rs34
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