types

package
v0.0.0-...-bc518a9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

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

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

func HTTPErrorCode(err IOError) (result cm.Option[ErrorCode])

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

func ErrorCodeHTTPRequestBodySize(data cm.Option[uint64]) ErrorCode

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

func ErrorCodeHTTPRequestHeaderSectionSize(data cm.Option[uint32]) ErrorCode

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

func ErrorCodeHTTPRequestTrailerSectionSize(data cm.Option[uint32]) ErrorCode

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

func ErrorCodeHTTPResponseBodySize(data cm.Option[uint64]) ErrorCode

ErrorCodeHTTPResponseBodySize returns a ErrorCode of case "HTTP-response-body-size".

func ErrorCodeHTTPResponseContentCoding

func ErrorCodeHTTPResponseContentCoding(data cm.Option[string]) ErrorCode

ErrorCodeHTTPResponseContentCoding returns a ErrorCode of case "HTTP-response-content-coding".

func ErrorCodeHTTPResponseHeaderSectionSize

func ErrorCodeHTTPResponseHeaderSectionSize(data cm.Option[uint32]) ErrorCode

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

func ErrorCodeHTTPResponseTrailerSectionSize(data cm.Option[uint32]) ErrorCode

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

func ErrorCodeHTTPResponseTransferCoding(data cm.Option[string]) ErrorCode

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

func ErrorCodeInternalError(data cm.Option[string]) ErrorCode

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

func (self *ErrorCode) ConfigurationError() bool

ConfigurationError returns true if ErrorCode represents the variant case "configuration-error".

func (*ErrorCode) ConnectionLimitReached

func (self *ErrorCode) ConnectionLimitReached() bool

ConnectionLimitReached returns true if ErrorCode represents the variant case "connection-limit-reached".

func (*ErrorCode) ConnectionReadTimeout

func (self *ErrorCode) ConnectionReadTimeout() bool

ConnectionReadTimeout returns true if ErrorCode represents the variant case "connection-read-timeout".

func (*ErrorCode) ConnectionRefused

func (self *ErrorCode) ConnectionRefused() bool

ConnectionRefused returns true if ErrorCode represents the variant case "connection-refused".

func (*ErrorCode) ConnectionTerminated

func (self *ErrorCode) ConnectionTerminated() bool

ConnectionTerminated returns true if ErrorCode represents the variant case "connection-terminated".

func (*ErrorCode) ConnectionTimeout

func (self *ErrorCode) ConnectionTimeout() bool

ConnectionTimeout returns true if ErrorCode represents the variant case "connection-timeout".

func (*ErrorCode) ConnectionWriteTimeout

func (self *ErrorCode) ConnectionWriteTimeout() bool

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

func (self *ErrorCode) DNSTimeout() bool

DNSTimeout returns true if ErrorCode represents the variant case "DNS-timeout".

func (*ErrorCode) DestinationIPProhibited

func (self *ErrorCode) DestinationIPProhibited() bool

DestinationIPProhibited returns true if ErrorCode represents the variant case "destination-IP-prohibited".

func (*ErrorCode) DestinationIPUnroutable

func (self *ErrorCode) DestinationIPUnroutable() bool

DestinationIPUnroutable returns true if ErrorCode represents the variant case "destination-IP-unroutable".

func (*ErrorCode) DestinationNotFound

func (self *ErrorCode) DestinationNotFound() bool

DestinationNotFound returns true if ErrorCode represents the variant case "destination-not-found".

func (*ErrorCode) DestinationUnavailable

func (self *ErrorCode) DestinationUnavailable() bool

DestinationUnavailable returns true if ErrorCode represents the variant case "destination-unavailable".

func (*ErrorCode) HTTPProtocolError

func (self *ErrorCode) HTTPProtocolError() bool

HTTPProtocolError returns true if ErrorCode represents the variant case "HTTP-protocol-error".

func (*ErrorCode) HTTPRequestBodySize

func (self *ErrorCode) HTTPRequestBodySize() *cm.Option[uint64]

HTTPRequestBodySize returns a non-nil *[cm.Option[uint64]] if ErrorCode represents the variant case "HTTP-request-body-size".

func (*ErrorCode) HTTPRequestDenied

func (self *ErrorCode) HTTPRequestDenied() bool

