summaryrefslogtreecommitdiffstats
path: root/src/io
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2020-12-13 12:42:53 -0500
committerJiayi Zhao <jeff.no.zhao@gmail.com>2020-12-13 12:42:53 -0500
commit2e5cdd07c2d8c18bad4099c82e36af64dc473a64 (patch)
treea9d7dee0f5a603cc96d6415a4549436a0f1818e0 /src/io
parent468e607c5d1cd5d554ae356fd3c8e78425840347 (diff)
code cleanup and fix path not showing when too long
Diffstat (limited to 'src/io')
-rw-r--r--src/io/io_observer.rs38
-rw-r--r--src/io/io_worker.rs12
2 files changed, 22 insertions, 28 deletions
diff --git a/src/io/io_observer.rs b/src/io/io_observer.rs
index 0648fbd..532b6f5 100644
--- a/src/io/io_observer.rs
+++ b/src/io/io_observer.rs
@@ -25,10 +25,7 @@ impl IOWorkerObserver {
}
pub fn join(self) -> bool {
- match self.handle.join() {
- Ok(_) => true,
- _ => false,
- }
+ matches!(self.handle.join(), Ok(_))
}
pub fn set_progress(&mut self, progress: IOWorkerProgress) {
self.progress = Some(progress);
@@ -38,26 +35,19 @@ impl IOWorkerObserver {
None => {}
Some(progress) => {
let size_str = format::file_size_to_string(progress.processed());
- match progress.kind() {
- FileOp::Cut => {
- let msg = format!(
- "moving ({}/{}) {} completed",
- progress.index() + 1,
- progress.len(),
- size_str
- );
- self.msg = msg;
- }
- FileOp::Copy => {
- let msg = format!(
- "copying ({}/{}) {} completed",
- progress.index() + 1,
- progress.len(),
- size_str
- );
- self.msg = msg;
- }
- }
+ let op_str = match progress.kind() {
+ FileOp::Cut => "Moving",
+ FileOp::Copy => "Copying",
+ };
+
+ let msg = format!(
+ "{} ({}/{}) {} completed",
+ op_str,
+ progress.index() + 1,
+ progress.len(),
+ size_str
+ );
+ self.msg = msg;
}
}
}
diff --git a/src/io/io_worker.rs b/src/io/io_worker.rs
index f44a2e6..58347ee 100644
--- a/src/io/io_worker.rs
+++ b/src/io/io_worker.rs
@@ -160,7 +160,8 @@ impl IOWorkerThread {
}
Ok(())
} else if file_type.is_file() {
- progress._processed += fs::copy(src, dest_buf)?;
+ let processed = progress.processed() + fs::copy(src, dest_buf)?;
+ progress.set_processed(processed);
Ok(())
} else if file_type.is_symlink() {
let link_path = fs::read_link(src)?;
@@ -208,7 +209,8 @@ impl IOWorkerThread {
if file_type.is_dir() {
match fs::rename(src, dest_buf.as_path()) {
Ok(_) => {
- progress._processed += metadata.len();
+ let processed = progress.processed() + metadata.len();
+ progress.set_processed(processed);
}
Err(_) => {
fs::create_dir(dest_buf.as_path())?;
@@ -228,13 +230,15 @@ impl IOWorkerThread {
if fs::rename(src, dest_buf.as_path()).is_err() {
fs::copy(src, dest_buf.as_path())?;
fs::remove_file(src)?;
- progress._processed += metadata.len();
+ let processed = progress.processed() + metadata.len();
+ progress.set_processed(processed);
}
} else if file_type.is_symlink() {
let link_path = fs::read_link(src)?;
std::os::unix::fs::symlink(link_path, dest_buf)?;
fs::remove_file(src)?;
- progress._processed += metadata.len();
+ let processed = progress.processed() + metadata.len();
+ progress.set_processed(processed);
}
Ok(())
}