Skip to content

Commit a35d962

Browse files
committed
refactor: pull out more methods, remove unused Option
1 parent 5ca5d09 commit a35d962

3 files changed

Lines changed: 61 additions & 41 deletions

File tree

src/filter.rs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,7 @@ pub fn get_biggest(
2525
display_data: AggregateData,
2626
by_filetime: &Option<FileTime>,
2727
keep_collapsed: HashSet<PathBuf>,
28-
) -> Option<DisplayNode> {
29-
if top_level_nodes.is_empty() {
30-
// perhaps change this, bring back Error object?
31-
return None;
32-
}
28+
) -> DisplayNode {
3329
let mut heap = BinaryHeap::new();
3430
let number_top_level_nodes = top_level_nodes.len();
3531
let root;
@@ -57,17 +53,20 @@ pub fn get_biggest(
5753

5854
// Always include the base nodes if we add a 'parent' (total) node
5955
heap = always_add_children(&display_data, &root, heap);
56+
} else if number_top_level_nodes == 0 {
57+
root = Node {
58+
name: PathBuf::from("(total)"),
59+
size: 0,
60+
children: vec![],
61+
inode_device: None,
62+
depth: 0,
63+
}
6064
} else {
6165
root = top_level_nodes.into_iter().next().unwrap();
6266
heap = add_children(&display_data, &root, heap);
6367
}
6468

65-
Some(fill_remaining_lines(
66-
heap,
67-
&root,
68-
display_data,
69-
keep_collapsed,
70-
))
69+
fill_remaining_lines(heap, &root, display_data, keep_collapsed)
7170
}
7271

7372
pub fn fill_remaining_lines<'a>(

src/filter_type.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn get_all_file_types(
1515
top_level_nodes: &[Node],
1616
n: usize,
1717
by_filetime: &Option<FileTime>,
18-
) -> Option<DisplayNode> {
18+
) -> DisplayNode {
1919
let ext_nodes = {
2020
let mut extension_cumulative_sizes = HashMap::new();
2121
build_by_all_file_types(top_level_nodes, &mut extension_cumulative_sizes);
@@ -67,13 +67,11 @@ pub fn get_all_file_types(
6767
displayed.iter().map(|node| node.size).sum()
6868
};
6969

70-
let result = DisplayNode {
70+
DisplayNode {
7171
name: PathBuf::from("(total)"),
7272
size: actual_size,
7373
children: displayed,
74-
};
75-
76-
Some(result)
74+
}
7775
}
7876

7977
fn build_by_all_file_types<'a>(

src/main.rs

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ mod progress;
1111
mod utils;
1212

1313
use crate::cli::Cli;
14+
use crate::config::Config;
15+
use crate::display_node::DisplayNode;
16+
use crate::node::FileTime;
1417
use crate::progress::RuntimeErrors;
1518
use clap::Parser;
1619
use dir_walker::WalkData;
@@ -298,32 +301,52 @@ fn main() {
298301
let print_errors = config.get_print_errors(&options);
299302
print_any_errors(print_errors, walk_data.errors);
300303

301-
if let Some(root_node) = tree {
302-
if config.get_output_json(&options) {
303-
OUTPUT_TYPE.with(|wrapped| {
304-
wrapped.replace(output_format);
305-
});
306-
println!("{}", serde_json::to_string(&root_node).unwrap());
307-
} else {
308-
let idd = InitialDisplayData {
309-
short_paths: !config.get_full_paths(&options),
310-
is_reversed: !config.get_reverse(&options),
311-
colors_on: is_colors,
312-
by_filecount,
313-
by_filetime,
314-
is_screen_reader: config.get_screen_reader(&options),
315-
output_format,
316-
bars_on_right: config.get_bars_on_right(&options),
317-
};
304+
print_output(
305+
config,
306+
options,
307+
tree,
308+
walk_data.by_filecount,
309+
by_filetime,
310+
is_colors,
311+
terminal_width,
312+
)
313+
}
318314

319-
draw_it(
320-
idd,
321-
config.get_no_bars(&options),
322-
terminal_width,
323-
&root_node,
324-
config.get_skip_total(&options),
325-
)
326-
}
315+
fn print_output(
316+
config: Config,
317+
options: Cli,
318+
tree: DisplayNode,
319+
by_filecount: bool,
320+
by_filetime: Option<FileTime>,
321+
is_colors: bool,
322+
terminal_width: usize,
323+
) {
324+
let output_format = config.get_output_format(&options);
325+
326+
if config.get_output_json(&options) {
327+
OUTPUT_TYPE.with(|wrapped| {
328+
wrapped.replace(output_format);
329+
});
330+
println!("{}", serde_json::to_string(&tree).unwrap());
331+
} else {
332+
let idd = InitialDisplayData {
333+
short_paths: !config.get_full_paths(&options),
334+
is_reversed: !config.get_reverse(&options),
335+
colors_on: is_colors,
336+
by_filecount,
337+
by_filetime,
338+
is_screen_reader: config.get_screen_reader(&options),
339+
output_format,
340+
bars_on_right: config.get_bars_on_right(&options),
341+
};
342+
343+
draw_it(
344+
idd,
345+
config.get_no_bars(&options),
346+
terminal_width,
347+
&tree,
348+
config.get_skip_total(&options),
349+
)
327350
}
328351
}
329352

0 commit comments

Comments
 (0)