src/backup/dynamic_index.rs: add chunk_info method
This commit is contained in:
		@ -130,6 +130,23 @@ impl DynamicIndexReader {
 | 
			
		||||
        Ok(())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn chunk_info(&self, pos: usize) -> Result<(u64, u64, [u8; 32]), Error> {
 | 
			
		||||
        if pos >= self.index_entries {
 | 
			
		||||
            bail!("chunk index out of range");
 | 
			
		||||
        }
 | 
			
		||||
        let start = if pos == 0 {
 | 
			
		||||
            0
 | 
			
		||||
        } else {
 | 
			
		||||
            unsafe { *(self.index.add((pos-1)*40) as *const u64) }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        let end = unsafe { *(self.index.add(pos*40) as *const u64) };
 | 
			
		||||
        let mut digest: [u8; 32] = unsafe { std::mem::uninitialized() };
 | 
			
		||||
        unsafe { std::ptr::copy_nonoverlapping(self.index.add(pos*40+8), digest.as_mut_ptr(), 32); }
 | 
			
		||||
 | 
			
		||||
        Ok((start, end, digest))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[inline]
 | 
			
		||||
    fn chunk_end(&self, pos: usize) -> u64 {
 | 
			
		||||
        if pos >= self.index_entries {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user