pub trait WasiUnstable {
Show 46 methods
// Required methods
fn args_get(
&mut self,
mem: &mut GuestMemory<'_>,
argv: GuestPtr<GuestPtr<u8>>,
argv_buf: GuestPtr<u8>,
) -> Result<(), Error>;
fn args_sizes_get(
&mut self,
mem: &mut GuestMemory<'_>,
) -> Result<(Size, Size), Error>;
fn environ_get(
&mut self,
mem: &mut GuestMemory<'_>,
environ: GuestPtr<GuestPtr<u8>>,
environ_buf: GuestPtr<u8>,
) -> Result<(), Error>;
fn environ_sizes_get(
&mut self,
mem: &mut GuestMemory<'_>,
) -> Result<(Size, Size), Error>;
fn clock_res_get(
&mut self,
mem: &mut GuestMemory<'_>,
id: Clockid,
) -> Result<Timestamp, Error>;
fn clock_time_get(
&mut self,
mem: &mut GuestMemory<'_>,
id: Clockid,
precision: Timestamp,
) -> Result<Timestamp, Error>;
fn fd_advise(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
offset: Filesize,
len: Filesize,
advice: Advice,
) -> impl Future<Output = Result<(), Error>> + Send;
fn fd_allocate(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
offset: Filesize,
len: Filesize,
) -> Result<(), Error>;
fn fd_close(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> impl Future<Output = Result<(), Error>> + Send;
fn fd_datasync(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> impl Future<Output = Result<(), Error>> + Send;
fn fd_fdstat_get(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> impl Future<Output = Result<Fdstat, Error>> + Send;
fn fd_fdstat_set_flags(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
flags: Fdflags,
) -> Result<(), Error>;
fn fd_fdstat_set_rights(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
fs_rights_base: Rights,
fs_rights_inheriting: Rights,
) -> Result<(), Error>;
fn fd_filestat_get(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> impl Future<Output = Result<Filestat, Error>> + Send;
fn fd_filestat_set_size(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
size: Filesize,
) -> impl Future<Output = Result<(), Error>> + Send;
fn fd_filestat_set_times(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
atim: Timestamp,
mtim: Timestamp,
fst_flags: Fstflags,
) -> impl Future<Output = Result<(), Error>> + Send;
fn fd_pread(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
iovs: IovecArray,
offset: Filesize,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn fd_prestat_get(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> Result<Prestat, Error>;
fn fd_prestat_dir_name(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
path: GuestPtr<u8>,
path_len: Size,
) -> Result<(), Error>;
fn fd_pwrite(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
iovs: CiovecArray,
offset: Filesize,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn fd_read(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
iovs: IovecArray,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn fd_readdir(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
buf: GuestPtr<u8>,
buf_len: Size,
cookie: Dircookie,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn fd_renumber(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
to: Fd,
) -> Result<(), Error>;
fn fd_seek(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
offset: Filedelta,
whence: Whence,
) -> impl Future<Output = Result<Filesize, Error>> + Send;
fn fd_sync(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> impl Future<Output = Result<(), Error>> + Send;
fn fd_tell(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
) -> Result<Filesize, Error>;
fn fd_write(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
iovs: CiovecArray,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn path_create_directory(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
path: GuestPtr<str>,
) -> impl Future<Output = Result<(), Error>> + Send;
fn path_filestat_get(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
flags: Lookupflags,
path: GuestPtr<str>,
) -> impl Future<Output = Result<Filestat, Error>> + Send;
fn path_filestat_set_times(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
flags: Lookupflags,
path: GuestPtr<str>,
atim: Timestamp,
mtim: Timestamp,
fst_flags: Fstflags,
) -> impl Future<Output = Result<(), Error>> + Send;
fn path_link(
&mut self,
mem: &mut GuestMemory<'_>,
old_fd: Fd,
old_flags: Lookupflags,
old_path: GuestPtr<str>,
new_fd: Fd,
new_path: GuestPtr<str>,
) -> impl Future<Output = Result<(), Error>> + Send;
fn path_open(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
dirflags: Lookupflags,
path: GuestPtr<str>,
oflags: Oflags,
fs_rights_base: Rights,
fs_rights_inheriting: Rights,
fdflags: Fdflags,
) -> impl Future<Output = Result<Fd, Error>> + Send;
fn path_readlink(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
path: GuestPtr<str>,
buf: GuestPtr<u8>,
buf_len: Size,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn path_remove_directory(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
path: GuestPtr<str>,
) -> impl Future<Output = Result<(), Error>> + Send;
fn path_rename(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
old_path: GuestPtr<str>,
new_fd: Fd,
new_path: GuestPtr<str>,
) -> impl Future<Output = Result<(), Error>> + Send;
fn path_symlink(
&mut self,
mem: &mut GuestMemory<'_>,
old_path: GuestPtr<str>,
fd: Fd,
new_path: GuestPtr<str>,
) -> impl Future<Output = Result<(), Error>> + Send;
fn path_unlink_file(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
path: GuestPtr<str>,
) -> impl Future<Output = Result<(), Error>> + Send;
fn poll_oneoff(
&mut self,
mem: &mut GuestMemory<'_>,
in_: GuestPtr<Subscription>,
out: GuestPtr<Event>,
nsubscriptions: Size,
) -> impl Future<Output = Result<Size, Error>> + Send;
fn proc_exit(&mut self, mem: &mut GuestMemory<'_>, rval: Exitcode) -> Error;
fn proc_raise(
&mut self,
mem: &mut GuestMemory<'_>,
sig: Signal,
) -> Result<(), Error>;
fn sched_yield(&mut self, mem: &mut GuestMemory<'_>) -> Result<(), Error>;
fn random_get(
&mut self,
mem: &mut GuestMemory<'_>,
buf: GuestPtr<u8>,
buf_len: Size,
) -> Result<(), Error>;
fn sock_recv(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
ri_data: IovecArray,
ri_flags: Riflags,
) -> Result<(Size, Roflags), Error>;
fn sock_send(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
si_data: CiovecArray,
si_flags: Siflags,
) -> Result<Size, Error>;
fn sock_shutdown(
&mut self,
mem: &mut GuestMemory<'_>,
fd: Fd,
how: Sdflags,
) -> Result<(), Error>;
// Provided method
fn set_hostcall_fuel(&mut self, fuel: usize) { ... }
}Available on crate feature
p1 only.Required Methods§
fn args_get( &mut self, mem: &mut GuestMemory<'_>, argv: GuestPtr<GuestPtr<u8>>, argv_buf: GuestPtr<u8>, ) -> Result<(), Error>
fn args_sizes_get( &mut self, mem: &mut GuestMemory<'_>, ) -> Result<(Size, Size), Error>
fn environ_get( &mut self, mem: &mut GuestMemory<'_>, environ: GuestPtr<GuestPtr<u8>>, environ_buf: GuestPtr<u8>, ) -> Result<(), Error>
fn environ_sizes_get( &mut self, mem: &mut GuestMemory<'_>, ) -> Result<(Size, Size), Error>
fn clock_res_get( &mut self, mem: &mut GuestMemory<'_>, id: Clockid, ) -> Result<Timestamp, Error>
fn clock_time_get( &mut self, mem: &mut GuestMemory<'_>, id: Clockid, precision: Timestamp, ) -> Result<Timestamp, Error>
fn fd_advise( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, offset: Filesize, len: Filesize, advice: Advice, ) -> impl Future<Output = Result<(), Error>> + Send
fn fd_allocate( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, offset: Filesize, len: Filesize, ) -> Result<(), Error>
fn fd_close( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> impl Future<Output = Result<(), Error>> + Send
fn fd_datasync( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> impl Future<Output = Result<(), Error>> + Send
fn fd_fdstat_get( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> impl Future<Output = Result<Fdstat, Error>> + Send
fn fd_fdstat_set_flags( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, flags: Fdflags, ) -> Result<(), Error>
fn fd_fdstat_set_rights( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, fs_rights_base: Rights, fs_rights_inheriting: Rights, ) -> Result<(), Error>
fn fd_filestat_get( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> impl Future<Output = Result<Filestat, Error>> + Send
fn fd_filestat_set_size( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, size: Filesize, ) -> impl Future<Output = Result<(), Error>> + Send
fn fd_filestat_set_times( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, atim: Timestamp, mtim: Timestamp, fst_flags: Fstflags, ) -> impl Future<Output = Result<(), Error>> + Send
fn fd_pread( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, iovs: IovecArray, offset: Filesize, ) -> impl Future<Output = Result<Size, Error>> + Send
fn fd_prestat_get( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> Result<Prestat, Error>
fn fd_prestat_dir_name( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, path: GuestPtr<u8>, path_len: Size, ) -> Result<(), Error>
fn fd_pwrite( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, iovs: CiovecArray, offset: Filesize, ) -> impl Future<Output = Result<Size, Error>> + Send
fn fd_read( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, iovs: IovecArray, ) -> impl Future<Output = Result<Size, Error>> + Send
fn fd_readdir( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, buf: GuestPtr<u8>, buf_len: Size, cookie: Dircookie, ) -> impl Future<Output = Result<Size, Error>> + Send
fn fd_renumber( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, to: Fd, ) -> Result<(), Error>
fn fd_seek( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, offset: Filedelta, whence: Whence, ) -> impl Future<Output = Result<Filesize, Error>> + Send
fn fd_sync( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> impl Future<Output = Result<(), Error>> + Send
fn fd_tell( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ) -> Result<Filesize, Error>
fn fd_write( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, iovs: CiovecArray, ) -> impl Future<Output = Result<Size, Error>> + Send
fn path_create_directory( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, path: GuestPtr<str>, ) -> impl Future<Output = Result<(), Error>> + Send
fn path_filestat_get( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, flags: Lookupflags, path: GuestPtr<str>, ) -> impl Future<Output = Result<Filestat, Error>> + Send
fn path_filestat_set_times( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, flags: Lookupflags, path: GuestPtr<str>, atim: Timestamp, mtim: Timestamp, fst_flags: Fstflags, ) -> impl Future<Output = Result<(), Error>> + Send
fn path_link( &mut self, mem: &mut GuestMemory<'_>, old_fd: Fd, old_flags: Lookupflags, old_path: GuestPtr<str>, new_fd: Fd, new_path: GuestPtr<str>, ) -> impl Future<Output = Result<(), Error>> + Send
fn path_open( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, dirflags: Lookupflags, path: GuestPtr<str>, oflags: Oflags, fs_rights_base: Rights, fs_rights_inheriting: Rights, fdflags: Fdflags, ) -> impl Future<Output = Result<Fd, Error>> + Send
fn path_readlink( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, path: GuestPtr<str>, buf: GuestPtr<u8>, buf_len: Size, ) -> impl Future<Output = Result<Size, Error>> + Send
fn path_remove_directory( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, path: GuestPtr<str>, ) -> impl Future<Output = Result<(), Error>> + Send
fn path_rename( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, old_path: GuestPtr<str>, new_fd: Fd, new_path: GuestPtr<str>, ) -> impl Future<Output = Result<(), Error>> + Send
fn path_symlink( &mut self, mem: &mut GuestMemory<'_>, old_path: GuestPtr<str>, fd: Fd, new_path: GuestPtr<str>, ) -> impl Future<Output = Result<(), Error>> + Send
fn path_unlink_file( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, path: GuestPtr<str>, ) -> impl Future<Output = Result<(), Error>> + Send
fn poll_oneoff( &mut self, mem: &mut GuestMemory<'_>, in_: GuestPtr<Subscription>, out: GuestPtr<Event>, nsubscriptions: Size, ) -> impl Future<Output = Result<Size, Error>> + Send
fn proc_exit(&mut self, mem: &mut GuestMemory<'_>, rval: Exitcode) -> Error
fn proc_raise( &mut self, mem: &mut GuestMemory<'_>, sig: Signal, ) -> Result<(), Error>
fn sched_yield(&mut self, mem: &mut GuestMemory<'_>) -> Result<(), Error>
fn random_get( &mut self, mem: &mut GuestMemory<'_>, buf: GuestPtr<u8>, buf_len: Size, ) -> Result<(), Error>
fn sock_recv( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, ri_data: IovecArray, ri_flags: Riflags, ) -> Result<(Size, Roflags), Error>
fn sock_send( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, si_data: CiovecArray, si_flags: Siflags, ) -> Result<Size, Error>
fn sock_shutdown( &mut self, mem: &mut GuestMemory<'_>, fd: Fd, how: Sdflags, ) -> Result<(), Error>
Provided Methods§
Sourcefn set_hostcall_fuel(&mut self, fuel: usize)
fn set_hostcall_fuel(&mut self, fuel: usize)
Indicates, if this implementation supports it, that the specified amount of fuel should be the maximal spent for the upcoming function call.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.