diff options
author | Philipp Mildenberger <philipp.mildenberger@student.uibk.ac.at> | 2019-06-16 13:46:47 +0200 |
---|---|---|
committer | Abin Simon <abinsimon10@gmail.com> | 2019-07-17 10:27:59 +0000 |
commit | 3facd4484083003e73978a3de688529586c8021f (patch) | |
tree | 597f81aabc8b27993f87adac748aef6cca659e66 /src/display.rs | |
parent | cb1de672618922cf55015190121e8c67a1aac5ba (diff) |
refactored 'Size' to only contain bytes. The unit is calculated only when needed. Added a new --size option 'bytes' to display the filesize in bytes (without unit) this is the default of ls
Diffstat (limited to 'src/display.rs')
-rw-r--r-- | src/display.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/display.rs b/src/display.rs index 4e3b126..3c81eb2 100644 --- a/src/display.rs +++ b/src/display.rs @@ -1,7 +1,7 @@ use crate::color::Colors; use crate::flags::{Block, Display, Flags, Layout}; use crate::icon::Icons; -use crate::meta::{FileType, Meta}; +use crate::meta::{FileType, Meta, Size}; use ansi_term::{ANSIString, ANSIStrings}; use term_grid::{Cell, Direction, Filling, Grid, GridOptions}; use terminal_size::terminal_size; @@ -400,12 +400,16 @@ fn detect_size_lengths(metas: &[Meta], flags: &Flags) -> (usize, usize) { let mut max_unit_size: usize = 0; for meta in metas { - if meta.size.render_value().len() > max_value_length { - max_value_length = meta.size.render_value().len(); + let unit = meta.size.get_unit(flags); + let value_len = meta.size.render_value(&unit).len(); + let unit_len = Size::render_unit(&unit, &flags).len(); + + if value_len > max_value_length { + max_value_length = value_len; } - if meta.size.render_unit(&flags).len() > max_unit_size { - max_unit_size = meta.size.render_unit(&flags).len(); + if unit_len > max_unit_size { + max_unit_size = unit_len; } } |