Removed needless pub fn, use different api for units (see d97f397a
)
parent
d97f397afc
commit
b68556ae7f
|
@ -21,11 +21,6 @@ impl Directory {
|
||||||
self.size
|
self.size
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
|
||||||
pub fn path(&self) -> &Path {
|
|
||||||
self.name.as_ref()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn new< P: AsRef<Path> >(path: P, args: &Args) -> Result<Option<Self>> {
|
pub fn new< P: AsRef<Path> >(path: P, args: &Args) -> Result<Option<Self>> {
|
||||||
let path = path.as_ref();
|
let path = path.as_ref();
|
||||||
// NOTE: I go back and forth on canonicalize()ing all the time.
|
// NOTE: I go back and forth on canonicalize()ing all the time.
|
||||||
|
@ -46,6 +41,7 @@ impl Directory {
|
||||||
|
|
||||||
// symlink_metadata() is the same as metadata() but it doesn't
|
// symlink_metadata() is the same as metadata() but it doesn't
|
||||||
// traverse symlinks, so that we can exclude them if necessary
|
// traverse symlinks, so that we can exclude them if necessary
|
||||||
|
// note: sizeof(Metadata) == 176
|
||||||
let meta = match path.symlink_metadata() {
|
let meta = match path.symlink_metadata() {
|
||||||
Ok(md) => md,
|
Ok(md) => md,
|
||||||
Err(_) if args.persistant() => return Ok(None),
|
Err(_) if args.persistant() => return Ok(None),
|
||||||
|
@ -66,7 +62,7 @@ impl Directory {
|
||||||
return Ok(Some(
|
return Ok(Some(
|
||||||
Self {
|
Self {
|
||||||
name,
|
name,
|
||||||
size: meta.len(),
|
size: args.len(&meta),
|
||||||
children: Vec::new()
|
children: Vec::new()
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
@ -85,7 +81,7 @@ impl Directory {
|
||||||
(Err(e), false) => return Err(e),
|
(Err(e), false) => return Err(e),
|
||||||
};
|
};
|
||||||
size += dir.size;
|
size += dir.size;
|
||||||
if args.tree() && args.should_print(dir.path()) {
|
if args.tree() && args.should_print(&dir.name) {
|
||||||
// since size was increased, this just prevents
|
// since size was increased, this just prevents
|
||||||
// the directory from appearing in printing
|
// the directory from appearing in printing
|
||||||
children.push(dir);
|
children.push(dir);
|
||||||
|
@ -144,7 +140,7 @@ impl Directory {
|
||||||
pub fn tree(self, unit: Unit) -> String {
|
pub fn tree(self, unit: Unit) -> String {
|
||||||
// since self.size is definitionally the greatest value, the tab length
|
// since self.size is definitionally the greatest value, the tab length
|
||||||
// is just the length of self.len, plus two for a tab width
|
// is just the length of self.len, plus two for a tab width
|
||||||
let tab_size = unit.convert(self.size).len() + 2;
|
let tab_size = unit.convert_with_units(self.size).len() + 2;
|
||||||
self.vectorise(unit)
|
self.vectorise(unit)
|
||||||
.iter()
|
.iter()
|
||||||
.map(|e| e.stringify_tabbed(tab_size))
|
.map(|e| e.stringify_tabbed(tab_size))
|
||||||
|
@ -209,7 +205,7 @@ impl TreeEntry {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn stringify_tabbed(&self, tab_size: usize) -> String {
|
fn stringify_tabbed(&self, tab_size: usize) -> String {
|
||||||
let mut result = format!("{:<tab_size$}", self.unit.convert(self.size));
|
let mut result = format!("{:<tab_size$}", self.unit.convert_with_units(self.size));
|
||||||
|
|
||||||
for part in self.parts.iter().rev() {
|
for part in self.parts.iter().rev() {
|
||||||
result += part.display();
|
result += part.display();
|
||||||
|
|
Loading…
Reference in New Issue