diff options
Diffstat (limited to 'src/io')
-rw-r--r-- | src/io/io_observer.rs | 38 | ||||
-rw-r--r-- | src/io/io_worker.rs | 12 |
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(()) } |