Struct wasmtime_wasi::preview2::WasiCtxBuilder

source ·
pub struct WasiCtxBuilder { /* private fields */ }

Implementations§

source§

impl WasiCtxBuilder

source

pub fn new() -> Self

Creates a builder for a new context with default parameters set.

The current defaults are:

  • stdin is closed
  • stdout and stderr eat all input but it doesn’t go anywhere
  • no env vars
  • no arguments
  • no preopens
  • clocks use the host implementation of wall/monotonic clocks
  • RNGs are all initialized with random state and suitable generator quality to satisfy the requirements of WASI APIs.

These defaults can all be updated via the various builder configuration methods below.

Note that each builder can only be used once to produce a WasiCtx. Invoking the build method will panic on the second attempt.

source

pub fn stdin(&mut self, stdin: impl StdinStream + 'static) -> &mut Self

source

pub fn stdout(&mut self, stdout: impl StdoutStream + 'static) -> &mut Self

source

pub fn stderr(&mut self, stderr: impl StdoutStream + 'static) -> &mut Self

source

pub fn inherit_stdin(&mut self) -> &mut Self

source

pub fn inherit_stdout(&mut self) -> &mut Self

source

pub fn inherit_stderr(&mut self) -> &mut Self

source

pub fn inherit_stdio(&mut self) -> &mut Self

source

pub fn envs(&mut self, env: &[(impl AsRef<str>, impl AsRef<str>)]) -> &mut Self

source

pub fn env(&mut self, k: impl AsRef<str>, v: impl AsRef<str>) -> &mut Self

source

pub fn args(&mut self, args: &[impl AsRef<str>]) -> &mut Self

source

pub fn arg(&mut self, arg: impl AsRef<str>) -> &mut Self

source

pub fn preopened_dir( &mut self, dir: Dir, perms: DirPerms, file_perms: FilePerms, path: impl AsRef<str> ) -> &mut Self

source

pub fn secure_random( &mut self, random: impl RngCore + Send + 'static ) -> &mut Self

Set the generator for the secure random number generator to the custom generator specified.

Note that contexts have a default RNG configured which is a suitable generator for WASI and is configured with a random seed per-context.

Guest code may rely on this random number generator to produce fresh unpredictable random data in order to maintain its security invariants, and ideally should use the insecure random API otherwise, so using any prerecorded or otherwise predictable data may compromise security.

source

pub fn insecure_random( &mut self, insecure_random: impl RngCore + Send + 'static ) -> &mut Self

source

pub fn insecure_random_seed(&mut self, insecure_random_seed: u128) -> &mut Self

source

pub fn wall_clock(&mut self, clock: impl HostWallClock + 'static) -> &mut Self

source

pub fn monotonic_clock( &mut self, clock: impl HostMonotonicClock + 'static ) -> &mut Self

source

pub fn inherit_network(&mut self) -> &mut Self

Allow all network addresses accessible to the host

source

pub fn socket_addr_check<F>(&mut self, check: F) -> &mut Self
where F: Fn(&SocketAddr, SocketAddrUse) -> bool + Send + Sync + 'static,

A check that will be called for each socket address that is used.

Returning true will permit socket connections to the SocketAddr, while returning false will reject the connection.

source

pub fn allow_ip_name_lookup(&mut self, enable: bool) -> &mut Self

Allow usage of wasi:sockets/ip-name-lookup

source

pub fn allow_udp(&mut self, enable: bool) -> &mut Self

Allow usage of UDP

source

pub fn allow_tcp(&mut self, enable: bool) -> &mut Self

Allow usage of TCP

source

pub fn build(&mut self) -> WasiCtx

Uses the configured context so far to construct the final WasiCtx.

Note that each WasiCtxBuilder can only be used to “build” once, and calling this method twice will panic.

§Panics

Panics if this method is called twice.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> GetSetFdFlags for T

source§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
source§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
source§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: AsFilelike,

Set the “status” flags for the self file descriptor. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointee for T

§

type Pointer = u32

source§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_> ) -> Result<(), Error>

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more