Documentation ¶
Overview ¶
Package types represents the imported interface "wasi:http/types@0.2.1".
This interface defines all of the types and methods for implementing HTTP Requests and Responses, both incoming and outgoing, as well as their headers, trailers, and bodies.
Index ¶
- func FieldsFromList(entries cm.List[cm.Tuple[FieldKey, FieldValue]]) (result cm.Result[Fields, Fields, HeaderError])
- func HTTPErrorCode(err IOError) (result cm.Option[ErrorCode])
- func OutgoingBodyFinish(this OutgoingBody, trailers cm.Option[Trailers]) (result cm.Result[ErrorCode, struct{}, ErrorCode])
- func ResponseOutparamSet(param ResponseOutparam, ...)
- type DNSErrorPayload
- type Duration
- type ErrorCode
- func ErrorCodeConfigurationError() ErrorCode
- func ErrorCodeConnectionLimitReached() ErrorCode
- func ErrorCodeConnectionReadTimeout() ErrorCode
- func ErrorCodeConnectionRefused() ErrorCode
- func ErrorCodeConnectionTerminated() ErrorCode
- func ErrorCodeConnectionTimeout() ErrorCode
- func ErrorCodeConnectionWriteTimeout() ErrorCode
- func ErrorCodeDNSError(data DNSErrorPayload) ErrorCode
- func ErrorCodeDNSTimeout() ErrorCode
- func ErrorCodeDestinationIPProhibited() ErrorCode
- func ErrorCodeDestinationIPUnroutable() ErrorCode
- func ErrorCodeDestinationNotFound() ErrorCode
- func ErrorCodeDestinationUnavailable() ErrorCode
- func ErrorCodeHTTPProtocolError() ErrorCode
- func ErrorCodeHTTPRequestBodySize(data cm.Option[uint64]) ErrorCode
- func ErrorCodeHTTPRequestDenied() ErrorCode
- func ErrorCodeHTTPRequestHeaderSectionSize(data cm.Option[uint32]) ErrorCode
- func ErrorCodeHTTPRequestHeaderSize(data cm.Option[FieldSizePayload]) ErrorCode
- func ErrorCodeHTTPRequestLengthRequired() ErrorCode
- func ErrorCodeHTTPRequestMethodInvalid() ErrorCode
- func ErrorCodeHTTPRequestTrailerSectionSize(data cm.Option[uint32]) ErrorCode
- func ErrorCodeHTTPRequestTrailerSize(data FieldSizePayload) ErrorCode
- func ErrorCodeHTTPRequestURIInvalid() ErrorCode
- func ErrorCodeHTTPRequestURITooLong() ErrorCode
- func ErrorCodeHTTPResponseBodySize(data cm.Option[uint64]) ErrorCode
- func ErrorCodeHTTPResponseContentCoding(data cm.Option[string]) ErrorCode
- func ErrorCodeHTTPResponseHeaderSectionSize(data cm.Option[uint32]) ErrorCode
- func ErrorCodeHTTPResponseHeaderSize(data FieldSizePayload) ErrorCode
- func ErrorCodeHTTPResponseIncomplete() ErrorCode
- func ErrorCodeHTTPResponseTimeout() ErrorCode
- func ErrorCodeHTTPResponseTrailerSectionSize(data cm.Option[uint32]) ErrorCode
- func ErrorCodeHTTPResponseTrailerSize(data FieldSizePayload) ErrorCode
- func ErrorCodeHTTPResponseTransferCoding(data cm.Option[string]) ErrorCode
- func ErrorCodeHTTPUpgradeFailed() ErrorCode
- func ErrorCodeInternalError(data cm.Option[string]) ErrorCode
- func ErrorCodeLoopDetected() ErrorCode
- func ErrorCodeTLSAlertReceived(data TLSAlertReceivedPayload) ErrorCode
- func ErrorCodeTLSCertificateError() ErrorCode
- func ErrorCodeTLSProtocolError() ErrorCode
- func (self *ErrorCode) ConfigurationError() bool
- func (self *ErrorCode) ConnectionLimitReached() bool
- func (self *ErrorCode) ConnectionReadTimeout() bool
- func (self *ErrorCode) ConnectionRefused() bool
- func (self *ErrorCode) ConnectionTerminated() bool
- func (self *ErrorCode) ConnectionTimeout() bool
- func (self *ErrorCode) ConnectionWriteTimeout() bool
- func (self *ErrorCode) DNSError() *DNSErrorPayload
- func (self *ErrorCode) DNSTimeout() bool
- func (self *ErrorCode) DestinationIPProhibited() bool
- func (self *ErrorCode) DestinationIPUnroutable() bool
- func (self *ErrorCode) DestinationNotFound() bool
- func (self *ErrorCode) DestinationUnavailable() bool
- func (self *ErrorCode) HTTPProtocolError() bool
- func (self *ErrorCode) HTTPRequestBodySize() *cm.Option[uint64]
- func (self *ErrorCode) HTTPRequestDenied() bool
- func (self *ErrorCode) HTTPRequestHeaderSectionSize() *cm.Option[uint32]
- func (self *ErrorCode) HTTPRequestHeaderSize() *cm.Option[FieldSizePayload]
- func (self *ErrorCode) HTTPRequestLengthRequired() bool
- func (self *ErrorCode) HTTPRequestMethodInvalid() bool
- func (self *ErrorCode) HTTPRequestTrailerSectionSize() *cm.Option[uint32]
- func (self *ErrorCode) HTTPRequestTrailerSize() *FieldSizePayload
- func (self *ErrorCode) HTTPRequestURIInvalid() bool
- func (self *ErrorCode) HTTPRequestURITooLong() bool
- func (self *ErrorCode) HTTPResponseBodySize() *cm.Option[uint64]
- func (self *ErrorCode) HTTPResponseContentCoding() *cm.Option[string]
- func (self *ErrorCode) HTTPResponseHeaderSectionSize() *cm.Option[uint32]
- func (self *ErrorCode) HTTPResponseHeaderSize() *FieldSizePayload
- func (self *ErrorCode) HTTPResponseIncomplete() bool
- func (self *ErrorCode) HTTPResponseTimeout() bool
- func (self *ErrorCode) HTTPResponseTrailerSectionSize() *cm.Option[uint32]
- func (self *ErrorCode) HTTPResponseTrailerSize() *FieldSizePayload
- func (self *ErrorCode) HTTPResponseTransferCoding() *cm.Option[string]
- func (self *ErrorCode) HTTPUpgradeFailed() bool
- func (self *ErrorCode) InternalError() *cm.Option[string]
- func (self *ErrorCode) LoopDetected() bool
- func (v ErrorCode) String() string
- func (self *ErrorCode) TLSAlertReceived() *TLSAlertReceivedPayload
- func (self *ErrorCode) TLSCertificateError() bool
- func (self *ErrorCode) TLSProtocolError() bool
- type ErrorCodeShape
- type FieldKey
- type FieldSizePayload
- type FieldValue
- type Fields
- func (self Fields) Append(name FieldKey, value FieldValue) (result cm.Result[HeaderError, struct{}, HeaderError])
- func (self Fields) Clone() (result Fields)
- func (self Fields) Delete(name FieldKey) (result cm.Result[HeaderError, struct{}, HeaderError])
- func (self Fields) Entries() (result cm.List[cm.Tuple[FieldKey, FieldValue]])
- func (self Fields) Get(name FieldKey) (result cm.List[FieldValue])
- func (self Fields) Has(name FieldKey) (result bool)
- func (self Fields) ResourceDrop()
- func (self Fields) Set(name FieldKey, value cm.List[FieldValue]) (result cm.Result[HeaderError, struct{}, HeaderError])
- type FutureIncomingResponse
- type FutureTrailers
- type HeaderError
- type Headers
- type IOError
- type IncomingBody
- type IncomingRequest
- func (self IncomingRequest) Authority() (result cm.Option[string])
- func (self IncomingRequest) Consume() (result cm.Result[IncomingBody, IncomingBody, struct{}])
- func (self IncomingRequest) Headers() (result Headers)
- func (self IncomingRequest) Method() (result Method)
- func (self IncomingRequest) PathWithQuery() (result cm.Option[string])
- func (self IncomingRequest) ResourceDrop()
- func (self IncomingRequest) Scheme() (result cm.Option[Scheme])
- type IncomingResponse
- type InputStream
- type Method
- func (self *Method) Connect() bool
- func (self *Method) Delete() bool
- func (self *Method) Get() bool
- func (self *Method) Head() bool
- func (self *Method) Options() bool
- func (self *Method) Other() *string
- func (self *Method) Patch() bool
- func (self *Method) Post() bool
- func (self *Method) Put() bool
- func (v Method) String() string
- func (self *Method) Trace() bool
- type OptionFieldSizePayloadShape
- type OutgoingBody
- type OutgoingRequest
- func (self OutgoingRequest) Authority() (result cm.Option[string])
- func (self OutgoingRequest) Body() (result cm.Result[OutgoingBody, OutgoingBody, struct{}])
- func (self OutgoingRequest) Headers() (result Headers)
- func (self OutgoingRequest) Method() (result Method)
- func (self OutgoingRequest) PathWithQuery() (result cm.Option[string])
- func (self OutgoingRequest) ResourceDrop()
- func (self OutgoingRequest) Scheme() (result cm.Option[Scheme])
- func (self OutgoingRequest) SetAuthority(authority cm.Option[string]) (result cm.BoolResult)
- func (self OutgoingRequest) SetMethod(method Method) (result cm.BoolResult)
- func (self OutgoingRequest) SetPathWithQuery(pathWithQuery cm.Option[string]) (result cm.BoolResult)
- func (self OutgoingRequest) SetScheme(scheme cm.Option[Scheme]) (result cm.BoolResult)
- type OutgoingResponse
- func (self OutgoingResponse) Body() (result cm.Result[OutgoingBody, OutgoingBody, struct{}])
- func (self OutgoingResponse) Headers() (result Headers)
- func (self OutgoingResponse) ResourceDrop()
- func (self OutgoingResponse) SetStatusCode(statusCode StatusCode) (result cm.BoolResult)
- func (self OutgoingResponse) StatusCode() (result StatusCode)
- type OutputStream
- type Pollable
- type RequestOptions
- func (self RequestOptions) BetweenBytesTimeout() (result cm.Option[Duration])
- func (self RequestOptions) ConnectTimeout() (result cm.Option[Duration])
- func (self RequestOptions) FirstByteTimeout() (result cm.Option[Duration])
- func (self RequestOptions) ResourceDrop()
- func (self RequestOptions) SetBetweenBytesTimeout(duration cm.Option[Duration]) (result cm.BoolResult)
- func (self RequestOptions) SetConnectTimeout(duration cm.Option[Duration]) (result cm.BoolResult)
- func (self RequestOptions) SetFirstByteTimeout(duration cm.Option[Duration]) (result cm.BoolResult)
- type ResponseOutparam
- type Scheme
- type StatusCode
- type TLSAlertReceivedPayload
- type Trailers
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FieldsFromList ¶
func FieldsFromList(entries cm.List[cm.Tuple[FieldKey, FieldValue]]) (result cm.Result[Fields, Fields, HeaderError])
FieldsFromList represents the imported static function "from-list".
Construct an HTTP Fields.
The resulting `fields` is mutable.
The list represents each key-value pair in the Fields. Keys which have multiple values are represented by multiple entries in this list with the same key.
The tuple is a pair of the field key, represented as a string, and Value, represented as a list of bytes.
An error result will be returned if any `field-key` or `field-value` is syntactically invalid, or if a field is forbidden.
from-list: static func(entries: list<tuple<field-key, field-value>>) -> result<fields, header-error>
func HTTPErrorCode ¶
HTTPErrorCode represents the imported function "http-error-code".
Attempts to extract a http-related `error` from the wasi:io `error` provided.
Stream operations which return `wasi:io/stream/stream-error::last-operation-failed` have a payload of type `wasi:io/error/error` with more information about the operation that failed. This payload can be passed through to this function to see if there's http-related information about the error to return.
Note that this function is fallible because not all io-errors are http-related errors.
http-error-code: func(err: borrow<io-error>) -> option<error-code>
func OutgoingBodyFinish ¶
func OutgoingBodyFinish(this OutgoingBody, trailers cm.Option[Trailers]) (result cm.Result[ErrorCode, struct{}, ErrorCode])
OutgoingBodyFinish represents the imported static function "finish".
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.
Fails if the body's `outgoing-request` or `outgoing-response` was constructed with a Content-Length header, and the contents written to the body (via `write`) does not match the value given in the Content-Length.
finish: static func(this: outgoing-body, trailers: option<trailers>) -> result<_, error-code>
func ResponseOutparamSet ¶
func ResponseOutparamSet(param ResponseOutparam, response cm.Result[ErrorCodeShape, OutgoingResponse, ErrorCode])
ResponseOutparamSet represents the imported static function "set".
Set the value of the `response-outparam` to either send a response, or indicate an error.
This method consumes the `response-outparam` to ensure that it is called at most once. If it is never called, the implementation will respond with an error.
The user may provide an `error` to `response` to allow the implementation determine how to respond with an HTTP error response.
set: static func(param: response-outparam, response: result<outgoing-response, error-code>)
Types ¶
type DNSErrorPayload ¶
type DNSErrorPayload struct { Rcode cm.Option[string] InfoCode cm.Option[uint16] // contains filtered or unexported fields }
DNSErrorPayload represents the record "wasi:http/types@0.2.1#DNS-error-payload".
Defines the case payload type for `DNS-error` above:
record DNS-error-payload { rcode: option<string>, info-code: option<u16>, }
type Duration ¶
type Duration = monotonicclock.Duration
Duration represents the type alias "wasi:http/types@0.2.1#duration".
See monotonicclock.Duration for more information.
type ErrorCode ¶
ErrorCode represents the variant "wasi:http/types@0.2.1#error-code".
These cases are inspired by the IANA HTTP Proxy Error Types: https://www.iana.org/assignments/http-proxy-status/http-proxy-status.xhtml#table-http-proxy-error-types
variant error-code { DNS-timeout, DNS-error(DNS-error-payload), destination-not-found, destination-unavailable, destination-IP-prohibited, destination-IP-unroutable, connection-refused, connection-terminated, connection-timeout, connection-read-timeout, connection-write-timeout, connection-limit-reached, TLS-protocol-error, TLS-certificate-error, TLS-alert-received(TLS-alert-received-payload), HTTP-request-denied, HTTP-request-length-required, HTTP-request-body-size(option<u64>), HTTP-request-method-invalid, HTTP-request-URI-invalid, HTTP-request-URI-too-long, HTTP-request-header-section-size(option<u32>), HTTP-request-header-size(option<field-size-payload>), HTTP-request-trailer-section-size(option<u32>), HTTP-request-trailer-size(field-size-payload), HTTP-response-incomplete, HTTP-response-header-section-size(option<u32>), HTTP-response-header-size(field-size-payload), HTTP-response-body-size(option<u64>), HTTP-response-trailer-section-size(option<u32>), HTTP-response-trailer-size(field-size-payload), HTTP-response-transfer-coding(option<string>), HTTP-response-content-coding(option<string>), HTTP-response-timeout, HTTP-upgrade-failed, HTTP-protocol-error, loop-detected, configuration-error, internal-error(option<string>), }
func ErrorCodeConfigurationError ¶
func ErrorCodeConfigurationError() ErrorCode
ErrorCodeConfigurationError returns a ErrorCode of case "configuration-error".
func ErrorCodeConnectionLimitReached ¶
func ErrorCodeConnectionLimitReached() ErrorCode
ErrorCodeConnectionLimitReached returns a ErrorCode of case "connection-limit-reached".
func ErrorCodeConnectionReadTimeout ¶
func ErrorCodeConnectionReadTimeout() ErrorCode
ErrorCodeConnectionReadTimeout returns a ErrorCode of case "connection-read-timeout".
func ErrorCodeConnectionRefused ¶
func ErrorCodeConnectionRefused() ErrorCode
ErrorCodeConnectionRefused returns a ErrorCode of case "connection-refused".
func ErrorCodeConnectionTerminated ¶
func ErrorCodeConnectionTerminated() ErrorCode
ErrorCodeConnectionTerminated returns a ErrorCode of case "connection-terminated".
func ErrorCodeConnectionTimeout ¶
func ErrorCodeConnectionTimeout() ErrorCode
ErrorCodeConnectionTimeout returns a ErrorCode of case "connection-timeout".
func ErrorCodeConnectionWriteTimeout ¶
func ErrorCodeConnectionWriteTimeout() ErrorCode
ErrorCodeConnectionWriteTimeout returns a ErrorCode of case "connection-write-timeout".
func ErrorCodeDNSError ¶
func ErrorCodeDNSError(data DNSErrorPayload) ErrorCode
ErrorCodeDNSError returns a ErrorCode of case "DNS-error".
func ErrorCodeDNSTimeout ¶
func ErrorCodeDNSTimeout() ErrorCode
ErrorCodeDNSTimeout returns a ErrorCode of case "DNS-timeout".
func ErrorCodeDestinationIPProhibited ¶
func ErrorCodeDestinationIPProhibited() ErrorCode
ErrorCodeDestinationIPProhibited returns a ErrorCode of case "destination-IP-prohibited".
func ErrorCodeDestinationIPUnroutable ¶
func ErrorCodeDestinationIPUnroutable() ErrorCode
ErrorCodeDestinationIPUnroutable returns a ErrorCode of case "destination-IP-unroutable".
func ErrorCodeDestinationNotFound ¶
func ErrorCodeDestinationNotFound() ErrorCode
ErrorCodeDestinationNotFound returns a ErrorCode of case "destination-not-found".
func ErrorCodeDestinationUnavailable ¶
func ErrorCodeDestinationUnavailable() ErrorCode
ErrorCodeDestinationUnavailable returns a ErrorCode of case "destination-unavailable".
func ErrorCodeHTTPProtocolError ¶
func ErrorCodeHTTPProtocolError() ErrorCode
ErrorCodeHTTPProtocolError returns a ErrorCode of case "HTTP-protocol-error".
func ErrorCodeHTTPRequestBodySize ¶
ErrorCodeHTTPRequestBodySize returns a ErrorCode of case "HTTP-request-body-size".
func ErrorCodeHTTPRequestDenied ¶
func ErrorCodeHTTPRequestDenied() ErrorCode
ErrorCodeHTTPRequestDenied returns a ErrorCode of case "HTTP-request-denied".
func ErrorCodeHTTPRequestHeaderSectionSize ¶
ErrorCodeHTTPRequestHeaderSectionSize returns a ErrorCode of case "HTTP-request-header-section-size".
func ErrorCodeHTTPRequestHeaderSize ¶
func ErrorCodeHTTPRequestHeaderSize(data cm.Option[FieldSizePayload]) ErrorCode
ErrorCodeHTTPRequestHeaderSize returns a ErrorCode of case "HTTP-request-header-size".
func ErrorCodeHTTPRequestLengthRequired ¶
func ErrorCodeHTTPRequestLengthRequired() ErrorCode
ErrorCodeHTTPRequestLengthRequired returns a ErrorCode of case "HTTP-request-length-required".
func ErrorCodeHTTPRequestMethodInvalid ¶
func ErrorCodeHTTPRequestMethodInvalid() ErrorCode
ErrorCodeHTTPRequestMethodInvalid returns a ErrorCode of case "HTTP-request-method-invalid".
func ErrorCodeHTTPRequestTrailerSectionSize ¶
ErrorCodeHTTPRequestTrailerSectionSize returns a ErrorCode of case "HTTP-request-trailer-section-size".
func ErrorCodeHTTPRequestTrailerSize ¶
func ErrorCodeHTTPRequestTrailerSize(data FieldSizePayload) ErrorCode
ErrorCodeHTTPRequestTrailerSize returns a ErrorCode of case "HTTP-request-trailer-size".
func ErrorCodeHTTPRequestURIInvalid ¶
func ErrorCodeHTTPRequestURIInvalid() ErrorCode
ErrorCodeHTTPRequestURIInvalid returns a ErrorCode of case "HTTP-request-URI-invalid".
func ErrorCodeHTTPRequestURITooLong ¶
func ErrorCodeHTTPRequestURITooLong() ErrorCode
ErrorCodeHTTPRequestURITooLong returns a ErrorCode of case "HTTP-request-URI-too-long".
func ErrorCodeHTTPResponseBodySize ¶
ErrorCodeHTTPResponseBodySize returns a ErrorCode of case "HTTP-response-body-size".
func ErrorCodeHTTPResponseContentCoding ¶
ErrorCodeHTTPResponseContentCoding returns a ErrorCode of case "HTTP-response-content-coding".
func ErrorCodeHTTPResponseHeaderSectionSize ¶
ErrorCodeHTTPResponseHeaderSectionSize returns a ErrorCode of case "HTTP-response-header-section-size".
func ErrorCodeHTTPResponseHeaderSize ¶
func ErrorCodeHTTPResponseHeaderSize(data FieldSizePayload) ErrorCode
ErrorCodeHTTPResponseHeaderSize returns a ErrorCode of case "HTTP-response-header-size".
func ErrorCodeHTTPResponseIncomplete ¶
func ErrorCodeHTTPResponseIncomplete() ErrorCode
ErrorCodeHTTPResponseIncomplete returns a ErrorCode of case "HTTP-response-incomplete".
func ErrorCodeHTTPResponseTimeout ¶
func ErrorCodeHTTPResponseTimeout() ErrorCode
ErrorCodeHTTPResponseTimeout returns a ErrorCode of case "HTTP-response-timeout".
func ErrorCodeHTTPResponseTrailerSectionSize ¶
ErrorCodeHTTPResponseTrailerSectionSize returns a ErrorCode of case "HTTP-response-trailer-section-size".
func ErrorCodeHTTPResponseTrailerSize ¶
func ErrorCodeHTTPResponseTrailerSize(data FieldSizePayload) ErrorCode
ErrorCodeHTTPResponseTrailerSize returns a ErrorCode of case "HTTP-response-trailer-size".
func ErrorCodeHTTPResponseTransferCoding ¶
ErrorCodeHTTPResponseTransferCoding returns a ErrorCode of case "HTTP-response-transfer-coding".
func ErrorCodeHTTPUpgradeFailed ¶
func ErrorCodeHTTPUpgradeFailed() ErrorCode
ErrorCodeHTTPUpgradeFailed returns a ErrorCode of case "HTTP-upgrade-failed".
func ErrorCodeInternalError ¶
ErrorCodeInternalError returns a ErrorCode of case "internal-error".
This is a catch-all error for anything that doesn't fit cleanly into a more specific case. It also includes an optional string for an unstructured description of the error. Users should not depend on the string for diagnosing errors, as it's not required to be consistent between implementations.
func ErrorCodeLoopDetected ¶
func ErrorCodeLoopDetected() ErrorCode
ErrorCodeLoopDetected returns a ErrorCode of case "loop-detected".
func ErrorCodeTLSAlertReceived ¶
func ErrorCodeTLSAlertReceived(data TLSAlertReceivedPayload) ErrorCode
ErrorCodeTLSAlertReceived returns a ErrorCode of case "TLS-alert-received".
func ErrorCodeTLSCertificateError ¶
func ErrorCodeTLSCertificateError() ErrorCode
ErrorCodeTLSCertificateError returns a ErrorCode of case "TLS-certificate-error".
func ErrorCodeTLSProtocolError ¶
func ErrorCodeTLSProtocolError() ErrorCode
ErrorCodeTLSProtocolError returns a ErrorCode of case "TLS-protocol-error".
func (*ErrorCode) ConfigurationError ¶
ConfigurationError returns true if ErrorCode represents the variant case "configuration-error".
func (*ErrorCode) ConnectionLimitReached ¶
ConnectionLimitReached returns true if ErrorCode represents the variant case "connection-limit-reached".
func (*ErrorCode) ConnectionReadTimeout ¶
ConnectionReadTimeout returns true if ErrorCode represents the variant case "connection-read-timeout".
func (*ErrorCode) ConnectionRefused ¶
ConnectionRefused returns true if ErrorCode represents the variant case "connection-refused".
func (*ErrorCode) ConnectionTerminated ¶
ConnectionTerminated returns true if ErrorCode represents the variant case "connection-terminated".
func (*ErrorCode) ConnectionTimeout ¶
ConnectionTimeout returns true if ErrorCode represents the variant case "connection-timeout".
func (*ErrorCode) ConnectionWriteTimeout ¶
ConnectionWriteTimeout returns true if ErrorCode represents the variant case "connection-write-timeout".
func (*ErrorCode) DNSError ¶
func (self *ErrorCode) DNSError() *DNSErrorPayload
DNSError returns a non-nil *DNSErrorPayload if ErrorCode represents the variant case "DNS-error".
func (*ErrorCode) DNSTimeout ¶
DNSTimeout returns true if ErrorCode represents the variant case "DNS-timeout".
func (*ErrorCode) DestinationIPProhibited ¶
DestinationIPProhibited returns true if ErrorCode represents the variant case "destination-IP-prohibited".
func (*ErrorCode) DestinationIPUnroutable ¶
DestinationIPUnroutable returns true if ErrorCode represents the variant case "destination-IP-unroutable".
func (*ErrorCode) DestinationNotFound ¶
DestinationNotFound returns true if ErrorCode represents the variant case "destination-not-found".
func (*ErrorCode) DestinationUnavailable ¶
DestinationUnavailable returns true if ErrorCode represents the variant case "destination-unavailable".
func (*ErrorCode) HTTPProtocolError ¶
HTTPProtocolError returns true if ErrorCode represents the variant case "HTTP-protocol-error".
func (*ErrorCode) HTTPRequestBodySize ¶
HTTPRequestBodySize returns a non-nil *[cm.Option[uint64]] if ErrorCode represents the variant case "HTTP-request-body-size".
func (*ErrorCode) HTTPRequestDenied ¶
HTTPRequestDenied returns true if ErrorCode represents the variant case "HTTP-request-denied".
func (*ErrorCode) HTTPRequestHeaderSectionSize ¶
HTTPRequestHeaderSectionSize returns a non-nil *[cm.Option[uint32]] if ErrorCode represents the variant case "HTTP-request-header-section-size".
func (*ErrorCode) HTTPRequestHeaderSize ¶
func (self *ErrorCode) HTTPRequestHeaderSize() *cm.Option[FieldSizePayload]
HTTPRequestHeaderSize returns a non-nil *[cm.Option[FieldSizePayload]] if ErrorCode represents the variant case "HTTP-request-header-size".
func (*ErrorCode) HTTPRequestLengthRequired ¶
HTTPRequestLengthRequired returns true if ErrorCode represents the variant case "HTTP-request-length-required".
func (*ErrorCode) HTTPRequestMethodInvalid ¶
HTTPRequestMethodInvalid returns true if ErrorCode represents the variant case "HTTP-request-method-invalid".
func (*ErrorCode) HTTPRequestTrailerSectionSize ¶
HTTPRequestTrailerSectionSize returns a non-nil *[cm.Option[uint32]] if ErrorCode represents the variant case "HTTP-request-trailer-section-size".
func (*ErrorCode) HTTPRequestTrailerSize ¶
func (self *ErrorCode) HTTPRequestTrailerSize() *FieldSizePayload
HTTPRequestTrailerSize returns a non-nil *FieldSizePayload if ErrorCode represents the variant case "HTTP-request-trailer-size".
func (*ErrorCode) HTTPRequestURIInvalid ¶
HTTPRequestURIInvalid returns true if ErrorCode represents the variant case "HTTP-request-URI-invalid".
func (*ErrorCode) HTTPRequestURITooLong ¶
HTTPRequestURITooLong returns true if ErrorCode represents the variant case "HTTP-request-URI-too-long".
func (*ErrorCode) HTTPResponseBodySize ¶
HTTPResponseBodySize returns a non-nil *[cm.Option[uint64]] if ErrorCode represents the variant case "HTTP-response-body-size".
func (*ErrorCode) HTTPResponseContentCoding ¶
HTTPResponseContentCoding returns a non-nil *[cm.Option[string]] if ErrorCode represents the variant case "HTTP-response-content-coding".
func (*ErrorCode) HTTPResponseHeaderSectionSize ¶
HTTPResponseHeaderSectionSize returns a non-nil *[cm.Option[uint32]] if ErrorCode represents the variant case "HTTP-response-header-section-size".
func (*ErrorCode) HTTPResponseHeaderSize ¶
func (self *ErrorCode) HTTPResponseHeaderSize() *FieldSizePayload
HTTPResponseHeaderSize returns a non-nil *FieldSizePayload if ErrorCode represents the variant case "HTTP-response-header-size".
func (*ErrorCode) HTTPResponseIncomplete ¶
HTTPResponseIncomplete returns true if ErrorCode represents the variant case "HTTP-response-incomplete".
func (*ErrorCode) HTTPResponseTimeout ¶
HTTPResponseTimeout returns true if ErrorCode represents the variant case "HTTP-response-timeout".
func (*ErrorCode) HTTPResponseTrailerSectionSize ¶
HTTPResponseTrailerSectionSize returns a non-nil *[cm.Option[uint32]] if ErrorCode represents the variant case "HTTP-response-trailer-section-size".
func (*ErrorCode) HTTPResponseTrailerSize ¶
func (self *ErrorCode) HTTPResponseTrailerSize() *FieldSizePayload
HTTPResponseTrailerSize returns a non-nil *FieldSizePayload if ErrorCode represents the variant case "HTTP-response-trailer-size".
func (*ErrorCode) HTTPResponseTransferCoding ¶
HTTPResponseTransferCoding returns a non-nil *[cm.Option[string]] if ErrorCode represents the variant case "HTTP-response-transfer-coding".
func (*ErrorCode) HTTPUpgradeFailed ¶
HTTPUpgradeFailed returns true if ErrorCode represents the variant case "HTTP-upgrade-failed".
func (*ErrorCode) InternalError ¶
InternalError returns a non-nil *[cm.Option[string]] if ErrorCode represents the variant case "internal-error".
func (*ErrorCode) LoopDetected ¶
LoopDetected returns true if ErrorCode represents the variant case "loop-detected".
func (ErrorCode) String ¶
String implements fmt.Stringer, returning the variant case name of v.
func (*ErrorCode) TLSAlertReceived ¶
func (self *ErrorCode) TLSAlertReceived() *TLSAlertReceivedPayload
TLSAlertReceived returns a non-nil *TLSAlertReceivedPayload if ErrorCode represents the variant case "TLS-alert-received".
func (*ErrorCode) TLSCertificateError ¶
TLSCertificateError returns true if ErrorCode represents the variant case "TLS-certificate-error".
func (*ErrorCode) TLSProtocolError ¶
TLSProtocolError returns true if ErrorCode represents the variant case "TLS-protocol-error".
type ErrorCodeShape ¶
type ErrorCodeShape struct {
// contains filtered or unexported fields
}
ErrorCodeShape is used for storage in variant or result types.
type FieldKey ¶
type FieldKey string
FieldKey represents the string "wasi:http/types@0.2.1#field-key".
Field keys are always strings.
type field-key = string
type FieldSizePayload ¶
type FieldSizePayload struct { FieldName cm.Option[string] FieldSize cm.Option[uint32] // contains filtered or unexported fields }
FieldSizePayload represents the record "wasi:http/types@0.2.1#field-size-payload".
Defines the case payload type for `HTTP-response-{header,trailer}-size` above:
record field-size-payload { field-name: option<string>, field-size: option<u32>, }
type FieldValue ¶
FieldValue represents the list "wasi:http/types@0.2.1#field-value".
Field values should always be ASCII strings. However, in reality, HTTP implementations often have to interpret malformed values, so they are provided as a list of bytes.
type field-value = list<u8>
type Fields ¶
Fields represents the imported resource "wasi:http/types@0.2.1#fields".
This following block defines the `fields` resource which corresponds to HTTP standard Fields. Fields are a common representation used for both Headers and Trailers.
A `fields` may be mutable or immutable. A `fields` created using the constructor, `from-list`, or `clone` will be mutable, but a `fields` resource given by other means (including, but not limited to, `incoming-request.headers`, `outgoing-request.headers`) might be be immutable. In an immutable fields, the `set`, `append`, and `delete` operations will fail with `header-error.immutable`.
resource fields
func NewFields ¶
func NewFields() (result Fields)
NewFields represents the imported constructor for resource "fields".
Construct an empty HTTP Fields.
The resulting `fields` is mutable.
constructor()
func (Fields) Append ¶
func (self Fields) Append(name FieldKey, value FieldValue) (result cm.Result[HeaderError, struct{}, HeaderError])
Append represents the imported method "append".
Append a value for a key. Does not change or delete any existing values for that key.
Fails with `header-error.immutable` if the `fields` are immutable.
Fails with `header-error.invalid-syntax` if the `field-key` or `field-value` are syntactically invalid.
append: func(name: field-key, value: field-value) -> result<_, header-error>
func (Fields) Clone ¶
Clone represents the imported method "clone".
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.
clone: func() -> fields
func (Fields) Delete ¶
func (self Fields) Delete(name FieldKey) (result cm.Result[HeaderError, struct{}, HeaderError])
Delete represents the imported method "delete".
Delete all values for a key. Does nothing if no values for the key exist.
Fails with `header-error.immutable` if the `fields` are immutable.
Fails with `header-error.invalid-syntax` if the `field-key` is syntactically invalid.
delete: func(name: field-key) -> result<_, header-error>
func (Fields) Entries ¶
Entries represents the imported method "entries".
Retrieve the full set of keys and values in the Fields. Like the constructor, the list represents each key-value pair.
The outer list represents each key-value pair in the Fields. Keys which have multiple values are represented by multiple entries in this list with the same key.
entries: func() -> list<tuple<field-key, field-value>>
func (Fields) Get ¶
func (self Fields) Get(name FieldKey) (result cm.List[FieldValue])
Get represents the imported method "get".
Get all of the values corresponding to a key. If the key is not present in this `fields` or is syntactically invalid, an empty list is returned. However, if the key is present but empty, this is represented by a list with one or more empty field-values present.
get: func(name: field-key) -> list<field-value>
func (Fields) Has ¶
Has represents the imported method "has".
Returns `true` when the key is present in this `fields`. If the key is syntactically invalid, `false` is returned.
has: func(name: field-key) -> bool
func (Fields) ResourceDrop ¶
func (self Fields) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "fields".
Drops a resource handle.
func (Fields) Set ¶
func (self Fields) Set(name FieldKey, value cm.List[FieldValue]) (result cm.Result[HeaderError, struct{}, HeaderError])
Set represents the imported method "set".
Set all of the values for a key. Clears any existing values for that key, if they have been set.
Fails with `header-error.immutable` if the `fields` are immutable.
Fails with `header-error.invalid-syntax` if the `field-key` or any of the `field-value`s are syntactically invalid.
set: func(name: field-key, value: list<field-value>) -> result<_, header-error>
type FutureIncomingResponse ¶
FutureIncomingResponse represents the imported resource "wasi:http/types@0.2.1#future-incoming-response".
Represents a future which may eventually return an incoming HTTP Response, or an error.
This resource is returned by the `wasi:http/outgoing-handler` interface to provide the HTTP Response corresponding to the sent Request.
resource future-incoming-response
func (FutureIncomingResponse) Get ¶
func (self FutureIncomingResponse) Get() (result cm.Option[cm.Result[cm.Result[ErrorCodeShape, IncomingResponse, ErrorCode], cm.Result[ErrorCodeShape, IncomingResponse, ErrorCode], struct{}]])
Get represents the imported method "get".
Returns the incoming HTTP Response, or an error, once one is ready.
The outer `option` represents future readiness. Users can wait on this `option` to become `some` using the `subscribe` method.
The outer `result` is used to retrieve the response or error at most once. It will be success on the first call in which the outer option is `some`, and error on subsequent calls.
The inner `result` represents that either the incoming HTTP Response status and headers have received successfully, or that an error occurred. Errors may also occur while consuming the response body, but those will be reported by the `incoming-body` and its `output-stream` child.
get: func() -> option<result<result<incoming-response, error-code>>>
func (FutureIncomingResponse) ResourceDrop ¶
func (self FutureIncomingResponse) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "future-incoming-response".
Drops a resource handle.
func (FutureIncomingResponse) Subscribe ¶
func (self FutureIncomingResponse) Subscribe() (result Pollable)
Subscribe represents the imported method "subscribe".
Returns a pollable which becomes ready when either the Response has been received, or an error has occurred. When this pollable is ready, the `get` method will return `some`.
subscribe: func() -> pollable
type FutureTrailers ¶
FutureTrailers represents the imported resource "wasi:http/types@0.2.1#future-trailers".
Represents a future which may eventually return trailers, or an error.
In the case that the incoming HTTP Request or Response did not have any trailers, this future will resolve to the empty set of trailers once the complete Request or Response body has been received.
resource future-trailers
func IncomingBodyFinish ¶
func IncomingBodyFinish(this IncomingBody) (result FutureTrailers)
IncomingBodyFinish represents the imported static function "finish".
Takes ownership of `incoming-body`, and returns a `future-trailers`. This function will trap if the `input-stream` child is still alive.
finish: static func(this: incoming-body) -> future-trailers
func (FutureTrailers) Get ¶
func (self FutureTrailers) Get() (result cm.Option[cm.Result[cm.Result[ErrorCodeShape, cm.Option[Trailers], ErrorCode], cm.Result[ErrorCodeShape, cm.Option[Trailers], ErrorCode], struct{}]])
Get represents the imported method "get".
Returns the contents of the trailers, or an error which occurred, once the future is ready.
The outer `option` represents future readiness. Users can wait on this `option` to become `some` using the `subscribe` method.
The outer `result` is used to retrieve the trailers or error at most once. It will be success on the first call in which the outer option is `some`, and error on subsequent calls.
The inner `result` represents that either the HTTP Request or Response body, as well as any trailers, were received successfully, or that an error occurred receiving them. The optional `trailers` indicates whether or not trailers were present in the body.
When some `trailers` are returned by this method, the `trailers` resource is immutable, and a child. Use of the `set`, `append`, or `delete` methods will return an error, and the resource must be dropped before the parent `future-trailers` is dropped.
get: func() -> option<result<result<option<trailers>, error-code>>>
func (FutureTrailers) ResourceDrop ¶
func (self FutureTrailers) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "future-trailers".
Drops a resource handle.
func (FutureTrailers) Subscribe ¶
func (self FutureTrailers) Subscribe() (result Pollable)
Subscribe represents the imported method "subscribe".
Returns a pollable which becomes ready when either the trailers have been received, or an error has occurred. When this pollable is ready, the `get` method will return `some`.
subscribe: func() -> pollable
type HeaderError ¶
type HeaderError uint8
HeaderError represents the variant "wasi:http/types@0.2.1#header-error".
This type enumerates the different kinds of errors that may occur when setting or appending to a `fields` resource.
variant header-error { invalid-syntax, forbidden, immutable, }
const ( // This error indicates that a `field-key` or `field-value` was // syntactically invalid when used with an operation that sets headers in a // `fields`. HeaderErrorInvalidSyntax HeaderError = iota // This error indicates that a forbidden `field-key` was used when trying // to set a header in a `fields`. HeaderErrorForbidden // This error indicates that the operation on the `fields` was not // permitted because the fields are immutable. HeaderErrorImmutable )
func (HeaderError) String ¶
func (e HeaderError) String() string
String implements fmt.Stringer, returning the enum case name of e.
type Headers ¶
type Headers = Fields
Headers represents the imported type alias "wasi:http/types@0.2.1#headers".
See Fields for more information.
type IOError ¶
IOError represents the imported type alias "wasi:http/types@0.2.1#io-error".
See ioerror.Error for more information.
type IncomingBody ¶
IncomingBody represents the imported resource "wasi:http/types@0.2.1#incoming-body".
Represents an incoming HTTP Request or Response's Body.
A body has both its contents - a stream of bytes - and a (possibly empty) set of trailers, indicating that the full contents of the body have been received. This resource represents the contents as an `input-stream` and the delivery of trailers as a `future-trailers`, and ensures that the user of this interface may only be consuming either the body contents or waiting on trailers at any given time.
resource incoming-body
func (IncomingBody) ResourceDrop ¶
func (self IncomingBody) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "incoming-body".
Drops a resource handle.
func (IncomingBody) Stream ¶
func (self IncomingBody) Stream() (result cm.Result[InputStream, InputStream, struct{}])
Stream represents the imported method "stream".
Returns the contents of the body, as a stream of bytes.
Returns success on first call: the stream representing the contents can be retrieved at most once. Subsequent calls will return error.
The returned `input-stream` resource is a child: it must be dropped before the parent `incoming-body` is dropped, or consumed by `incoming-body.finish`.
This invariant ensures that the implementation can determine whether the user is consuming the contents of the body, waiting on the `future-trailers` to be ready, or neither. This allows for network backpressure is to be applied when the user is consuming the body, and for that backpressure to not inhibit delivery of the trailers if the user does not read the entire body.
%stream: func() -> result<input-stream>
type IncomingRequest ¶
IncomingRequest represents the imported resource "wasi:http/types@0.2.1#incoming-request".
Represents an incoming HTTP Request.
resource incoming-request
func (IncomingRequest) Authority ¶
func (self IncomingRequest) Authority() (result cm.Option[string])
Authority represents the imported method "authority".
Returns the authority of the Request's target URI, if present.
authority: func() -> option<string>
func (IncomingRequest) Consume ¶
func (self IncomingRequest) Consume() (result cm.Result[IncomingBody, IncomingBody, struct{}])
Consume represents the imported method "consume".
Gives the `incoming-body` associated with this request. Will only return success at most once, and subsequent calls will return error.
consume: func() -> result<incoming-body>
func (IncomingRequest) Headers ¶
func (self IncomingRequest) Headers() (result Headers)
Headers represents the imported method "headers".
Get the `headers` associated with the request.
The returned `headers` resource is immutable: `set`, `append`, and `delete` operations will fail with `header-error.immutable`.
The `headers` returned are a child resource: it must be dropped before the parent `incoming-request` is dropped. Dropping this `incoming-request` before all children are dropped will trap.
headers: func() -> headers
func (IncomingRequest) Method ¶
func (self IncomingRequest) Method() (result Method)
Method represents the imported method "method".
Returns the method of the incoming request.
method: func() -> method
func (IncomingRequest) PathWithQuery ¶
func (self IncomingRequest) PathWithQuery() (result cm.Option[string])
PathWithQuery represents the imported method "path-with-query".
Returns the path with query parameters from the request, as a string.
path-with-query: func() -> option<string>
func (IncomingRequest) ResourceDrop ¶
func (self IncomingRequest) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "incoming-request".
Drops a resource handle.
type IncomingResponse ¶
IncomingResponse represents the imported resource "wasi:http/types@0.2.1#incoming-response".
Represents an incoming HTTP Response.
resource incoming-response
func (IncomingResponse) Consume ¶
func (self IncomingResponse) Consume() (result cm.Result[IncomingBody, IncomingBody, struct{}])
Consume represents the imported method "consume".
Returns the incoming body. May be called at most once. Returns error if called additional times.
consume: func() -> result<incoming-body>
func (IncomingResponse) Headers ¶
func (self IncomingResponse) Headers() (result Headers)
Headers represents the imported method "headers".
Returns the headers from the incoming response.
The returned `headers` resource is immutable: `set`, `append`, and `delete` operations will fail with `header-error.immutable`.
This headers resource is a child: it must be dropped before the parent `incoming-response` is dropped.
headers: func() -> headers
func (IncomingResponse) ResourceDrop ¶
func (self IncomingResponse) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "incoming-response".
Drops a resource handle.
func (IncomingResponse) Status ¶
func (self IncomingResponse) Status() (result StatusCode)
Status represents the imported method "status".
Returns the status code from the incoming response.
status: func() -> status-code
type InputStream ¶
type InputStream = streams.InputStream
InputStream represents the imported type alias "wasi:http/types@0.2.1#input-stream".
See streams.InputStream for more information.
type Method ¶
Method represents the variant "wasi:http/types@0.2.1#method".
This type corresponds to HTTP standard Methods.
variant method { get, head, post, put, delete, connect, options, trace, patch, other(string), }
func MethodOther ¶
MethodOther returns a Method of case "other".
func (*Method) Other ¶
Other returns a non-nil *[string] if Method represents the variant case "other".
func (Method) String ¶
String implements fmt.Stringer, returning the variant case name of v.
type OptionFieldSizePayloadShape ¶
type OptionFieldSizePayloadShape struct {
// contains filtered or unexported fields
}
OptionFieldSizePayloadShape is used for storage in variant or result types.
type OutgoingBody ¶
OutgoingBody represents the imported resource "wasi:http/types@0.2.1#outgoing-body".
Represents an outgoing HTTP Request or Response's Body.
A body has both its contents - a stream of bytes - and a (possibly empty) set of trailers, inducating the full contents of the body have been sent. This resource represents the contents as an `output-stream` child resource, and the completion of the body (with optional trailers) with a static function that consumes the `outgoing-body` resource, and ensures that the user of this interface may not write to the body contents after the body has been finished.
If the user code drops this resource, as opposed to calling the static method `finish`, the implementation should treat the body as incomplete, and that an error has occurred. The implementation should propagate this error to the HTTP protocol by whatever means it has available, including: corrupting the body on the wire, aborting the associated Request, or sending a late status code for the Response.
resource outgoing-body
func (OutgoingBody) ResourceDrop ¶
func (self OutgoingBody) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "outgoing-body".
Drops a resource handle.
func (OutgoingBody) Write ¶
func (self OutgoingBody) Write() (result cm.Result[OutputStream, OutputStream, struct{}])
Write represents the imported method "write".
Returns a stream for writing the body contents.
The returned `output-stream` is a child resource: it must be dropped before the parent `outgoing-body` resource is dropped (or finished), otherwise the `outgoing-body` drop or `finish` will trap.
Returns success on the first call: the `output-stream` resource for this `outgoing-body` may be retrieved at most once. Subsequent calls will return error.
write: func() -> result<output-stream>
type OutgoingRequest ¶
OutgoingRequest represents the imported resource "wasi:http/types@0.2.1#outgoing-request".
Represents an outgoing HTTP Request.
resource outgoing-request
func NewOutgoingRequest ¶
func NewOutgoingRequest(headers Headers) (result OutgoingRequest)
NewOutgoingRequest represents the imported constructor for resource "outgoing-request".
Construct a new `outgoing-request` with a default `method` of `GET`, and `none` values for `path-with-query`, `scheme`, and `authority`.
* `headers` is the HTTP Headers for the Request.
It is possible to construct, or manipulate with the accessor functions below, an `outgoing-request` with an invalid combination of `scheme` and `authority`, or `headers` which are not permitted to be sent. It is the obligation of the `outgoing-handler.handle` implementation to reject invalid constructions of `outgoing-request`.
constructor(headers: headers)
func (OutgoingRequest) Authority ¶
func (self OutgoingRequest) Authority() (result cm.Option[string])
Authority represents the imported method "authority".
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.
authority: func() -> option<string>
func (OutgoingRequest) Body ¶
func (self OutgoingRequest) Body() (result cm.Result[OutgoingBody, OutgoingBody, struct{}])
Body represents the imported method "body".
Returns the resource corresponding to the outgoing Body for this Request.
Returns success on the first call: the `outgoing-body` resource for this `outgoing-request` can be retrieved at most once. Subsequent calls will return error.
body: func() -> result<outgoing-body>
func (OutgoingRequest) Headers ¶
func (self OutgoingRequest) Headers() (result Headers)
Headers represents the imported method "headers".
Get the headers associated with the Request.
The returned `headers` resource is immutable: `set`, `append`, and `delete` operations will fail with `header-error.immutable`.
This headers resource is a child: it must be dropped before the parent `outgoing-request` is dropped, or its ownership is transferred to another component by e.g. `outgoing-handler.handle`.
headers: func() -> headers
func (OutgoingRequest) Method ¶
func (self OutgoingRequest) Method() (result Method)
Method represents the imported method "method".
Get the Method for the Request.
method: func() -> method
func (OutgoingRequest) PathWithQuery ¶
func (self OutgoingRequest) PathWithQuery() (result cm.Option[string])
PathWithQuery represents the imported method "path-with-query".
Get the combination of the HTTP Path and Query for the Request. When `none`, this represents an empty Path and empty Query.
path-with-query: func() -> option<string>
func (OutgoingRequest) ResourceDrop ¶
func (self OutgoingRequest) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "outgoing-request".
Drops a resource handle.
func (OutgoingRequest) Scheme ¶
func (self OutgoingRequest) Scheme() (result cm.Option[Scheme])
Scheme represents the imported method "scheme".
Get the HTTP Related Scheme for the Request. When `none`, the implementation may choose an appropriate default scheme.
scheme: func() -> option<scheme>
func (OutgoingRequest) SetAuthority ¶
func (self OutgoingRequest) SetAuthority(authority cm.Option[string]) (result cm.BoolResult)
SetAuthority represents the imported method "set-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.
set-authority: func(authority: option<string>) -> result
func (OutgoingRequest) SetMethod ¶
func (self OutgoingRequest) SetMethod(method Method) (result cm.BoolResult)
SetMethod represents the imported method "set-method".
Set the Method for the Request. Fails if the string present in a `method.other` argument is not a syntactically valid method.
set-method: func(method: method) -> result
func (OutgoingRequest) SetPathWithQuery ¶
func (self OutgoingRequest) SetPathWithQuery(pathWithQuery cm.Option[string]) (result cm.BoolResult)
SetPathWithQuery represents the imported method "set-path-with-query".
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.
set-path-with-query: func(path-with-query: option<string>) -> result
func (OutgoingRequest) SetScheme ¶
func (self OutgoingRequest) SetScheme(scheme cm.Option[Scheme]) (result cm.BoolResult)
SetScheme represents the imported method "set-scheme".
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.
set-scheme: func(scheme: option<scheme>) -> result
type OutgoingResponse ¶
OutgoingResponse represents the imported resource "wasi:http/types@0.2.1#outgoing-response".
Represents an outgoing HTTP Response.
resource outgoing-response
func NewOutgoingResponse ¶
func NewOutgoingResponse(headers Headers) (result OutgoingResponse)
NewOutgoingResponse represents the imported constructor for resource "outgoing-response".
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.
* `headers` is the HTTP Headers for the Response.
constructor(headers: headers)
func (OutgoingResponse) Body ¶
func (self OutgoingResponse) Body() (result cm.Result[OutgoingBody, OutgoingBody, struct{}])
Body represents the imported method "body".
Returns the resource corresponding to the outgoing Body for this Response.
Returns success on the first call: the `outgoing-body` resource for this `outgoing-response` can be retrieved at most once. Subsequent calls will return error.
body: func() -> result<outgoing-body>
func (OutgoingResponse) Headers ¶
func (self OutgoingResponse) Headers() (result Headers)
Headers represents the imported method "headers".
Get the headers associated with the Request.
The returned `headers` resource is immutable: `set`, `append`, and `delete` operations will fail with `header-error.immutable`.
This headers resource is a child: it must be dropped before the parent `outgoing-request` is dropped, or its ownership is transferred to another component by e.g. `outgoing-handler.handle`.
headers: func() -> headers
func (OutgoingResponse) ResourceDrop ¶
func (self OutgoingResponse) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "outgoing-response".
Drops a resource handle.
func (OutgoingResponse) SetStatusCode ¶
func (self OutgoingResponse) SetStatusCode(statusCode StatusCode) (result cm.BoolResult)
SetStatusCode represents the imported method "set-status-code".
Set the HTTP Status Code for the Response. Fails if the status-code given is not a valid http status code.
set-status-code: func(status-code: status-code) -> result
func (OutgoingResponse) StatusCode ¶
func (self OutgoingResponse) StatusCode() (result StatusCode)
StatusCode represents the imported method "status-code".
Get the HTTP Status Code for the Response.
status-code: func() -> status-code
type OutputStream ¶
type OutputStream = streams.OutputStream
OutputStream represents the imported type alias "wasi:http/types@0.2.1#output-stream".
See streams.OutputStream for more information.
type Pollable ¶
Pollable represents the imported type alias "wasi:http/types@0.2.1#pollable".
See poll.Pollable for more information.
type RequestOptions ¶
RequestOptions represents the imported resource "wasi:http/types@0.2.1#request-options".
Parameters for making an HTTP Request. Each of these parameters is currently an optional timeout applicable to the transport layer of the HTTP protocol.
These timeouts are separate from any the user may use to bound a blocking call to `wasi:io/poll.poll`.
resource request-options
func NewRequestOptions ¶
func NewRequestOptions() (result RequestOptions)
NewRequestOptions represents the imported constructor for resource "request-options".
Construct a default `request-options` value.
constructor()
func (RequestOptions) BetweenBytesTimeout ¶
func (self RequestOptions) BetweenBytesTimeout() (result cm.Option[Duration])
BetweenBytesTimeout represents the imported method "between-bytes-timeout".
The timeout for receiving subsequent chunks of bytes in the Response body stream.
between-bytes-timeout: func() -> option<duration>
func (RequestOptions) ConnectTimeout ¶
func (self RequestOptions) ConnectTimeout() (result cm.Option[Duration])
ConnectTimeout represents the imported method "connect-timeout".
The timeout for the initial connect to the HTTP Server.
connect-timeout: func() -> option<duration>
func (RequestOptions) FirstByteTimeout ¶
func (self RequestOptions) FirstByteTimeout() (result cm.Option[Duration])
FirstByteTimeout represents the imported method "first-byte-timeout".
The timeout for receiving the first byte of the Response body.
first-byte-timeout: func() -> option<duration>
func (RequestOptions) ResourceDrop ¶
func (self RequestOptions) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "request-options".
Drops a resource handle.
func (RequestOptions) SetBetweenBytesTimeout ¶
func (self RequestOptions) SetBetweenBytesTimeout(duration cm.Option[Duration]) (result cm.BoolResult)
SetBetweenBytesTimeout represents the imported method "set-between-bytes-timeout".
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.
set-between-bytes-timeout: func(duration: option<duration>) -> result
func (RequestOptions) SetConnectTimeout ¶
func (self RequestOptions) SetConnectTimeout(duration cm.Option[Duration]) (result cm.BoolResult)
SetConnectTimeout represents the imported method "set-connect-timeout".
Set the timeout for the initial connect to the HTTP Server. An error return value indicates that this timeout is not supported.
set-connect-timeout: func(duration: option<duration>) -> result
func (RequestOptions) SetFirstByteTimeout ¶
func (self RequestOptions) SetFirstByteTimeout(duration cm.Option[Duration]) (result cm.BoolResult)
SetFirstByteTimeout represents the imported method "set-first-byte-timeout".
Set the timeout for receiving the first byte of the Response body. An error return value indicates that this timeout is not supported.
set-first-byte-timeout: func(duration: option<duration>) -> result
type ResponseOutparam ¶
ResponseOutparam represents the imported resource "wasi:http/types@0.2.1#response-outparam".
Represents the ability to send an HTTP Response.
This resource is used by the `wasi:http/incoming-handler` interface to allow a Response to be sent corresponding to the Request provided as the other argument to `incoming-handler.handle`.
resource response-outparam
func (ResponseOutparam) ResourceDrop ¶
func (self ResponseOutparam) ResourceDrop()
ResourceDrop represents the imported resource-drop for resource "response-outparam".
Drops a resource handle.
type Scheme ¶
Scheme represents the variant "wasi:http/types@0.2.1#scheme".
This type corresponds to HTTP standard Related Schemes.
variant scheme { HTTP, HTTPS, other(string), }
func SchemeOther ¶
SchemeOther returns a Scheme of case "other".
func (*Scheme) Other ¶
Other returns a non-nil *[string] if Scheme represents the variant case "other".
func (Scheme) String ¶
String implements fmt.Stringer, returning the variant case name of v.
type StatusCode ¶
type StatusCode uint16
StatusCode represents the u16 "wasi:http/types@0.2.1#status-code".
This type corresponds to the HTTP standard Status Code.
type status-code = u16
type TLSAlertReceivedPayload ¶
type TLSAlertReceivedPayload struct { AlertID cm.Option[uint8] AlertMessage cm.Option[string] // contains filtered or unexported fields }
TLSAlertReceivedPayload represents the record "wasi:http/types@0.2.1#TLS-alert-received-payload".
Defines the case payload type for `TLS-alert-received` above:
record TLS-alert-received-payload { alert-id: option<u8>, alert-message: option<string>, }