HTTPRequestDenied returns true if ErrorCode represents the variant case "HTTP-request-denied".

func (*ErrorCode) HTTPRequestHeaderSectionSize

func (self *ErrorCode) HTTPRequestHeaderSectionSize() *cm.Option[uint32]

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

func (self *ErrorCode) HTTPRequestLengthRequired() bool

HTTPRequestLengthRequired returns true if ErrorCode represents the variant case "HTTP-request-length-required".

func (*ErrorCode) HTTPRequestMethodInvalid

func (self *ErrorCode) HTTPRequestMethodInvalid() bool

HTTPRequestMethodInvalid returns true if ErrorCode represents the variant case "HTTP-request-method-invalid".

func (*ErrorCode) HTTPRequestTrailerSectionSize

func (self *ErrorCode) HTTPRequestTrailerSectionSize() *cm.Option[uint32]

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

func (self *ErrorCode) HTTPRequestURIInvalid() bool

HTTPRequestURIInvalid returns true if ErrorCode represents the variant case "HTTP-request-URI-invalid".

func (*ErrorCode) HTTPRequestURITooLong

func (self *ErrorCode) HTTPRequestURITooLong() bool

HTTPRequestURITooLong returns true if ErrorCode represents the variant case "HTTP-request-URI-too-long".

func (*ErrorCode) HTTPResponseBodySize

func (self *ErrorCode) HTTPResponseBodySize() *cm.Option[uint64]

HTTPResponseBodySize returns a non-nil *[cm.Option[uint64]] if ErrorCode represents the variant case "HTTP-response-body-size".

func (*ErrorCode) HTTPResponseContentCoding

func (self *ErrorCode) HTTPResponseContentCoding() *cm.Option[string]

HTTPResponseContentCoding returns a non-nil *[cm.Option[string]] if ErrorCode represents the variant case "HTTP-response-content-coding".

func (*ErrorCode) HTTPResponseHeaderSectionSize

func (self *ErrorCode) HTTPResponseHeaderSectionSize() *cm.Option[uint32]

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

func (self *ErrorCode) HTTPResponseIncomplete() bool

HTTPResponseIncomplete returns true if ErrorCode represents the variant case "HTTP-response-incomplete".

func (*ErrorCode) HTTPResponseTimeout

func (self *ErrorCode) HTTPResponseTimeout() bool

HTTPResponseTimeout returns true if ErrorCode represents the variant case "HTTP-response-timeout".

func (*ErrorCode) HTTPResponseTrailerSectionSize

func (self *ErrorCode) HTTPResponseTrailerSectionSize() *cm.Option[uint32]

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

func (self *ErrorCode) HTTPResponseTransferCoding() *cm.Option[string]

HTTPResponseTransferCoding returns a non-nil *[cm.Option[string]] if ErrorCode represents the variant case "HTTP-response-transfer-coding".

func (*ErrorCode) HTTPUpgradeFailed

func (self *ErrorCode) HTTPUpgradeFailed() bool

HTTPUpgradeFailed returns true if ErrorCode represents the variant case "HTTP-upgrade-failed".

func (*ErrorCode) InternalError

func (self *ErrorCode) InternalError() *cm.Option[string]

InternalError returns a non-nil *[cm.Option[string]] if ErrorCode represents the variant case "internal-error".

func (*ErrorCode) LoopDetected

func (self *ErrorCode) LoopDetected() bool

LoopDetected returns true if ErrorCode represents the variant case "loop-detected".

func (ErrorCode) String

func (v ErrorCode) String() 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

func (self *ErrorCode) TLSCertificateError() bool

TLSCertificateError returns true if ErrorCode represents the variant case "TLS-certificate-error".

func (*ErrorCode) TLSProtocolError

func (self *ErrorCode) TLSProtocolError() bool

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

type FieldValue cm.List[uint8]

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

type Fields cm.Resource

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

func (self Fields) Clone() (result Fields)

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

func (self Fields) Entries() (result cm.List[cm.Tuple[FieldKey, FieldValue]])

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

func (self Fields) Has(name FieldKey) (result bool)

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

type FutureIncomingResponse cm.Resource

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

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

type FutureTrailers cm.Resource

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

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

type IOError = ioerror.Error

