Struct headers_accept_encoding::AcceptEncoding
source · pub struct AcceptEncoding(pub QualityValue);
Expand description
Accept-Encoding
header, defined in
RFC7231
The Accept-Encoding
header field can be used by user agents to
indicate what response content-codings are acceptable in the response.
An “identity” token is used as a synonym for “no encoding” in
order to communicate when no encoding is preferred.
ABNF
Accept-Encoding = #( codings [ weight ] )
codings = content-coding / "identity" / "*"
Example Values
gzip
br;q=1.0, gzip;q=0.8
Tuple Fields§
§0: QualityValue
Implementations§
source§impl AcceptEncoding
impl AcceptEncoding
sourcepub fn gzip() -> AcceptEncoding
pub fn gzip() -> AcceptEncoding
Convience method to create an Accept-Encoding: gzip
header
sourcepub fn from_quality_pairs<'i, I>(pairs: &mut I) -> Result<AcceptEncoding, Error>where
I: Iterator<Item = (&'i str, f32)>,
pub fn from_quality_pairs<'i, I>(pairs: &mut I) -> Result<AcceptEncoding, Error>where I: Iterator<Item = (&'i str, f32)>,
A convience method to create an Accept-Encoding header from pairs of values and qualities
Example
use headers::AcceptEncoding;
let pairs = vec![("gzip", 1.0), ("deflate", 0.8)];
let header = AcceptEncoding::from_quality_pairs(&mut pairs.into_iter());
sourcepub fn prefered_encoding(&self) -> Option<ContentCoding>
pub fn prefered_encoding(&self) -> Option<ContentCoding>
Returns the most prefered encoding that is specified by the header, if one is specified.
Note: This peeks at the underlying iter, not modifying it.
Example
use headers::{AcceptEncoding, ContentCoding};
let pairs = vec![("gzip", 1.0), ("deflate", 0.8)];
let accept_enc = AcceptEncoding::from_quality_pairs(&mut pairs.into_iter()).unwrap();
let mut encodings = accept_enc.sorted_encodings();
assert_eq!(accept_enc.prefered_encoding(), Some(ContentCoding::GZIP));
sourcepub fn sorted_encodings<'a>(
&'a self
) -> impl Iterator<Item = ContentCoding> + 'a
pub fn sorted_encodings<'a>( &'a self ) -> impl Iterator<Item = ContentCoding> + 'a
Returns a quality sorted iterator of the ContentCoding
Example
use headers::{AcceptEncoding, ContentCoding, HeaderValue};
let val = HeaderValue::from_static("deflate, gzip;q=1.0, br;q=0.8");
let accept_enc = AcceptEncoding(val.into());
let mut encodings = accept_enc.sorted_encodings();
assert_eq!(encodings.next(), Some(ContentCoding::DEFLATE));
assert_eq!(encodings.next(), Some(ContentCoding::GZIP));
assert_eq!(encodings.next(), Some(ContentCoding::BROTLI));
assert_eq!(encodings.next(), None);
sourcepub fn sorted_values(&self) -> impl Iterator<Item = &str>
pub fn sorted_values(&self) -> impl Iterator<Item = &str>
Returns a quality sorted iterator of values
Example
use headers::{AcceptEncoding, ContentCoding, HeaderValue};
let val = HeaderValue::from_static("deflate, gzip;q=1.0, br;q=0.8");
let accept_enc = AcceptEncoding(val.into());
let mut encodings = accept_enc.sorted_values();
assert_eq!(encodings.next(), Some("deflate"));
assert_eq!(encodings.next(), Some("gzip"));
assert_eq!(encodings.next(), Some("br"));
assert_eq!(encodings.next(), None);
Trait Implementations§
source§impl Clone for AcceptEncoding
impl Clone for AcceptEncoding
source§fn clone(&self) -> AcceptEncoding
fn clone(&self) -> AcceptEncoding
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more