pub struct WasiFilesystem;
Expand description
A helper struct which implements HasData
for the wasi:filesystem
APIs.
This can be useful when directly calling add_to_linker
functions directly,
such as [wasmtime_wasi::p2::bindings::filesystem::types::add_to_linker
] as
the D
type parameter. See HasData
for more information about the type
parameter’s purpose.
When using this type you can skip the WasiFilesystemView
trait, for
example.
§Examples
use wasmtime::component::{Linker, ResourceTable};
use wasmtime::{Engine, Result, Config};
use wasmtime_wasi::filesystem::*;
struct MyStoreState {
table: ResourceTable,
filesystem: WasiFilesystemCtx,
}
fn main() -> Result<()> {
let mut config = Config::new();
config.async_support(true);
let engine = Engine::new(&config)?;
let mut linker = Linker::new(&engine);
wasmtime_wasi::p2::bindings::filesystem::types::add_to_linker::<MyStoreState, WasiFilesystem>(
&mut linker,
|state| WasiFilesystemCtxView {
table: &mut state.table,
ctx: &mut state.filesystem,
},
)?;
Ok(())
}
Trait Implementations§
Source§impl HasData for WasiFilesystem
impl HasData for WasiFilesystem
Source§type Data<'a> = WasiFilesystemCtxView<'a>
type Data<'a> = WasiFilesystemCtxView<'a>
The data associated with this trait implementation, chiefly used as a
generic associated type to allow plumbing the
'a
lifetime into the
definition here. Read moreSource§impl HostDescriptorWithStore for WasiFilesystem
Available on crate feature p3
only.
impl HostDescriptorWithStore for WasiFilesystem
Available on crate feature
p3
only.Source§async fn read_via_stream<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
offset: Filesize,
) -> Result<(StreamReader<u8>, FutureReader<Result<(), ErrorCode>>)>
async fn read_via_stream<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, offset: Filesize, ) -> Result<(StreamReader<u8>, FutureReader<Result<(), ErrorCode>>)>
Return a stream for reading from a file. Read more
Source§async fn write_via_stream<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
data: StreamReader<u8>,
offset: Filesize,
) -> FilesystemResult<()>
async fn write_via_stream<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, data: StreamReader<u8>, offset: Filesize, ) -> FilesystemResult<()>
Return a stream for writing to a file, if available. Read more
Source§async fn append_via_stream<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
data: StreamReader<u8>,
) -> FilesystemResult<()>
async fn append_via_stream<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, data: StreamReader<u8>, ) -> FilesystemResult<()>
Return a stream for appending to a file, if available. Read more
Source§async fn advise<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
offset: Filesize,
length: Filesize,
advice: Advice,
) -> FilesystemResult<()>
async fn advise<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, offset: Filesize, length: Filesize, advice: Advice, ) -> FilesystemResult<()>
Provide file advisory information on a descriptor. Read more
Source§async fn sync_data<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> FilesystemResult<()>
async fn sync_data<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> FilesystemResult<()>
Synchronize the data of a file to disk. Read more
Source§async fn get_flags<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> FilesystemResult<DescriptorFlags>
async fn get_flags<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> FilesystemResult<DescriptorFlags>
Get flags associated with a descriptor. Read more
Source§async fn get_type<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> FilesystemResult<DescriptorType>
async fn get_type<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> FilesystemResult<DescriptorType>
Get the dynamic type of a descriptor. Read more
Source§async fn set_size<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
size: Filesize,
) -> FilesystemResult<()>
async fn set_size<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, size: Filesize, ) -> FilesystemResult<()>
Adjust the size of an open file. If this increases the file’s size, the
extra bytes are filled with zeros. Read more
Source§async fn set_times<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
data_access_timestamp: NewTimestamp,
data_modification_timestamp: NewTimestamp,
) -> FilesystemResult<()>
async fn set_times<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, data_access_timestamp: NewTimestamp, data_modification_timestamp: NewTimestamp, ) -> FilesystemResult<()>
Adjust the timestamps of an open file or directory. Read more
Source§async fn read_directory<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> Result<(StreamReader<DirectoryEntry>, FutureReader<Result<(), ErrorCode>>)>
async fn read_directory<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> Result<(StreamReader<DirectoryEntry>, FutureReader<Result<(), ErrorCode>>)>
Read directory entries from a directory. Read more
Source§async fn sync<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> FilesystemResult<()>
async fn sync<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> FilesystemResult<()>
Synchronize the data and metadata of a file to disk. Read more
Source§async fn create_directory_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path: String,
) -> FilesystemResult<()>
async fn create_directory_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path: String, ) -> FilesystemResult<()>
Create a directory. Read more
Source§async fn stat<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> FilesystemResult<DescriptorStat>
async fn stat<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> FilesystemResult<DescriptorStat>
Return the attributes of an open file or directory. Read more
Source§async fn stat_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path_flags: PathFlags,
path: String,
) -> FilesystemResult<DescriptorStat>
async fn stat_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path_flags: PathFlags, path: String, ) -> FilesystemResult<DescriptorStat>
Return the attributes of a file or directory. Read more
Source§async fn set_times_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path_flags: PathFlags,
path: String,
data_access_timestamp: NewTimestamp,
data_modification_timestamp: NewTimestamp,
) -> FilesystemResult<()>
async fn set_times_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path_flags: PathFlags, path: String, data_access_timestamp: NewTimestamp, data_modification_timestamp: NewTimestamp, ) -> FilesystemResult<()>
Adjust the timestamps of a file or directory. Read more
Source§async fn link_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
old_path_flags: PathFlags,
old_path: String,
new_fd: Resource<Descriptor>,
new_path: String,
) -> FilesystemResult<()>
async fn link_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, old_path_flags: PathFlags, old_path: String, new_fd: Resource<Descriptor>, new_path: String, ) -> FilesystemResult<()>
Create a hard link. Read more
Source§async fn open_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path_flags: PathFlags,
path: String,
open_flags: OpenFlags,
flags: DescriptorFlags,
) -> FilesystemResult<Resource<Descriptor>>
async fn open_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path_flags: PathFlags, path: String, open_flags: OpenFlags, flags: DescriptorFlags, ) -> FilesystemResult<Resource<Descriptor>>
Open a file or directory. Read more
Source§async fn readlink_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path: String,
) -> FilesystemResult<String>
async fn readlink_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path: String, ) -> FilesystemResult<String>
Read the contents of a symbolic link. Read more
Source§async fn remove_directory_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path: String,
) -> FilesystemResult<()>
async fn remove_directory_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path: String, ) -> FilesystemResult<()>
Remove a directory. Read more
Source§async fn rename_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
old_path: String,
new_fd: Resource<Descriptor>,
new_path: String,
) -> FilesystemResult<()>
async fn rename_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, old_path: String, new_fd: Resource<Descriptor>, new_path: String, ) -> FilesystemResult<()>
Rename a filesystem object. Read more
Source§async fn symlink_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
old_path: String,
new_path: String,
) -> FilesystemResult<()>
async fn symlink_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, old_path: String, new_path: String, ) -> FilesystemResult<()>
Create a symbolic link (also known as a “symlink”). Read more
Source§async fn unlink_file_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path: String,
) -> FilesystemResult<()>
async fn unlink_file_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path: String, ) -> FilesystemResult<()>
Unlink a filesystem object that is not a directory. Read more
Source§async fn is_same_object<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
other: Resource<Descriptor>,
) -> Result<bool>
async fn is_same_object<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, other: Resource<Descriptor>, ) -> Result<bool>
Test whether two descriptors refer to the same filesystem object. Read more
Source§async fn metadata_hash<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
) -> FilesystemResult<MetadataHashValue>
async fn metadata_hash<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, ) -> FilesystemResult<MetadataHashValue>
Return a hash of the metadata associated with a filesystem object referred
to by a descriptor. Read more
Source§async fn metadata_hash_at<U>(
store: &Accessor<U, Self>,
fd: Resource<Descriptor>,
path_flags: PathFlags,
path: String,
) -> FilesystemResult<MetadataHashValue>
async fn metadata_hash_at<U>( store: &Accessor<U, Self>, fd: Resource<Descriptor>, path_flags: PathFlags, path: String, ) -> FilesystemResult<MetadataHashValue>
Return a hash of the metadata associated with a filesystem object referred
to by a directory descriptor and a relative path. Read more
Auto Trait Implementations§
impl Freeze for WasiFilesystem
impl RefUnwindSafe for WasiFilesystem
impl Send for WasiFilesystem
impl Sync for WasiFilesystem
impl Unpin for WasiFilesystem
impl UnwindSafe for WasiFilesystem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self
file descriptor.§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more