http_types::content::accept

Struct Accept

Source
pub struct Accept { /* private fields */ }
Expand description

Client header advertising which media types the client is able to understand.

Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.

MDN Documentation

§Specifications

§Examples

use http_types::content::{Accept, MediaTypeProposal};
use http_types::{mime, Response};

let mut accept = Accept::new();
accept.push(MediaTypeProposal::new(mime::HTML, Some(0.8))?);
accept.push(MediaTypeProposal::new(mime::XML, Some(0.4))?);
accept.push(mime::PLAIN);

let mut res = Response::new(200);
let content_type = accept.negotiate(&[mime::XML])?;
content_type.apply(&mut res);

assert_eq!(res["Content-Type"], "application/xml;charset=utf-8");

Implementations§

Source§

impl Accept

Source

pub fn new() -> Self

Create a new instance of Accept.

Source

pub fn from_headers(headers: impl AsRef<Headers>) -> Result<Option<Self>>

Create an instance of Accept from a Headers instance.

Source

pub fn push(&mut self, prop: impl Into<MediaTypeProposal>)

Push a directive into the list of entries.

Source

pub fn wildcard(&self) -> bool

Returns true if a wildcard directive was passed.

Source

pub fn set_wildcard(&mut self, wildcard: bool)

Set the wildcard directive.

Source

pub fn sort(&mut self)

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.

Source

pub fn negotiate(&mut self, available: &[Mime]) -> Result<ContentType>

Determine the most suitable Content-Type encoding.

§Errors

If no suitable encoding is found, an error with the status of 406 will be returned.

Source

pub fn apply(&self, headers: impl AsMut<Headers>)

Sets the Accept-Encoding header.

Source

pub fn name(&self) -> HeaderName

Get the HeaderName.

Source

pub fn value(&self) -> HeaderValue

Get the HeaderValue.

Source

pub fn iter(&self) -> Iter<'_>

An iterator visiting all entries.

Source

pub fn iter_mut(&mut self) -> IterMut<'_>

An iterator visiting all entries.

Trait Implementations§

Source§

impl Debug for Accept

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> IntoIterator for &'a Accept

Source§

type Item = &'a MediaTypeProposal

The type of the elements being iterated over.
Source§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a> IntoIterator for &'a mut Accept

Source§

type Item = &'a mut MediaTypeProposal

The type of the elements being iterated over.
Source§

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl IntoIterator for Accept

Source§

type Item = MediaTypeProposal

The type of the elements being iterated over.
Source§

type IntoIter = IntoIter

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl ToHeaderValues for Accept

Source§

type Iter = IntoIter<HeaderValue>

Returned iterator over header values which this type may correspond to.
Source§

fn to_header_values(&self) -> Result<Self::Iter>

Converts this object to an iterator of resolved HeaderValues.

Auto Trait Implementations§

§

impl Freeze for Accept

§

impl RefUnwindSafe for Accept

§

impl Send for Accept

§

impl Sync for Accept

§

impl Unpin for Accept

§

impl UnwindSafe for Accept

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T