pub struct Fields { /* private fields */ }
Expand description
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
.
Implementations§
source§impl Fields
impl Fields
sourcepub fn new() -> Self
pub fn new() -> Self
Construct an empty HTTP Fields.
The resulting fields
is mutable.
Examples found in repository?
10 11 12 13 14 15 16 17 18 19 20 21
fn handle(_request: IncomingRequest, response_out: ResponseOutparam) {
let resp = OutgoingResponse::new(Fields::new());
let body = resp.body().unwrap();
ResponseOutparam::set(response_out, Ok(resp));
let out = body.write().unwrap();
out.blocking_write_and_flush(b"Hello, WASI!").unwrap();
drop(out);
OutgoingBody::finish(body, None).unwrap();
}
More examples
12 13 14 15 16 17 18 19 20 21 22 23 24
fn handle(_request: IncomingRequest, response_out: ResponseOutparam) {
let resp = OutgoingResponse::new(Fields::new());
let body = resp.body().unwrap();
ResponseOutparam::set(response_out, Ok(resp));
let mut out = body.write().unwrap();
out.write_all(b"Hello, WASI!").unwrap();
out.flush().unwrap();
drop(out);
OutgoingBody::finish(body, None).unwrap();
}
source§impl Fields
impl Fields
sourcepub fn from_list(
entries: &[(FieldKey, FieldValue)]
) -> Result<Fields, HeaderError>
pub fn from_list( entries: &[(FieldKey, FieldValue)] ) -> Result<Fields, HeaderError>
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. In a valid Fields, all keys and values are valid UTF-8 strings. However, values are not always well-formed, so they are represented as a raw list of bytes.
An error result will be returned if any header or value was syntactically invalid, or if a header was forbidden.
source§impl Fields
impl Fields
sourcepub fn get(&self, name: &FieldKey) -> Vec<FieldValue>
pub fn get(&self, name: &FieldKey) -> Vec<FieldValue>
Get all of the values corresponding to a key. If the key is not present
in this fields
, 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.
source§impl Fields
impl Fields
sourcepub fn set(
&self,
name: &FieldKey,
value: &[FieldValue]
) -> Result<(), HeaderError>
pub fn set( &self, name: &FieldKey, value: &[FieldValue] ) -> Result<(), HeaderError>
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.
source§impl Fields
impl Fields
sourcepub fn append(
&self,
name: &FieldKey,
value: &FieldValue
) -> Result<(), HeaderError>
pub fn append( &self, name: &FieldKey, value: &FieldValue ) -> Result<(), HeaderError>
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.
source§impl Fields
impl Fields
sourcepub fn entries(&self) -> Vec<(FieldKey, FieldValue)>
pub fn entries(&self) -> Vec<(FieldKey, FieldValue)>
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.