Skip to main content

HeaderMapExt

Trait HeaderMapExt 

Source
pub trait HeaderMapExt: Sealed {
    // Required methods
    fn typed_insert<H>(&mut self, header: H)
       where H: HeaderEncode;
    fn typed_get<H>(&self) -> Option<H>
       where H: HeaderDecode;
    fn typed_try_get<H>(&self) -> Result<Option<H>, Error>
       where H: HeaderDecode;
    fn remove_all<K>(&mut self, name: K) -> usize
       where K: AsHeaderName + Clone;
    fn remove_all_values<K>(&mut self, name: K) -> Vec<HeaderValue>
       where K: AsHeaderName + Clone;
}
Expand description

An extension trait adding “typed” methods to http::HeaderMap.

Required Methods§

Source

fn typed_insert<H>(&mut self, header: H)
where H: HeaderEncode,

Inserts the typed header into this HeaderMap.

Source

fn typed_get<H>(&self) -> Option<H>
where H: HeaderDecode,

Tries to find the header by name, and then decode it into H.

Source

fn typed_try_get<H>(&self) -> Result<Option<H>, Error>
where H: HeaderDecode,

Tries to find the header by name, and then decode it into H.

Source

fn remove_all<K>(&mut self, name: K) -> usize
where K: AsHeaderName + Clone,

Remove every value associated with a header name and return how many were removed.

Note: HeaderMap::remove already removes the whole entry (all values) for a header — it just returns only the first value as Option<HeaderValue>. This method gives callers an accurate count without needing to call HeaderMap::get_all manually beforehand. Use remove_all_values when the values themselves are needed.

Source

fn remove_all_values<K>(&mut self, name: K) -> Vec<HeaderValue>
where K: AsHeaderName + Clone,

Remove every value associated with a header name and return them in iteration order.

Useful when you need to inspect, log, or relocate the removed values — HeaderMap::remove only surfaces the first.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl HeaderMapExt for HeaderMap

Source§

fn typed_insert<H>(&mut self, header: H)
where H: HeaderEncode,

Source§

fn typed_get<H>(&self) -> Option<H>
where H: HeaderDecode,

Source§

fn typed_try_get<H>(&self) -> Result<Option<H>, Error>
where H: HeaderDecode,

Source§

fn remove_all<K>(&mut self, name: K) -> usize
where K: AsHeaderName + Clone,

Source§

fn remove_all_values<K>(&mut self, name: K) -> Vec<HeaderValue>
where K: AsHeaderName + Clone,

Implementors§