HeaderFields

Struct HeaderFields 

Source
pub struct HeaderFields { /* private fields */ }
Expand description

Collection of header fields.

The collection uses Vec<_> internally to store the header fields, so it preserves the field order and allows multiple fields with the same name. This also means that complexity of some operations is O(n). However, this should not pose a problem in practice, as the number of header fields is usually quite small. The number of header fields can be also limited by the header field decoder. It is a trade-off between performance and footprint.

Implementations§

Source§

impl HeaderFields

Source

pub const fn new() -> HeaderFields

Create a new collection of header fields.

Source

pub fn with_capacity(capacity: usize) -> HeaderFields

Create a new collection of header fields with a given initial capacity.

Source

pub fn add<T>(&mut self, field: T)
where T: Into<HeaderField>,

Add a given header field to the collection.

This is an O(1) operation.

Source

pub fn set<T>(&mut self, field: T)
where T: Into<HeaderField>,

Replace all header fields having the same name (if any).

This is an O(n) operation.

Source

pub fn remove<N>(&mut self, name: &N)
where N: AsRef<[u8]> + ?Sized,

Remove all header fields with a given name.

This is an O(n) operation.

Source

pub fn get<'a, N>(&'a self, name: &'a N) -> FieldIter<'a>
where N: AsRef<[u8]> + ?Sized,

Get header fields with a given name.

This is an O(n) operation.

Source

pub fn last<'a, N>(&'a self, name: &'a N) -> Option<&'a HeaderField>
where N: AsRef<[u8]> + ?Sized,

Get the last header field with a given name.

This is an O(n) operation.

Source

pub fn last_value<'a, N>(&'a self, name: &'a N) -> Option<&'a HeaderFieldValue>
where N: AsRef<[u8]> + ?Sized,

Get value of the last header field with a given name.

This is an O(n) operation.

Source

pub fn all(&self) -> Iter<'_>

Get all header fields.

Source

pub fn is_empty(&self) -> bool

Check if the collection is empty.

Source

pub fn len(&self) -> usize

Get the number of header fields in the collection.

Trait Implementations§

Source§

impl Clone for HeaderFields

Source§

fn clone(&self) -> HeaderFields

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for HeaderFields

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for HeaderFields

Source§

fn default() -> HeaderFields

Returns the “default value” for a type. Read more
Source§

impl From<Vec<HeaderField>> for HeaderFields

Source§

fn from(fields: Vec<HeaderField>) -> HeaderFields

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V