pub struct WasiSockets;Expand description
A helper struct which implements HasData for the wasi:sockets APIs.
This can be useful when directly calling add_to_linker functions directly,
such as [wasmtime_wasi::p2::bindings::sockets::tcp::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 WasiSocketsView trait, for
example.
§Examples
use wasmtime::component::{Linker, ResourceTable};
use wasmtime::{Engine, Result, Config};
use wasmtime_wasi::sockets::*;
struct MyStoreState {
table: ResourceTable,
sockets: WasiSocketsCtx,
}
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::sockets::tcp::add_to_linker::<MyStoreState, WasiSockets>(
&mut linker,
|state| WasiSocketsCtxView {
ctx: &mut state.sockets,
table: &mut state.table,
},
)?;
Ok(())
}Trait Implementations§
Source§impl HasData for WasiSockets
impl HasData for WasiSockets
Source§type Data<'a> = WasiSocketsCtxView<'a>
type Data<'a> = WasiSocketsCtxView<'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 HostTcpSocketWithStore for WasiSockets
Available on crate feature p3 only.
impl HostTcpSocketWithStore for WasiSockets
Available on crate feature
p3 only.Source§async fn bind<T>(
store: &Accessor<T, Self>,
socket: Resource<TcpSocket>,
local_address: IpSocketAddress,
) -> SocketResult<()>
async fn bind<T>( store: &Accessor<T, Self>, socket: Resource<TcpSocket>, local_address: IpSocketAddress, ) -> SocketResult<()>
Bind the socket to the provided IP address and port. Read more
Source§async fn connect<T>(
store: &Accessor<T, Self>,
socket: Resource<TcpSocket>,
remote_address: IpSocketAddress,
) -> SocketResult<()>
async fn connect<T>( store: &Accessor<T, Self>, socket: Resource<TcpSocket>, remote_address: IpSocketAddress, ) -> SocketResult<()>
Connect to a remote endpoint. Read more
Source§async fn listen<T: 'static>(
store: &Accessor<T, Self>,
socket: Resource<TcpSocket>,
) -> SocketResult<StreamReader<Resource<TcpSocket>>>
async fn listen<T: 'static>( store: &Accessor<T, Self>, socket: Resource<TcpSocket>, ) -> SocketResult<StreamReader<Resource<TcpSocket>>>
Start listening and return a stream of new inbound connections. Read more
Source§impl HostUdpSocketWithStore for WasiSockets
Available on crate feature p3 only.
impl HostUdpSocketWithStore for WasiSockets
Available on crate feature
p3 only.Source§async fn bind<T>(
store: &Accessor<T, Self>,
socket: Resource<UdpSocket>,
local_address: IpSocketAddress,
) -> SocketResult<()>
async fn bind<T>( store: &Accessor<T, Self>, socket: Resource<UdpSocket>, local_address: IpSocketAddress, ) -> SocketResult<()>
Bind the socket to the provided IP address and port. Read more
Source§async fn connect<T>(
store: &Accessor<T, Self>,
socket: Resource<UdpSocket>,
remote_address: IpSocketAddress,
) -> SocketResult<()>
async fn connect<T>( store: &Accessor<T, Self>, socket: Resource<UdpSocket>, remote_address: IpSocketAddress, ) -> SocketResult<()>
Associate this socket with a specific peer address. Read more
Source§impl HostWithStore for WasiSockets
Available on crate feature p3 only.
impl HostWithStore for WasiSockets
Available on crate feature
p3 only.Auto Trait Implementations§
impl Freeze for WasiSockets
impl RefUnwindSafe for WasiSockets
impl Send for WasiSockets
impl Sync for WasiSockets
impl Unpin for WasiSockets
impl UnwindSafe for WasiSockets
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