mirror of
https://github.com/Llewellynvdm/exa.git
synced 2024-12-25 17:51:10 +00:00
Replace tuple with actual struct
This commit is contained in:
parent
5099b3f119
commit
f825397912
@ -135,15 +135,20 @@ fn details_view(columns: &[Column], files: &[File], header: bool, tree: bool) {
|
||||
get_files(columns, &mut cache, tree, &mut table, files, 0);
|
||||
|
||||
if header {
|
||||
table.insert(0, (0, columns.iter().map(|c| Cell::paint(Plain.underline(), c.header())).collect()));
|
||||
let row = Row {
|
||||
depth: 0,
|
||||
cells: columns.iter().map(|c| Cell::paint(Plain.underline(), c.header())).collect()
|
||||
};
|
||||
|
||||
table.insert(0, row);
|
||||
}
|
||||
|
||||
let column_widths: Vec<usize> = range(0, columns.len())
|
||||
.map(|n| table.iter().map(|row| row.1[n].length).max().unwrap_or(0))
|
||||
.map(|n| table.iter().map(|row| row.cells[n].length).max().unwrap_or(0))
|
||||
.collect();
|
||||
|
||||
for &(depth, ref row) in table.iter() {
|
||||
for _ in range(0, depth) {
|
||||
for row in table.iter() {
|
||||
for _ in range(0, row.depth) {
|
||||
print!("#");
|
||||
}
|
||||
|
||||
@ -154,21 +159,26 @@ fn details_view(columns: &[Column], files: &[File], header: bool, tree: bool) {
|
||||
|
||||
if num == columns.len() - 1 {
|
||||
// The final column doesn't need to have trailing spaces
|
||||
print!("{}", row[num].text);
|
||||
print!("{}", row.cells[num].text);
|
||||
}
|
||||
else {
|
||||
let padding = column_widths[num] - row[num].length;
|
||||
print!("{}", column.alignment().pad_string(&row[num].text, padding));
|
||||
let padding = column_widths[num] - row.cells[num].length;
|
||||
print!("{}", column.alignment().pad_string(&row.cells[num].text, padding));
|
||||
}
|
||||
}
|
||||
print!("\n");
|
||||
}
|
||||
}
|
||||
|
||||
fn get_files(columns: &[Column], cache: &mut OSUsers, recurse: bool, dest: &mut Vec<(usize, Vec<Cell>)>, src: &[File], depth: usize) {
|
||||
fn get_files(columns: &[Column], cache: &mut OSUsers, recurse: bool, dest: &mut Vec<Row>, src: &[File], depth: u8) {
|
||||
for file in src.iter() {
|
||||
let cols = columns.iter().map(|c| file.display(c, cache)).collect();
|
||||
dest.push((depth, cols));
|
||||
|
||||
let row = Row {
|
||||
depth: depth,
|
||||
cells: columns.iter().map(|c| file.display(c, cache)).collect(),
|
||||
};
|
||||
|
||||
dest.push(row);
|
||||
|
||||
if recurse {
|
||||
if let Some(ref dir) = file.this {
|
||||
@ -177,3 +187,8 @@ fn get_files(columns: &[Column], cache: &mut OSUsers, recurse: bool, dest: &mut
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Row {
|
||||
pub depth: u8,
|
||||
pub cells: Vec<Cell>,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user