src/pxar/decoder.rs: require Send
This commit is contained in:
		@ -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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user