diff options
author | Benjamin Sago <ogham@bsago.me> | 2015-12-17 10:27:44 +0800 |
---|---|---|
committer | Benjamin Sago <ogham@bsago.me> | 2015-12-17 10:27:44 +0800 |
commit | 88653a00eb0512be43466e697886ee4902a99920 (patch) | |
tree | 63ed93405d563be5b4373ddc75d7a19ba28b6ae8 /src | |
parent | 4c2bf2f2e6231c14a8aa44cb49c828034c342a69 (diff) |
Remove dependency between file and output mods
By removing the `File#file_name_width` method, we can make the file module
have no dependency on the output module -- in other words, the model (file)
and the view (output) are now separate again!
Diffstat (limited to 'src')
-rw-r--r-- | src/file.rs | 10 | ||||
-rw-r--r-- | src/output/details.rs | 4 | ||||
-rw-r--r-- | src/output/grid.rs | 3 |
3 files changed, 4 insertions, 13 deletions
diff --git a/src/file.rs b/src/file.rs index dd105b2..53265d7 100644 --- a/src/file.rs +++ b/src/file.rs @@ -8,7 +8,6 @@ use std::os::unix::fs::{MetadataExt, PermissionsExt}; use std::path::{Component, Path, PathBuf}; use dir::Dir; -use output::DisplayWidth; use self::fields as f; @@ -179,15 +178,6 @@ impl<'dir> File<'dir> { path_prefix } - /// The Unicode 'display width' of the filename. - /// - /// This is related to the number of graphemes in the string: most - /// characters are 1 columns wide, but in some contexts, certain - /// characters are actually 2 columns wide. - pub fn file_name_width(&self) -> DisplayWidth { - DisplayWidth::from(&*self.name) - } - /// Assuming the current file is a symlink, follows the link and /// returns a File object from the path the link points to. /// diff --git a/src/output/details.rs b/src/output/details.rs index 4f224bd..edfc2a6 100644 --- a/src/output/details.rs +++ b/src/output/details.rs @@ -281,7 +281,7 @@ impl Details { let mut errors = egg.errors; let name = TextCell { - length: egg.file.file_name_width(), + length: DisplayWidth::from(&*egg.file.name), contents: filename(egg.file, &self.colours, true), }; @@ -461,7 +461,7 @@ impl<U> Table<U> where U: Users { pub fn filename_cell(&self, file: File, links: bool) -> TextCell { TextCell { - length: file.file_name_width(), + length: DisplayWidth::from(&*file.name), contents: filename(file, &self.colours, links), } } diff --git a/src/output/grid.rs b/src/output/grid.rs index 73c79e4..69001bf 100644 --- a/src/output/grid.rs +++ b/src/output/grid.rs @@ -1,6 +1,7 @@ use colours::Colours; use file::File; use filetype::file_colour; +use output::DisplayWidth; use term_grid as grid; @@ -27,7 +28,7 @@ impl Grid { for file in files.iter() { grid.add(grid::Cell { contents: file_colour(&self.colours, file).paint(&*file.name).to_string(), - width: *file.file_name_width(), + width: *DisplayWidth::from(&*file.name), }); } |