IOError represents the imported type alias "wasi:http/types@0.2.1#io-error".

See ioerror.Error for more information.

type IncomingBody

type IncomingBody cm.Resource

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

type IncomingRequest cm.Resource

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.

func (IncomingRequest) Scheme

func (self IncomingRequest) Scheme() (result cm.Option[Scheme])

Scheme represents the imported method "scheme".

Returns the protocol scheme from the request.

scheme: func() -> option<scheme>

type IncomingResponse

type IncomingResponse cm.Resource

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

type Method cm.Variant[uint8, string, string]

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 MethodConnect

func MethodConnect() Method

MethodConnect returns a Method of case "connect".

func MethodDelete

func MethodDelete() Method

MethodDelete returns a Method of case "delete".

func MethodGet

func MethodGet() Method

MethodGet returns a Method of case "get".

func MethodHead

func MethodHead() Method

MethodHead returns a Method of case "head".

func MethodOptions

func MethodOptions() Method

MethodOptions returns a Method of case "options".

func MethodOther

func MethodOther(data string) Method

MethodOther returns a Method of case "other".

func MethodPatch

func MethodPatch() Method

MethodPatch returns a Method of case "patch".

func MethodPost

func MethodPost() Method

MethodPost returns a Method of case "post".

func MethodPut

func MethodPut() Method

MethodPut returns a Method of case "put".

func MethodTrace

func MethodTrace() Method

MethodTrace returns a Method of case "trace".

func (*Method) Connect

func (self *Method) Connect() bool

Connect returns true if Method represents the variant case "connect".

func (*Method) Delete

func (self *Method) Delete() bool

Delete returns true if Method represents the variant case "delete".

func (*Method) Get

func (self *Method) Get() bool

Get returns true if Method represents the variant case "get".

func (*Method) Head

func (self *Method) Head() bool

Head returns true if Method represents the variant case "head".

func (*Method) Options

func (self *Method) Options() bool

Options returns true if Method represents the variant case "options".

func (*Method) Other

func (self *Method) Other() *string

Other returns a non-nil *[string] if Method represents the variant case "other".

func (*Method) Patch

func (self *Method) Patch() bool

Patch returns true if Method represents the variant case "patch".

func (*Method) Post

func (self *Method) Post() bool

Post returns true if Method represents the variant case "post".

func (*Method) Put

func (self *Method) Put() bool

Put returns true if Method represents the variant case "put".

func (Method) String

func (v Method) String() string

String implements fmt.Stringer, returning the variant case name of v.

func (*Method) Trace

func (self *Method) Trace() bool

Trace returns true if Method represents the variant case "trace".

type OptionFieldSizePayloadShape

type OptionFieldSizePayloadShape struct {
	// contains filtered or unexported fields
}

OptionFieldSizePayloadShape is used for storage in variant or result types.

type OutgoingBody

type OutgoingBody cm.Resource

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

type OutgoingRequest cm.Resource

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

type OutgoingResponse cm.Resource

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

type Pollable = poll.Pollable

Pollable represents the imported type alias "wasi:http/types@0.2.1#pollable".

See poll.Pollable for more information.

type RequestOptions

type RequestOptions cm.Resource

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

type ResponseOutparam cm.Resource

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

type Scheme cm.Variant[uint8, string, string]

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 SchemeHTTP

func SchemeHTTP() Scheme

SchemeHTTP returns a Scheme of case "HTTP".

func SchemeHTTPS

func SchemeHTTPS() Scheme

SchemeHTTPS returns a Scheme of case "HTTPS".

func SchemeOther

func SchemeOther(data string) Scheme

SchemeOther returns a Scheme of case "other".

func (*Scheme) HTTP

func (self *Scheme) HTTP() bool

HTTP returns true if Scheme represents the variant case "HTTP".

func (*Scheme) HTTPS

func (self *Scheme) HTTPS() bool

HTTPS returns true if Scheme represents the variant case "HTTPS".

func (*Scheme) Other

func (self *Scheme) Other() *string

Other returns a non-nil *[string] if Scheme represents the variant case "other".

func (Scheme) String

func (v Scheme) String() 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>,
}

type Trailers

type Trailers = Fields

Trailers represents the imported type alias "wasi:http/types@0.2.1#trailers".

See Fields for more information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL