Struct mio_surf::http::content::accept_encoding::AcceptEncoding [−][src]
Client header advertising available compression algorithms.
Specifications
Examples
use http_types::content::{AcceptEncoding, ContentEncoding, Encoding, EncodingProposal}; use http_types::Response; let mut accept = AcceptEncoding::new(); accept.push(EncodingProposal::new(Encoding::Brotli, Some(0.8))?); accept.push(EncodingProposal::new(Encoding::Gzip, Some(0.4))?); accept.push(EncodingProposal::new(Encoding::Identity, None)?); let mut res = Response::new(200); let encoding = accept.negotiate(&[Encoding::Brotli, Encoding::Gzip])?; encoding.apply(&mut res); assert_eq!(res["Content-Encoding"], "br");
Implementations
impl AcceptEncoding
[src]
pub fn new() -> AcceptEncoding
[src]
Create a new instance of AcceptEncoding
.
pub fn from_headers(
headers: impl AsRef<Headers>
) -> Result<Option<AcceptEncoding>, Error>
[src]
headers: impl AsRef<Headers>
) -> Result<Option<AcceptEncoding>, Error>
Create an instance of AcceptEncoding
from a Headers
instance.
pub fn push(&mut self, prop: impl Into<EncodingProposal>)
[src]
Push a directive into the list of entries.
pub fn wildcard(&self) -> bool
[src]
Returns true
if a wildcard directive was passed.
pub fn set_wildcard(&mut self, wildcard: bool)
[src]
Set the wildcard directive.
pub fn sort(&mut self)
[src]
Sort the header directives by weight.
Headers with a higher q=
value will be returned first. If two
directives have the same weight, the directive that was declared later
will be returned first.
pub fn negotiate(
&mut self,
available: &[Encoding]
) -> Result<ContentEncoding, Error>
[src]
&mut self,
available: &[Encoding]
) -> Result<ContentEncoding, Error>
Determine the most suitable Content-Type
encoding.
Errors
If no suitable encoding is found, an error with the status of 406
will be returned.
pub fn apply(&self, headers: impl AsMut<Headers>)
[src]
Sets the Accept-Encoding
header.
pub fn name(&self) -> HeaderName
[src]
Get the HeaderName
.
pub fn value(&self) -> HeaderValue
[src]
Get the HeaderValue
.
pub fn iter(&self) -> Iter<'_>ⓘNotable traits for Iter<'a>
impl<'a> Iterator for Iter<'a> type Item = &'a EncodingProposal;
[src]
Notable traits for Iter<'a>
impl<'a> Iterator for Iter<'a> type Item = &'a EncodingProposal;
An iterator visiting all entries.
pub fn iter_mut(&mut self) -> IterMut<'_>ⓘNotable traits for IterMut<'a>
impl<'a> Iterator for IterMut<'a> type Item = &'a mut EncodingProposal;
[src]
Notable traits for IterMut<'a>
impl<'a> Iterator for IterMut<'a> type Item = &'a mut EncodingProposal;
An iterator visiting all entries.
Trait Implementations
impl Debug for AcceptEncoding
[src]
impl<'a> IntoIterator for &'a mut AcceptEncoding
[src]
type Item = &'a mut EncodingProposal
The type of the elements being iterated over.
type IntoIter = IterMut<'a>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> <&'a mut AcceptEncoding as IntoIterator>::IntoIter
[src]
impl<'a> IntoIterator for &'a AcceptEncoding
[src]
type Item = &'a EncodingProposal
The type of the elements being iterated over.
type IntoIter = Iter<'a>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> <&'a AcceptEncoding as IntoIterator>::IntoIter
[src]
impl IntoIterator for AcceptEncoding
[src]
type Item = EncodingProposal
The type of the elements being iterated over.
type IntoIter = IntoIter
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> <AcceptEncoding as IntoIterator>::IntoIter
[src]
impl ToHeaderValues for AcceptEncoding
[src]
type Iter = IntoIter<HeaderValue>
Returned iterator over header values which this type may correspond to.
pub fn to_header_values(
&self
) -> Result<<AcceptEncoding as ToHeaderValues>::Iter, Error>
[src]
&self
) -> Result<<AcceptEncoding as ToHeaderValues>::Iter, Error>
Auto Trait Implementations
impl RefUnwindSafe for AcceptEncoding
[src]
impl Send for AcceptEncoding
[src]
impl Sync for AcceptEncoding
[src]
impl Unpin for AcceptEncoding
[src]
impl UnwindSafe for AcceptEncoding
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> WithSubscriber for T
[src]
pub fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
S: Into<Dispatch>,