summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenjamin Sago <ogham@bsago.me>2015-12-17 10:27:44 +0800
committerBenjamin Sago <ogham@bsago.me>2015-12-17 10:27:44 +0800
commit88653a00eb0512be43466e697886ee4902a99920 (patch)
tree63ed93405d563be5b4373ddc75d7a19ba28b6ae8 /src
parent4c2bf2f2e6231c14a8aa44cb49c828034c342a69 (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.rs10
-rw-r--r--src/output/details.rs4
-rw-r--r--src/output/grid.rs3
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),
});
}