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>
pub fn from_quality_pairs<'i, I>(pairs: &mut I) -> Result<AcceptEncoding, Error>
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 moresource§impl Debug for AcceptEncoding
impl Debug for AcceptEncoding
Auto Trait Implementations§
impl RefUnwindSafe for AcceptEncoding
impl Send for AcceptEncoding
impl Sync for AcceptEncoding
impl Unpin for AcceptEncoding
impl UnwindSafe for AcceptEncoding
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more