diff --git a/src/threaded_archiver.rs b/src/threaded_archiver.rs index 88af807..e6a761e 100644 --- a/src/threaded_archiver.rs +++ b/src/threaded_archiver.rs @@ -1,7 +1,7 @@ use futures::prelude::*; use std::io; -use std::path::PathBuf; +use std::path::Path; use std::thread; /* @@ -12,12 +12,13 @@ use std::thread; type Stream = futures::channel::mpsc::Receiver; type Sender = futures::channel::mpsc::Sender; -pub fn stream_tar_in_thread(path: PathBuf) -> Stream { +pub fn stream_tar_in_thread

(path: P) -> Stream + where P: AsRef + Send + 'static { let (writer, stream) = StreamWriter::new(64); thread::spawn(move || { let mut a = tar::Builder::new(writer); - let last_path_component = path.file_name().unwrap(); + let last_path_component = path.as_ref().file_name().unwrap(); a.mode(tar::HeaderMode::Deterministic); a.append_dir_all(last_path_component, &path) .unwrap_or_else(|e| println!("{}", e));