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);
|
get_files(columns, &mut cache, tree, &mut table, files, 0);
|
||||||
|
|
||||||
if header {
|
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())
|
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();
|
.collect();
|
||||||
|
|
||||||
for &(depth, ref row) in table.iter() {
|
for row in table.iter() {
|
||||||
for _ in range(0, depth) {
|
for _ in range(0, row.depth) {
|
||||||
print!("#");
|
print!("#");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,21 +159,26 @@ fn details_view(columns: &[Column], files: &[File], header: bool, tree: bool) {
|
|||||||
|
|
||||||
if num == columns.len() - 1 {
|
if num == columns.len() - 1 {
|
||||||
// The final column doesn't need to have trailing spaces
|
// The final column doesn't need to have trailing spaces
|
||||||
print!("{}", row[num].text);
|
print!("{}", row.cells[num].text);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let padding = column_widths[num] - row[num].length;
|
let padding = column_widths[num] - row.cells[num].length;
|
||||||
print!("{}", column.alignment().pad_string(&row[num].text, padding));
|
print!("{}", column.alignment().pad_string(&row.cells[num].text, padding));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print!("\n");
|
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() {
|
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 recurse {
|
||||||
if let Some(ref dir) = file.this {
|
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