feat: display the size of a file or directory in "kilobytes"

feat: display the size of a file or directory in "kilobytes"
This commit is contained in:
zhaotao1
2023-04-10 09:57:40 +08:00
committed by andy.boot
parent a4b5d8573b
commit e9bacdf875
11 changed files with 96 additions and 30 deletions
+21 -7
View File
@@ -77,16 +77,26 @@ pub struct RuntimeErrors {
/* -------------------------------------------------------------------------- */
fn format_preparing_str(prog_char: char, data: &PAtomicInfo, is_iso: bool) -> String {
fn format_preparing_str(
prog_char: char,
data: &PAtomicInfo,
is_iso: bool,
is_display_kb: bool,
) -> String {
let path_in = data.current_path.get();
let size = human_readable_number(data.total_file_size.load(ORDERING), is_iso);
let size = human_readable_number(data.total_file_size.load(ORDERING), is_iso, is_display_kb);
format!("Preparing: {path_in} {size} ... {prog_char}")
}
fn format_indexing_str(prog_char: char, data: &PAtomicInfo, is_iso: bool) -> String {
fn format_indexing_str(
prog_char: char,
data: &PAtomicInfo,
is_iso: bool,
display_kb: bool,
) -> String {
let path_in = data.current_path.get();
let file_count = data.num_files.load(ORDERING);
let size = human_readable_number(data.total_file_size.load(ORDERING), is_iso);
let size = human_readable_number(data.total_file_size.load(ORDERING), is_iso, display_kb);
let file_str = format!("{file_count} files, {size}");
format!("Indexing: {path_in} {file_str} ... {prog_char}")
}
@@ -106,7 +116,7 @@ impl PIndicator {
}
}
pub fn spawn(&mut self, is_iso: bool) {
pub fn spawn(&mut self, is_iso: bool, display_kb: bool) {
let data = self.data.clone();
let (stop_handler, receiver) = mpsc::channel::<()>();
@@ -125,8 +135,12 @@ impl PIndicator {
let prog_char = PROGRESS_CHARS[progress_char_i];
msg = match data.state.load(ORDERING) {
Operation::INDEXING => format_indexing_str(prog_char, &data, is_iso),
Operation::PREPARING => format_preparing_str(prog_char, &data, is_iso),
Operation::INDEXING => {
format_indexing_str(prog_char, &data, is_iso, display_kb)
}
Operation::PREPARING => {
format_preparing_str(prog_char, &data, is_iso, display_kb)
}
_ => panic!("Unknown State"),
};