Mercurial > lbo > hg > sstable
changeset 70:edfa0acbae13
Merge pull request #2 from thomaskrause/feature/windows-support
Implement RandomAccess for File on Windows.
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Mon, 17 Feb 2020 10:52:52 +0100 |
parents | cf194f28e5ec (current diff) b3aba9007285 (diff) |
children | 8231d8560815 |
files | |
diffstat | 2 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/.travis.yml Mon Feb 17 10:39:34 2020 +0100 +++ b/.travis.yml Mon Feb 17 10:52:52 2020 +0100 @@ -1,6 +1,7 @@ os: - linux - osx + - windows dist: bionic sudo: false addons:
--- a/src/types.rs Mon Feb 17 10:39:34 2020 +0100 +++ b/src/types.rs Mon Feb 17 10:52:52 2020 +0100 @@ -4,7 +4,10 @@ use std::cell::RefCell; use std::fs::File; +#[cfg(unix)] use std::os::unix::fs::FileExt; +#[cfg(windows)] +use std::os::windows::fs::FileExt; use std::rc::Rc; pub trait RandomAccess { @@ -31,12 +34,20 @@ } } +#[cfg(unix)] impl RandomAccess for File { fn read_at(&self, off: usize, dst: &mut [u8]) -> Result<usize> { Ok((self as &dyn FileExt).read_at(dst, off as u64)?) } } +#[cfg(windows)] +impl RandomAccess for File { + fn read_at(&self, off: usize, dst: &mut [u8]) -> Result<usize> { + Ok((self as &dyn FileExt).seek_read(dst, off as u64)?) + } +} + /// A shared thingy with interior mutability. pub type Shared<T> = Rc<RefCell<T>>;