src/pxar/decoder.rs: require Send

This commit is contained in:
Dietmar Maurer 2019-12-16 09:58:26 +01:00
parent bb084b9c91
commit b9799012cf
2 changed files with 6 additions and 6 deletions

View File

@ -33,7 +33,7 @@ impl <R: Read + Seek> ReadSeek for R {}
// This one needs Read+Seek
pub struct Decoder {
inner: SequentialDecoder<Box<dyn ReadSeek>>,
inner: SequentialDecoder<Box<dyn ReadSeek + Send>>,
root_start: u64,
root_end: u64,
}
@ -42,15 +42,15 @@ const HEADER_SIZE: u64 = std::mem::size_of::<PxarHeader>() as u64;
const GOODBYE_ITEM_SIZE: u64 = std::mem::size_of::<PxarGoodbyeItem>() as u64;
impl Decoder {
pub fn new<R: Read + Seek + 'static>(mut reader: R) -> Result<Self, Error> {
pub fn new<R: Read + Seek + Send + 'static>(mut reader: R) -> Result<Self, Error> {
let root_end = reader.seek(SeekFrom::End(0))?;
let boxed_reader: Box<dyn ReadSeek + 'static> = Box::new(reader);
let boxed_reader: Box<dyn ReadSeek + 'static + Send> = Box::new(reader);
let inner = SequentialDecoder::new(boxed_reader, super::flags::DEFAULT);
Ok(Self { inner, root_start: 0, root_end })
}
pub fn set_callback<F: Fn(&Path) -> Result<(), Error> + 'static>(&mut self, callback: F ) {
pub fn set_callback<F: Fn(&Path) -> Result<(), Error> + Send + 'static>(&mut self, callback: F ) {
self.inner.set_callback(callback);
}

View File

@ -35,7 +35,7 @@ pub struct SequentialDecoder<R: Read> {
feature_flags: u64,
allow_existing_dirs: bool,
skip_buffer: Vec<u8>,
callback: Option<Box<dyn Fn(&Path) -> Result<(), Error>>>,
callback: Option<Box<dyn Fn(&Path) -> Result<(), Error> + Send>>,
}
const HEADER_SIZE: u64 = std::mem::size_of::<PxarHeader>() as u64;
@ -57,7 +57,7 @@ impl<R: Read> SequentialDecoder<R> {
}
}
pub fn set_callback<F: Fn(&Path) -> Result<(), Error> + 'static>(&mut self, callback: F ) {
pub fn set_callback<F: Fn(&Path) -> Result<(), Error> + Send + 'static>(&mut self, callback: F ) {
self.callback = Some(Box::new(callback));
}