[][src]Function accept_encoding_fork::encodings

pub fn encodings(headers: &HeaderMap) -> Result<Vec<(Option<Encoding>, f32)>>

Parse a set of HTTP headers into a vector containing tuples of options containing encodings and their corresponding q-values.

If you're looking for more fine-grained control over what encoding to choose for the client, or if you don't support every Encoding listed, this is likely what you want.

Note that a result of None indicates there preference is expressed on which encoding to use. Either the Accept-Encoding header is not present, or * is set as the most preferred encoding.

Examples

use accept_encoding::Encoding;
use http::header::{HeaderMap, HeaderValue, ACCEPT_ENCODING};

let mut headers = HeaderMap::new();
headers.insert(ACCEPT_ENCODING, HeaderValue::from_str("zstd;q=1.0, deflate;q=0.8, br;q=0.9")?);

let encodings = accept_encoding::encodings(&headers)?;
for (encoding, qval) in encodings {
    println!("{:?} {}", encoding, qval);
}