Skip to content

Commit 0876ad0

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

3 files changed

Lines changed: 47 additions & 37 deletions

File tree

src/filter.rs

Lines changed: 11 additions & 7 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,25 @@ 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(
69+
fill_remaining_lines(
6670
heap,
6771
&root,
6872
display_data,
6973
keep_collapsed,
70-
))
74+
)
7175
}
7276

7377
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: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ mod progress;
1111
mod utils;
1212

1313
use crate::cli::Cli;
14+
use crate::node::FileTime;
15+
use crate::config::Config;
1416
use crate::progress::RuntimeErrors;
17+
use crate::display_node::DisplayNode;
1518
use clap::Parser;
1619
use dir_walker::WalkData;
1720
use display::InitialDisplayData;
@@ -298,32 +301,37 @@ 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(config, options, tree, walk_data.by_filecount, by_filetime, is_colors, terminal_width)
305+
}
318306

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-
}
307+
fn print_output(config: Config, options:Cli, tree :DisplayNode, by_filecount: bool,by_filetime:Option<FileTime>, is_colors: bool, terminal_width: usize) {
308+
309+
let output_format = config.get_output_format(&options);
310+
311+
if config.get_output_json(&options) {
312+
OUTPUT_TYPE.with(|wrapped| {
313+
wrapped.replace(output_format);
314+
});
315+
println!("{}", serde_json::to_string(&tree).unwrap());
316+
} else {
317+
let idd = InitialDisplayData {
318+
short_paths: !config.get_full_paths(&options),
319+
is_reversed: !config.get_reverse(&options),
320+
colors_on: is_colors,
321+
by_filecount,
322+
by_filetime,
323+
is_screen_reader: config.get_screen_reader(&options),
324+
output_format,
325+
bars_on_right: config.get_bars_on_right(&options),
326+
};
327+
328+
draw_it(
329+
idd,
330+
config.get_no_bars(&options),
331+
terminal_width,
332+
&tree,
333+
config.get_skip_total(&options),
334+
)
327335
}
328336
}
329337

0 commit comments

Comments
 (0)