pub struct WasiState {
pub fs: WasiFs,
pub inodes: Arc<RwLock<WasiInodes>>,
pub args: Vec<Vec<u8>>,
pub envs: Vec<Vec<u8>>,
/* private fields */
}
Expand description
Top level data type containing all* the state with which WASI can interact.
- The contents of files are not stored and may be modified by other, concurrently running programs. Data such as the contents of directories are lazily loaded.
Usage:
WasiState::new("program_name")
.env(b"HOME", "/home/home".to_string())
.arg("--help")
.envs({
let mut hm = std::collections::HashMap::new();
hm.insert("COLOR_OUTPUT", "TRUE");
hm.insert("PATH", "/usr/bin");
hm
})
.args(&["--verbose", "list"])
.preopen(|p| p.directory("src").read(true).write(true).create(true))?
.preopen(|p| p.directory(".").alias("dot").read(true))?
.build()?;
Fields§
§fs: WasiFs
§inodes: Arc<RwLock<WasiInodes>>
§args: Vec<Vec<u8>>
§envs: Vec<Vec<u8>>
Implementations§
Source§impl WasiState
impl WasiState
Sourcepub fn new(program_name: impl AsRef<str>) -> WasiStateBuilder
pub fn new(program_name: impl AsRef<str>) -> WasiStateBuilder
Create a WasiStateBuilder
to construct a validated instance of
WasiState
.
Sourcepub fn stdout(
&self,
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn stdout( &self, ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Get the VirtualFile
object at stdout
pub fn stdout_mut( &self, ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
👎Deprecated since 3.0.0: stdout_mut() is no longer needed - just use stdout() instead
Sourcepub fn stderr(
&self,
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn stderr( &self, ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Get the VirtualFile
object at stderr
pub fn stderr_mut( &self, ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
👎Deprecated since 3.0.0: stderr_mut() is no longer needed - just use stderr() instead
Sourcepub fn stdin(
&self,
) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
pub fn stdin( &self, ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
Get the VirtualFile
object at stdin
pub fn stdin_mut( &self, ) -> Result<Option<Box<dyn VirtualFile + Send + Sync + 'static>>, FsError>
👎Deprecated since 3.0.0: stdin_mut() is no longer needed - just use stdin() instead
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for WasiState
impl !RefUnwindSafe for WasiState
impl Send for WasiState
impl Sync for WasiState
impl Unpin for WasiState
impl !UnwindSafe for WasiState
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
Source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
Source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref