pub trait HostResolveAddressStream {
// Required methods
fn resolve_next_address(
&mut self,
self_: Resource<ResolveAddressStream>,
) -> Result<Option<IpAddress>, SocketError>;
fn subscribe(
&mut self,
self_: Resource<ResolveAddressStream>,
) -> Result<Resource<Pollable>>;
fn drop(&mut self, rep: Resource<ResolveAddressStream>) -> Result<()>;
}
Required Methods§
sourcefn resolve_next_address(
&mut self,
self_: Resource<ResolveAddressStream>,
) -> Result<Option<IpAddress>, SocketError>
fn resolve_next_address( &mut self, self_: Resource<ResolveAddressStream>, ) -> Result<Option<IpAddress>, SocketError>
Returns the next address from the resolver.
This function should be called multiple times. On each call, it will
return the next address in connection order preference. If all
addresses have been exhausted, this function returns none
.
This function never returns IPv4-mapped IPv6 addresses.
§Typical errors
name-unresolvable
: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY)temporary-resolver-failure
: A temporary failure in name resolution occurred. (EAI_AGAIN)permanent-resolver-failure
: A permanent failure in name resolution occurred. (EAI_FAIL)would-block
: A result is not available yet. (EWOULDBLOCK, EAGAIN)
sourcefn subscribe(
&mut self,
self_: Resource<ResolveAddressStream>,
) -> Result<Resource<Pollable>>
fn subscribe( &mut self, self_: Resource<ResolveAddressStream>, ) -> Result<Resource<Pollable>>
Create a pollable
which will resolve once the stream is ready for I/O.
Note: this function is here for WASI 0.2 only.
It’s planned to be removed when future
is natively supported in Preview3.
fn drop(&mut self, rep: Resource<ResolveAddressStream>) -> Result<()>
Implementations on Foreign Types§
source§impl<_T: HostResolveAddressStream + ?Sized> HostResolveAddressStream for &mut _T
impl<_T: HostResolveAddressStream + ?Sized> HostResolveAddressStream for &mut _T
source§fn resolve_next_address(
&mut self,
self_: Resource<ResolveAddressStream>,
) -> Result<Option<IpAddress>, SocketError>
fn resolve_next_address( &mut self, self_: Resource<ResolveAddressStream>, ) -> Result<Option<IpAddress>, SocketError>
Returns the next address from the resolver.
This function should be called multiple times. On each call, it will
return the next address in connection order preference. If all
addresses have been exhausted, this function returns none
.
This function never returns IPv4-mapped IPv6 addresses.
§Typical errors
name-unresolvable
: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY)temporary-resolver-failure
: A temporary failure in name resolution occurred. (EAI_AGAIN)permanent-resolver-failure
: A permanent failure in name resolution occurred. (EAI_FAIL)would-block
: A result is not available yet. (EWOULDBLOCK, EAGAIN)
source§fn subscribe(
&mut self,
self_: Resource<ResolveAddressStream>,
) -> Result<Resource<Pollable>>
fn subscribe( &mut self, self_: Resource<ResolveAddressStream>, ) -> Result<Resource<Pollable>>
Create a pollable
which will resolve once the stream is ready for I/O.
Note: this function is here for WASI 0.2 only.
It’s planned to be removed when future
is natively supported in Preview3.