Host

Struct Host 

Source
pub struct Host { /* private fields */ }
Expand description

The T in Store<T> for what the CLI is running.

This structures has a number of contexts used for various WASI proposals. Note that all of them are optional meaning that they’re None by default and enabled with various CLI flags (some CLI flags are on-by-default). Note additionally that this structure is Clone to implement the wasi-threads proposal. Many WASI proposals are not compatible with wasi-threads so to model this Arc and Arc<Mutex<T>> is used for many configurations. If a WASI proposal is inherently threadsafe it’s protected with just an Arc to share its configuration across many threads.

If mutation is required then Mutex is used. Note though that the mutex is not actually locked as access always goes through Arc::get_mut which effectively asserts that there’s only one thread. In short much of this is not compatible with wasi-threads.

Trait Implementations§

Source§

impl Clone for Host

Source§

fn clone(&self) -> Host

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for Host

Source§

fn default() -> Host

Returns the “default value” for a type. Read more
Source§

impl WasiHttpView for Host

Available on crate feature wasi-http only.
Source§

fn ctx(&mut self) -> &mut WasiHttpCtx

Returns a mutable reference to the WASI HTTP context.
Source§

fn table(&mut self) -> &mut ResourceTable

Returns the table used to manage resources.
Source§

fn outgoing_body_buffer_chunks(&mut self) -> usize

Number of distinct write calls to the outgoing body’s output-stream that the implementation will buffer. Default: 1.
Source§

fn outgoing_body_chunk_size(&mut self) -> usize

Maximum size allowed in a write call to the outgoing body’s output-stream. Default: 1024 * 1024.
Source§

fn new_incoming_request<B>( &mut self, scheme: Scheme, req: Request<B>, ) -> Result<Resource<HostIncomingRequest>, Error>
where B: Body<Data = Bytes, Error = Error> + Send + Sync + 'static, Self: Sized,

Create a new incoming request resource.
Source§

fn new_response_outparam( &mut self, result: Sender<Result<Response<BoxBody<Bytes, ErrorCode>>, ErrorCode>>, ) -> Result<Resource<HostResponseOutparam>, Error>

Create a new outgoing response resource.
Source§

fn send_request( &mut self, request: Request<BoxBody<Bytes, ErrorCode>>, config: OutgoingRequestConfig, ) -> Result<HostFutureIncomingResponse, HttpError>

Send an outgoing request.
Source§

fn is_forbidden_header(&mut self, name: &HeaderName) -> bool

Whether a given header should be considered forbidden and not allowed.
Source§

impl WasiHttpView for Host

Available on crate features wasi-http and component-model-async only.
Source§

fn http(&mut self) -> WasiHttpCtxView<'_>

Return a WasiHttpCtxView from mutable reference to self.
Source§

impl WasiView for Host

Source§

fn ctx(&mut self) -> WasiCtxView<'_>

Yields mutable access to the WasiCtx configuration used for this context.

Auto Trait Implementations§

§

impl Freeze for Host

§

impl !RefUnwindSafe for Host

§

impl Send for Host

§

impl Sync for Host

§

impl Unpin for Host

§

impl !UnwindSafe for Host

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Pointer = u32

Source§

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

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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> WasiCliView for T
where T: WasiView,

Source§

fn cli(&mut self) -> WasiCliCtxView<'_>

Source§

impl<T> WasiClocksView for T
where T: WasiView,

Source§

fn clocks(&mut self) -> WasiClocksCtxView<'_>

Source§

impl<T> WasiFilesystemView for T
where T: WasiView,

Source§

impl<T> WasiRandomView for T
where T: WasiView,

Source§

fn random(&mut self) -> &mut WasiRandomCtx

Source§

impl<T> WasiSocketsView for T
where T: WasiView,

Source§

fn sockets(&mut self) -> WasiSocketsCtxView<'_>

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T