wasi-common: break dep on system-interface by defining our own Advice enum

This commit is contained in:
Pat Hickey
2021-01-29 17:03:08 -08:00
parent 2e10e621c4
commit 95ad13c82d
8 changed files with 47 additions and 25 deletions

View File

@@ -4,11 +4,11 @@ use std::any::Any;
use std::convert::TryInto;
use std::io;
use system_interface::{
fs::{Advice, FileIoExt, GetSetFdFlags},
fs::{FileIoExt, GetSetFdFlags},
io::ReadReady,
};
use wasi_common::{
file::{FdFlags, FileType, Filestat, WasiFile},
file::{Advice, FdFlags, FileType, Filestat, WasiFile},
Error,
};
@@ -61,7 +61,7 @@ impl WasiFile for File {
Ok(())
}
fn advise(&self, offset: u64, len: u64, advice: Advice) -> Result<(), Error> {
self.0.advise(offset, len, advice)?;
self.0.advise(offset, len, convert_advice(advice))?;
Ok(())
}
fn allocate(&self, offset: u64, len: u64) -> Result<(), Error> {
@@ -193,3 +193,13 @@ pub fn from_sysif_fdflags(f: system_interface::fs::FdFlags) -> wasi_common::file
}
out
}
pub fn convert_advice(advice: Advice) -> system_interface::fs::Advice {
match advice {
Advice::Normal => system_interface::fs::Advice::Normal,
Advice::Sequential => system_interface::fs::Advice::Sequential,
Advice::Random => system_interface::fs::Advice::Random,
Advice::WillNeed => system_interface::fs::Advice::WillNeed,
Advice::DontNeed => system_interface::fs::Advice::DontNeed,
Advice::NoReuse => system_interface::fs::Advice::NoReuse,
}
}

View File

@@ -4,7 +4,7 @@ use std::any::Any;
use std::convert::TryInto;
use std::io;
use std::io::{Read, Write};
use system_interface::{fs::Advice, io::ReadReady};
use system_interface::io::ReadReady;
#[cfg(unix)]
use std::os::unix::io::{AsRawFd, RawFd};
@@ -12,7 +12,7 @@ use std::os::unix::io::{AsRawFd, RawFd};
use std::os::windows::io::{AsRawHandle, RawHandle};
use unsafe_io::AsUnsafeFile;
use wasi_common::{
file::{FdFlags, FileType, Filestat, WasiFile},
file::{Advice, FdFlags, FileType, Filestat, WasiFile},
Error, ErrorExt,
};