#[repr(transparent)]pub struct WasiHttpImpl<T>(pub T);
Expand description
A concrete structure that all generated Host
traits are implemented for.
This type serves as a small newtype wrapper to implement all of the Host
traits for wasi:http
. This type is internally used and is only needed if
you’re interacting with add_to_linker
functions generated by bindings
themselves (or add_to_linker_get_host
).
This type is automatically used when using
add_to_linker_async
or
add_to_linker_sync
and doesn’t need to be manually configured.
Tuple Fields§
§0: T
Trait Implementations§
Source§impl<T> Host for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> Host for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn handle(
&mut self,
request_id: Resource<HostOutgoingRequest>,
options: Option<Resource<RequestOptions>>,
) -> HttpResult<Resource<HostFutureIncomingResponse>>
fn handle( &mut self, request_id: Resource<HostOutgoingRequest>, options: Option<Resource<RequestOptions>>, ) -> HttpResult<Resource<HostFutureIncomingResponse>>
This function is invoked with an outgoing HTTP Request, and it returns
a resource
future-incoming-response
which represents an HTTP Response
which may arrive in the future. Read moreSource§impl<T> Host for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> Host for WasiHttpImpl<T>where
T: WasiHttpView,
Source§impl<T> HostFields for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostFields for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn from_list(
&mut self,
entries: Vec<(String, Vec<u8>)>,
) -> Result<Result<Resource<HostFields>, HeaderError>>
fn from_list( &mut self, entries: Vec<(String, Vec<u8>)>, ) -> Result<Result<Resource<HostFields>, HeaderError>>
Construct an HTTP Fields. Read more
fn drop(&mut self, fields: Resource<HostFields>) -> Result<()>
Source§fn get(
&mut self,
fields: Resource<HostFields>,
name: String,
) -> Result<Vec<Vec<u8>>>
fn get( &mut self, fields: Resource<HostFields>, name: String, ) -> Result<Vec<Vec<u8>>>
Get all of the values corresponding to a name. If the name is not present
in this
fields
or is syntactically invalid, an empty list is returned.
However, if the name is present but empty, this is represented by a list
with one or more empty field-values present.Source§fn has(&mut self, fields: Resource<HostFields>, name: String) -> Result<bool>
fn has(&mut self, fields: Resource<HostFields>, name: String) -> Result<bool>
Returns
true
when the name is present in this fields
. If the name is
syntactically invalid, false
is returned.Source§fn set(
&mut self,
fields: Resource<HostFields>,
name: String,
byte_values: Vec<Vec<u8>>,
) -> Result<Result<(), HeaderError>>
fn set( &mut self, fields: Resource<HostFields>, name: String, byte_values: Vec<Vec<u8>>, ) -> Result<Result<(), HeaderError>>
Set all of the values for a name. Clears any existing values for that
name, if they have been set. Read more
Source§fn delete(
&mut self,
fields: Resource<HostFields>,
name: String,
) -> Result<Result<(), HeaderError>>
fn delete( &mut self, fields: Resource<HostFields>, name: String, ) -> Result<Result<(), HeaderError>>
Delete all values for a name. Does nothing if no values for the name
exist. Read more
Source§fn append(
&mut self,
fields: Resource<HostFields>,
name: String,
value: Vec<u8>,
) -> Result<Result<(), HeaderError>>
fn append( &mut self, fields: Resource<HostFields>, name: String, value: Vec<u8>, ) -> Result<Result<(), HeaderError>>
Append a value for a name. Does not change or delete any existing
values for that name. Read more
Source§fn entries(
&mut self,
fields: Resource<HostFields>,
) -> Result<Vec<(String, Vec<u8>)>>
fn entries( &mut self, fields: Resource<HostFields>, ) -> Result<Vec<(String, Vec<u8>)>>
Retrieve the full set of names and values in the Fields. Like the
constructor, the list represents each name-value pair. Read more
Source§fn clone(
&mut self,
fields: Resource<HostFields>,
) -> Result<Resource<HostFields>>
fn clone( &mut self, fields: Resource<HostFields>, ) -> Result<Resource<HostFields>>
Make a deep copy of the Fields. Equivalent in behavior to calling the
fields
constructor on the return value of entries
. The resulting
fields
is mutable.Source§impl<T> HostFutureIncomingResponse for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostFutureIncomingResponse for WasiHttpImpl<T>where
T: WasiHttpView,
fn drop(&mut self, id: Resource<HostFutureIncomingResponse>) -> Result<()>
Source§impl<T> HostFutureTrailers for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostFutureTrailers for WasiHttpImpl<T>where
T: WasiHttpView,
fn drop(&mut self, id: Resource<HostFutureTrailers>) -> Result<()>
Source§impl<T> HostIncomingBody for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostIncomingBody for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn stream(
&mut self,
id: Resource<HostIncomingBody>,
) -> Result<Result<Resource<InputStream>, ()>>
fn stream( &mut self, id: Resource<HostIncomingBody>, ) -> Result<Result<Resource<InputStream>, ()>>
Returns the contents of the body, as a stream of bytes. Read more
Source§fn finish(
&mut self,
id: Resource<HostIncomingBody>,
) -> Result<Resource<HostFutureTrailers>>
fn finish( &mut self, id: Resource<HostIncomingBody>, ) -> Result<Resource<HostFutureTrailers>>
Takes ownership of
incoming-body
, and returns a future-trailers
.
This function will trap if the input-stream
child is still alive.fn drop(&mut self, id: Resource<HostIncomingBody>) -> Result<()>
Source§impl<T> HostIncomingRequest for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostIncomingRequest for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn method(&mut self, id: Resource<HostIncomingRequest>) -> Result<Method>
fn method(&mut self, id: Resource<HostIncomingRequest>) -> Result<Method>
Returns the method of the incoming request.
Source§fn path_with_query(
&mut self,
id: Resource<HostIncomingRequest>,
) -> Result<Option<String>>
fn path_with_query( &mut self, id: Resource<HostIncomingRequest>, ) -> Result<Option<String>>
Returns the path with query parameters from the request, as a string.
Source§fn scheme(
&mut self,
id: Resource<HostIncomingRequest>,
) -> Result<Option<Scheme>>
fn scheme( &mut self, id: Resource<HostIncomingRequest>, ) -> Result<Option<Scheme>>
Returns the protocol scheme from the request.
Returns the authority of the Request’s target URI, if present.
Source§fn headers(
&mut self,
id: Resource<HostIncomingRequest>,
) -> Result<Resource<Headers>>
fn headers( &mut self, id: Resource<HostIncomingRequest>, ) -> Result<Resource<Headers>>
Get the
headers
associated with the request. Read moreSource§fn consume(
&mut self,
id: Resource<HostIncomingRequest>,
) -> Result<Result<Resource<HostIncomingBody>, ()>>
fn consume( &mut self, id: Resource<HostIncomingRequest>, ) -> Result<Result<Resource<HostIncomingBody>, ()>>
Gives the
incoming-body
associated with this request. Will only
return success at most once, and subsequent calls will return error.fn drop(&mut self, id: Resource<HostIncomingRequest>) -> Result<()>
Source§impl<T> HostIncomingResponse for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostIncomingResponse for WasiHttpImpl<T>where
T: WasiHttpView,
fn drop(&mut self, response: Resource<HostIncomingResponse>) -> Result<()>
Source§fn status(
&mut self,
response: Resource<HostIncomingResponse>,
) -> Result<StatusCode>
fn status( &mut self, response: Resource<HostIncomingResponse>, ) -> Result<StatusCode>
Returns the status code from the incoming response.
Source§fn headers(
&mut self,
response: Resource<HostIncomingResponse>,
) -> Result<Resource<Headers>>
fn headers( &mut self, response: Resource<HostIncomingResponse>, ) -> Result<Resource<Headers>>
Returns the headers from the incoming response. Read more
Source§fn consume(
&mut self,
response: Resource<HostIncomingResponse>,
) -> Result<Result<Resource<HostIncomingBody>, ()>>
fn consume( &mut self, response: Resource<HostIncomingResponse>, ) -> Result<Result<Resource<HostIncomingBody>, ()>>
Returns the incoming body. May be called at most once. Returns error
if called additional times.
Source§impl<T> HostOutgoingBody for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostOutgoingBody for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn write(
&mut self,
id: Resource<HostOutgoingBody>,
) -> Result<Result<Resource<OutputStream>, ()>>
fn write( &mut self, id: Resource<HostOutgoingBody>, ) -> Result<Result<Resource<OutputStream>, ()>>
Returns a stream for writing the body contents. Read more
Source§fn finish(
&mut self,
id: Resource<HostOutgoingBody>,
ts: Option<Resource<Trailers>>,
) -> HttpResult<()>
fn finish( &mut self, id: Resource<HostOutgoingBody>, ts: Option<Resource<Trailers>>, ) -> HttpResult<()>
Finalize an outgoing body, optionally providing trailers. This must be
called to signal that the response is complete. If the
outgoing-body
is dropped without calling outgoing-body.finalize
, the implementation
should treat the body as corrupted. Read morefn drop(&mut self, id: Resource<HostOutgoingBody>) -> Result<()>
Source§impl<T> HostOutgoingRequest for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostOutgoingRequest for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn new(
&mut self,
headers: Resource<Headers>,
) -> Result<Resource<HostOutgoingRequest>>
fn new( &mut self, headers: Resource<Headers>, ) -> Result<Resource<HostOutgoingRequest>>
Construct a new
outgoing-request
with a default method
of GET
, and
none
values for path-with-query
, scheme
, and authority
. Read moreSource§fn body(
&mut self,
request: Resource<HostOutgoingRequest>,
) -> Result<Result<Resource<HostOutgoingBody>, ()>>
fn body( &mut self, request: Resource<HostOutgoingRequest>, ) -> Result<Result<Resource<HostOutgoingBody>, ()>>
Returns the resource corresponding to the outgoing Body for this
Request. Read more
fn drop(&mut self, request: Resource<HostOutgoingRequest>) -> Result<()>
Source§fn method(&mut self, request: Resource<OutgoingRequest>) -> Result<Method>
fn method(&mut self, request: Resource<OutgoingRequest>) -> Result<Method>
Get the Method for the Request.
Source§fn set_method(
&mut self,
request: Resource<OutgoingRequest>,
method: Method,
) -> Result<Result<(), ()>>
fn set_method( &mut self, request: Resource<OutgoingRequest>, method: Method, ) -> Result<Result<(), ()>>
Set the Method for the Request. Fails if the string present in a
method.other
argument is not a syntactically valid method.Source§fn path_with_query(
&mut self,
request: Resource<OutgoingRequest>,
) -> Result<Option<String>>
fn path_with_query( &mut self, request: Resource<OutgoingRequest>, ) -> Result<Option<String>>
Get the combination of the HTTP Path and Query for the Request.
When
none
, this represents an empty Path and empty Query.Source§fn set_path_with_query(
&mut self,
request: Resource<OutgoingRequest>,
path_with_query: Option<String>,
) -> Result<Result<(), ()>>
fn set_path_with_query( &mut self, request: Resource<OutgoingRequest>, path_with_query: Option<String>, ) -> Result<Result<(), ()>>
Set the combination of the HTTP Path and Query for the Request.
When
none
, this represents an empty Path and empty Query. Fails is the
string given is not a syntactically valid path and query uri component.Source§fn scheme(
&mut self,
request: Resource<OutgoingRequest>,
) -> Result<Option<Scheme>>
fn scheme( &mut self, request: Resource<OutgoingRequest>, ) -> Result<Option<Scheme>>
Get the HTTP Related Scheme for the Request. When
none
, the
implementation may choose an appropriate default scheme.Source§fn set_scheme(
&mut self,
request: Resource<OutgoingRequest>,
scheme: Option<Scheme>,
) -> Result<Result<(), ()>>
fn set_scheme( &mut self, request: Resource<OutgoingRequest>, scheme: Option<Scheme>, ) -> Result<Result<(), ()>>
Set the HTTP Related Scheme for the Request. When
none
, the
implementation may choose an appropriate default scheme. Fails if the
string given is not a syntactically valid uri scheme.Get the authority of the Request’s target URI. A value of
none
may be used
with Related Schemes which do not require an authority. The HTTP and
HTTPS schemes always require an authority.Set the authority of the Request’s target URI. A value of
none
may be used
with Related Schemes which do not require an authority. The HTTP and
HTTPS schemes always require an authority. Fails if the string given is
not a syntactically valid URI authority.Source§impl<T> HostOutgoingResponse for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostOutgoingResponse for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn new(
&mut self,
headers: Resource<Headers>,
) -> Result<Resource<HostOutgoingResponse>>
fn new( &mut self, headers: Resource<Headers>, ) -> Result<Resource<HostOutgoingResponse>>
Construct an
outgoing-response
, with a default status-code
of 200
.
If a different status-code
is needed, it must be set via the
set-status-code
method. Read moreSource§fn body(
&mut self,
id: Resource<HostOutgoingResponse>,
) -> Result<Result<Resource<HostOutgoingBody>, ()>>
fn body( &mut self, id: Resource<HostOutgoingResponse>, ) -> Result<Result<Resource<HostOutgoingBody>, ()>>
Returns the resource corresponding to the outgoing Body for this Response. Read more
Source§fn status_code(
&mut self,
id: Resource<HostOutgoingResponse>,
) -> Result<StatusCode>
fn status_code( &mut self, id: Resource<HostOutgoingResponse>, ) -> Result<StatusCode>
Get the HTTP Status Code for the Response.
Source§fn set_status_code(
&mut self,
id: Resource<HostOutgoingResponse>,
status: StatusCode,
) -> Result<Result<(), ()>>
fn set_status_code( &mut self, id: Resource<HostOutgoingResponse>, status: StatusCode, ) -> Result<Result<(), ()>>
Set the HTTP Status Code for the Response. Fails if the status-code
given is not a valid http status code.
Source§fn headers(
&mut self,
id: Resource<HostOutgoingResponse>,
) -> Result<Resource<Headers>>
fn headers( &mut self, id: Resource<HostOutgoingResponse>, ) -> Result<Resource<Headers>>
Get the headers associated with the Request. Read more
fn drop(&mut self, id: Resource<HostOutgoingResponse>) -> Result<()>
Source§impl<T> HostRequestOptions for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostRequestOptions for WasiHttpImpl<T>where
T: WasiHttpView,
Source§fn new(&mut self) -> Result<Resource<RequestOptions>>
fn new(&mut self) -> Result<Resource<RequestOptions>>
Construct a default
request-options
value.Source§fn connect_timeout(
&mut self,
opts: Resource<RequestOptions>,
) -> Result<Option<Duration>>
fn connect_timeout( &mut self, opts: Resource<RequestOptions>, ) -> Result<Option<Duration>>
The timeout for the initial connect to the HTTP Server.
Source§fn set_connect_timeout(
&mut self,
opts: Resource<RequestOptions>,
duration: Option<Duration>,
) -> Result<Result<(), ()>>
fn set_connect_timeout( &mut self, opts: Resource<RequestOptions>, duration: Option<Duration>, ) -> Result<Result<(), ()>>
Set the timeout for the initial connect to the HTTP Server. An error
return value indicates that this timeout is not supported.
Source§fn first_byte_timeout(
&mut self,
opts: Resource<RequestOptions>,
) -> Result<Option<Duration>>
fn first_byte_timeout( &mut self, opts: Resource<RequestOptions>, ) -> Result<Option<Duration>>
The timeout for receiving the first byte of the Response body.
Source§fn set_first_byte_timeout(
&mut self,
opts: Resource<RequestOptions>,
duration: Option<Duration>,
) -> Result<Result<(), ()>>
fn set_first_byte_timeout( &mut self, opts: Resource<RequestOptions>, duration: Option<Duration>, ) -> Result<Result<(), ()>>
Set the timeout for receiving the first byte of the Response body. An
error return value indicates that this timeout is not supported.
Source§fn between_bytes_timeout(
&mut self,
opts: Resource<RequestOptions>,
) -> Result<Option<Duration>>
fn between_bytes_timeout( &mut self, opts: Resource<RequestOptions>, ) -> Result<Option<Duration>>
The timeout for receiving subsequent chunks of bytes in the Response
body stream.
Source§fn set_between_bytes_timeout(
&mut self,
opts: Resource<RequestOptions>,
duration: Option<Duration>,
) -> Result<Result<(), ()>>
fn set_between_bytes_timeout( &mut self, opts: Resource<RequestOptions>, duration: Option<Duration>, ) -> Result<Result<(), ()>>
Set the timeout for receiving subsequent chunks of bytes in the Response
body stream. An error return value indicates that this timeout is not
supported.
fn drop(&mut self, rep: Resource<RequestOptions>) -> Result<()>
Source§impl<T> HostResponseOutparam for WasiHttpImpl<T>where
T: WasiHttpView,
impl<T> HostResponseOutparam for WasiHttpImpl<T>where
T: WasiHttpView,
Source§impl<T: WasiHttpView> WasiHttpView for WasiHttpImpl<T>
impl<T: WasiHttpView> WasiHttpView for WasiHttpImpl<T>
Source§fn ctx(&mut self) -> &mut WasiHttpCtx
fn ctx(&mut self) -> &mut WasiHttpCtx
Returns a mutable reference to the WASI HTTP context.
Source§fn table(&mut self) -> &mut ResourceTable
fn table(&mut self) -> &mut ResourceTable
Returns a mutable reference to the WASI HTTP resource table.
Source§fn new_response_outparam(
&mut self,
result: Sender<Result<Response<HyperOutgoingBody>, ErrorCode>>,
) -> Result<Resource<HostResponseOutparam>>
fn new_response_outparam( &mut self, result: Sender<Result<Response<HyperOutgoingBody>, ErrorCode>>, ) -> Result<Resource<HostResponseOutparam>>
Create a new outgoing response resource.
Source§fn send_request(
&mut self,
request: Request<HyperOutgoingBody>,
config: OutgoingRequestConfig,
) -> HttpResult<HostFutureIncomingResponse>
fn send_request( &mut self, request: Request<HyperOutgoingBody>, config: OutgoingRequestConfig, ) -> HttpResult<HostFutureIncomingResponse>
Send an outgoing request.
Source§fn is_forbidden_header(&mut self, name: &HeaderName) -> bool
fn is_forbidden_header(&mut self, name: &HeaderName) -> bool
Whether a given header should be considered forbidden and not allowed.
Auto Trait Implementations§
impl<T> Freeze for WasiHttpImpl<T>where
T: Freeze,
impl<T> RefUnwindSafe for WasiHttpImpl<T>where
T: RefUnwindSafe,
impl<T> Send for WasiHttpImpl<T>where
T: Send,
impl<T> Sync for WasiHttpImpl<T>where
T: Sync,
impl<T> Unpin for WasiHttpImpl<T>where
T: Unpin,
impl<T> UnwindSafe for WasiHttpImpl<T>where
T: UnwindSafe,
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
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§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.Source§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,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
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