Browse Source

Add read method to fs File

pull/10/head
panicbit 8 years ago
parent
commit
94e927f967
  1. 29
      src/services/fs.rs

29
src/services/fs.rs

@ -53,6 +53,7 @@ pub struct Archive { @@ -53,6 +53,7 @@ pub struct Archive {
pub struct File {
handle: u32,
offset: u64,
}
pub struct OpenOptions {
@ -111,6 +112,29 @@ impl Archive { @@ -111,6 +112,29 @@ impl Archive {
}
}
impl File {
pub fn read(&mut self, buf: &mut [u8]) -> Result<u32, i32> {
unsafe {
let mut n_read = 0;
let r = FSFILE_Read(
self.handle,
&mut n_read,
self.offset,
buf.as_mut_ptr() as _,
buf.len() as u32
);
self.offset += n_read as u64;
if r < 0 {
Err(r)
} else {
Ok(n_read)
}
}
}
}
impl OpenOptions {
pub fn read(&mut self, read: bool) -> &mut OpenOptions {
self.read = read;
@ -140,7 +164,10 @@ impl OpenOptions { @@ -140,7 +164,10 @@ impl OpenOptions {
if ret < 0 {
Err(ret)
} else {
Ok(File { handle: file_handle })
Ok(File {
handle: file_handle,
offset: 0,
})
}
}
}

Loading…
Cancel
Save