[thin_check (rust)] Change io_engine trait to use slices rather than Vecs
This commit is contained in:
parent
2aa6859502
commit
cdd0beb527
@ -50,10 +50,9 @@ unsafe impl Send for Block {}
|
|||||||
pub trait IoEngine {
|
pub trait IoEngine {
|
||||||
fn get_nr_blocks(&self) -> u64;
|
fn get_nr_blocks(&self) -> u64;
|
||||||
fn read(&self, block: &mut Block) -> Result<()>;
|
fn read(&self, block: &mut Block) -> Result<()>;
|
||||||
// FIXME: change to &[Block]
|
fn read_many(&self, blocks: &mut [Block]) -> Result<()>;
|
||||||
fn read_many(&self, blocks: &mut Vec<Block>) -> Result<()>;
|
|
||||||
fn write(&self, block: &Block) -> Result<()>;
|
fn write(&self, block: &Block) -> Result<()>;
|
||||||
fn write_many(&self, blocks: &Vec<Block>) -> Result<()>;
|
fn write_many(&self, blocks: &[Block]) -> Result<()>;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_nr_blocks(path: &Path) -> io::Result<u64> {
|
fn get_nr_blocks(path: &Path) -> io::Result<u64> {
|
||||||
@ -123,7 +122,7 @@ impl IoEngine for SyncIoEngine {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_many(&self, blocks: &mut Vec<Block>) -> Result<()> {
|
fn read_many(&self, blocks: &mut [Block]) -> Result<()> {
|
||||||
let mut input = self.get();
|
let mut input = self.get();
|
||||||
for b in blocks {
|
for b in blocks {
|
||||||
input.seek(io::SeekFrom::Start(b.loc * BLOCK_SIZE as u64))?;
|
input.seek(io::SeekFrom::Start(b.loc * BLOCK_SIZE as u64))?;
|
||||||
@ -143,7 +142,7 @@ impl IoEngine for SyncIoEngine {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_many(&self, blocks: &Vec<Block>) -> Result<()> {
|
fn write_many(&self, blocks: &[Block]) -> Result<()> {
|
||||||
let mut input = self.get();
|
let mut input = self.get();
|
||||||
for b in blocks {
|
for b in blocks {
|
||||||
input.seek(io::SeekFrom::Start(b.loc * BLOCK_SIZE as u64))?;
|
input.seek(io::SeekFrom::Start(b.loc * BLOCK_SIZE as u64))?;
|
||||||
@ -300,7 +299,7 @@ impl IoEngine for AsyncIoEngine {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_many(&self, blocks: &mut Vec<Block>) -> Result<()> {
|
fn read_many(&self, blocks: &mut [Block]) -> Result<()> {
|
||||||
let inner = self.inner.lock().unwrap();
|
let inner = self.inner.lock().unwrap();
|
||||||
let queue_len = inner.queue_len as usize;
|
let queue_len = inner.queue_len as usize;
|
||||||
drop(inner);
|
drop(inner);
|
||||||
@ -340,7 +339,7 @@ impl IoEngine for AsyncIoEngine {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_many(&self, blocks: &Vec<Block>) -> Result<()> {
|
fn write_many(&self, blocks: &[Block]) -> Result<()> {
|
||||||
let inner = self.inner.lock().unwrap();
|
let inner = self.inner.lock().unwrap();
|
||||||
let queue_len = inner.queue_len as usize;
|
let queue_len = inner.queue_len as usize;
|
||||||
drop(inner);
|
drop(inner);
|
||||||
|
Loading…
Reference in New Issue
Block a user