diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-09-04 15:00:56 -0400 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-09-04 15:00:56 -0400 |
commit | 7741d4d2c8798ad0bb609e97fb3bda86c5318a36 (patch) | |
tree | 0176023bbe8dfff48198ba960f64a08ee785569f /src/context | |
parent | e6e35948545bfa14d672cafae92c2c8c153ba708 (diff) |
io operations now give more information
Diffstat (limited to 'src/context')
-rw-r--r-- | src/context/context.rs | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/context/context.rs b/src/context/context.rs index b29af77..2cf2661 100644 --- a/src/context/context.rs +++ b/src/context/context.rs @@ -4,7 +4,7 @@ use std::thread; use crate::config; use crate::context::{LocalStateContext, TabContext}; -use crate::io::{IOWorkerObserver, IOWorkerProgress, IOWorkerThread}; +use crate::io::{IOWorkerObserver, IOWorkerThread}; use crate::util::event::{Event, Events}; pub struct JoshutoContext { @@ -89,8 +89,9 @@ impl JoshutoContext { s.set_msg(msg); } } - pub fn worker_msg(&self) -> Option<&String> { - self.worker.as_ref().and_then(|s| s.get_msg()) + pub fn worker_msg(&self) -> Option<&str> { + let worker = self.worker.as_ref()?; + Some(worker.get_msg()) } pub fn start_next_job(&mut self) { @@ -99,16 +100,9 @@ impl JoshutoContext { if let Some(worker) = self.worker_queue.pop_front() { let src = worker.paths[0].clone(); let dest = worker.dest.clone(); - let file_op = worker.options.kind; let handle = thread::spawn(move || { let (wtx, wrx) = mpsc::channel(); // start worker - tx.send(Event::IOWorkerProgress(IOWorkerProgress { - kind: worker.options.kind, - index: 0, - len: worker.paths.len(), - processed: 0, - })); let worker_handle = thread::spawn(move || worker.start(wtx)); // relay worker info to event loop while let Ok(progress) = wrx.recv() { |