[−][src]Struct rocket::http::Accept
The HTTP Accept header.
An Accept header is composed of zero or more media types, each of which
may have an optional quality value (a QMediaType). The header is sent by
an HTTP client to describe the formats it accepts as well as the order in
which it prefers different formats.
Usage
The Accept header of an incoming request can be retrieved via the
[Request::accept()] method. The preferred() method can be used to
retrieve the client's preferred media type.
An Accept type with a single, common media type can be easily constructed
via provided associated constants.
Example
Construct an Accept header with a single application/json media type:
use rocket::http::Accept; let accept_json = Accept::JSON;
Header
Accept implements Into<Header>. As such, it can be used in any context
where an Into<Header> is expected:
use rocket::http::Accept; use rocket::response::Response; let response = Response::build().header(Accept::JSON).finalize();
Methods
impl Accept[src]
pub fn new<T>(items: T) -> Accept where
T: IntoCollection<QMediaType>, [src]
T: IntoCollection<QMediaType>,
Constructs a new Accept header from one or more media types.
The items parameter may be of type QMediaType, &[QMediaType], or
Vec<QMediaType>. To prevent additional allocations, prefer to provide
inputs of type QMediaType and Vec<QMediaType>.
Example
use rocket::http::{QMediaType, MediaType, Accept}; // Construct an `Accept` via a `Vec<QMediaType>`. let json_then_html = vec![MediaType::JSON.into(), MediaType::HTML.into()]; let accept = Accept::new(json_then_html); assert_eq!(accept.preferred().media_type(), &MediaType::JSON); // Construct an `Accept` via an `&[QMediaType]`. let accept = Accept::new(&[MediaType::JSON.into(), MediaType::HTML.into()]); assert_eq!(accept.preferred().media_type(), &MediaType::JSON); // Construct an `Accept` via a `QMediaType`. let accept = Accept::new(QMediaType(MediaType::JSON, None)); assert_eq!(accept.preferred().media_type(), &MediaType::JSON);
pub fn preferred(&self) -> &QMediaType[src]
Retrieve the client's preferred media type. This method follows RFC
7231 5.3.2. If the list of media types is empty, this method returns a
media type of any with no quality value: (*/*).
Example
use rocket::http::{QMediaType, MediaType, Accept}; let media_types = vec![ QMediaType(MediaType::JSON, Some(0.3)), QMediaType(MediaType::HTML, Some(0.9)) ]; let accept = Accept::new(media_types); assert_eq!(accept.preferred().media_type(), &MediaType::HTML);
pub fn first(&self) -> Option<&QMediaType>[src]
Retrieve the first media type in self, if any.
Example
use rocket::http::{QMediaType, MediaType, Accept}; let accept = Accept::new(QMediaType(MediaType::XML, None)); assert_eq!(accept.first(), Some(&MediaType::XML.into()));
pub fn iter(&'a self) -> impl Iterator<Item = &'a QMediaType> + 'a[src]
Returns an iterator over all of the (quality) media types in self.
Media types are returned in the order in which they appear in the
header.
Example
use rocket::http::{QMediaType, MediaType, Accept}; let qmedia_types = vec![ QMediaType(MediaType::JSON, Some(0.3)), QMediaType(MediaType::HTML, Some(0.9)) ]; let accept = Accept::new(qmedia_types.clone()); let mut iter = accept.iter(); assert_eq!(iter.next(), Some(&qmedia_types[0])); assert_eq!(iter.next(), Some(&qmedia_types[1])); assert_eq!(iter.next(), None);
pub fn media_types(&'a self) -> impl Iterator<Item = &'a MediaType> + 'a[src]
Returns an iterator over all of the (bare) media types in self. Media
types are returned in the order in which they appear in the header.
Example
use rocket::http::{QMediaType, MediaType, Accept}; let qmedia_types = vec![ QMediaType(MediaType::JSON, Some(0.3)), QMediaType(MediaType::HTML, Some(0.9)) ]; let accept = Accept::new(qmedia_types.clone()); let mut iter = accept.media_types(); assert_eq!(iter.next(), Some(qmedia_types[0].media_type())); assert_eq!(iter.next(), Some(qmedia_types[1].media_type())); assert_eq!(iter.next(), None);
pub const Any: Accept[src]
An Accept header with the single media type for
any media type
:
/
pub const Binary: Accept[src]
An Accept header with the single media type for
binary data
:
application
/
octet-stream
pub const HTML: Accept[src]
An Accept header with the single media type for
HTML
:
text
/
html
pub const Plain: Accept[src]
An Accept header with the single media type for
plain text
:
text
/
plain
pub const JSON: Accept[src]
An Accept header with the single media type for
JSON
:
application
/
json
pub const MsgPack: Accept[src]
An Accept header with the single media type for
MsgPack
:
application
/
msgpack
pub const Form: Accept[src]
An Accept header with the single media type for
forms
:
application
/
x-www-form-urlencoded
pub const JavaScript: Accept[src]
An Accept header with the single media type for
JavaScript
:
application
/
javascript
pub const CSS: Accept[src]
An Accept header with the single media type for
CSS
:
text
/
css
pub const FormData: Accept[src]
An Accept header with the single media type for
multipart form data
:
multipart
/
form-data
pub const XML: Accept[src]
An Accept header with the single media type for
XML
:
text
/
xml
pub const CSV: Accept[src]
An Accept header with the single media type for
CSV
:
text
/
csv
pub const PNG: Accept[src]
An Accept header with the single media type for
PNG
:
image
/
png
pub const GIF: Accept[src]
An Accept header with the single media type for
GIF
:
image
/
gif
pub const BMP: Accept[src]
An Accept header with the single media type for
BMP
:
image
/
bmp
pub const JPEG: Accept[src]
An Accept header with the single media type for
JPEG
:
image
/
jpeg
pub const WEBP: Accept[src]
An Accept header with the single media type for
WEBP
:
image
/
webp
pub const SVG: Accept[src]
An Accept header with the single media type for
SVG
:
image
/
svg+xml
pub const Icon: Accept[src]
An Accept header with the single media type for
Icon
:
image
/
x-icon
pub const WEBM: Accept[src]
An Accept header with the single media type for
WEBM
:
video
/
webm
pub const WEBA: Accept[src]
An Accept header with the single media type for
WEBM Audio
:
audio
/
webm
pub const OGG: Accept[src]
An Accept header with the single media type for
OGG Video
:
video
/
ogg
pub const FLAC: Accept[src]
An Accept header with the single media type for
FLAC
:
audio
/
flac
pub const WAV: Accept[src]
An Accept header with the single media type for
WAV
:
audio
/
wav
pub const PDF: Accept[src]
An Accept header with the single media type for
PDF
:
application
/
pdf
pub const TTF: Accept[src]
An Accept header with the single media type for
TTF
:
application
/
font-sfnt
pub const OTF: Accept[src]
An Accept header with the single media type for
OTF
:
application
/
font-sfnt
pub const WOFF: Accept[src]
An Accept header with the single media type for
WOFF
:
application
/
font-woff
pub const WOFF2: Accept[src]
An Accept header with the single media type for
WOFF2
:
font
/
woff2
pub const JsonApi: Accept[src]
An Accept header with the single media type for
JSON API
:
application
/
vnd.api+json
pub const WASM: Accept[src]
An Accept header with the single media type for
WASM
:
application
/
wasm
pub const TIFF: Accept[src]
An Accept header with the single media type for
TIFF
:
image
/
tiff
pub const AAC: Accept[src]
An Accept header with the single media type for
AAC Audio
:
audio
/
aac
pub const Calendar: Accept[src]
An Accept header with the single media type for
iCalendar
:
text
/
calendar
pub const MPEG: Accept[src]
An Accept header with the single media type for
MPEG Video
:
video
/
mpeg
pub const TAR: Accept[src]
An Accept header with the single media type for
tape archive
:
application
/
x-tar
pub const GZIP: Accept[src]
An Accept header with the single media type for
gzipped binary
:
application
/
gzip
pub const MOV: Accept[src]
An Accept header with the single media type for
quicktime video
:
video
/
quicktime
pub const MP4: Accept[src]
An Accept header with the single media type for
MPEG4 Video
:
video
/
mp4
pub const ZIP: Accept[src]
An Accept header with the single media type for
ZIP archive
:
application
/
zip
Trait Implementations
impl Clone for Accept[src]
impl Debug for Accept[src]
impl Display for Accept[src]
impl<T> From<T> for Accept where
T: IntoCollection<MediaType>, [src]
T: IntoCollection<MediaType>,
impl<'a, 'r> FromRequest<'a, 'r> for &'a Accept[src]
type Error = !
The associated error to be returned if derivation fails.
fn from_request(request: &'a Request<'r>) -> Outcome<Self, Self::Error>[src]
impl FromStr for Accept[src]
type Err = String
The associated error which can be returned from parsing.
fn from_str(raw: &str) -> Result<Accept, String>[src]
impl Into<Header<'static>> for Accept[src]
Creates a new Header with name Accept and the value set to the HTTP
rendering of this Accept header.
impl PartialEq<Accept> for Accept[src]
impl StructuralPartialEq for Accept[src]
Auto Trait Implementations
impl RefUnwindSafe for Accept
impl Send for Accept
impl Sync for Accept
impl Unpin for Accept
impl UnwindSafe for Accept
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T, I> AsResult<T, I> for T where
I: Input, [src]
I: Input,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> IntoCollection<T> for T[src]
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>, [src]
A: Array<Item = T>,
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
A: Array<Item = U>,
F: FnMut(T) -> U, [src]
A: Array<Item = U>,
F: FnMut(T) -> U,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T> ToString for T where
T: Display + ?Sized, [src]
T: Display + ?Sized,
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.
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.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Typeable for T where
T: Any, [src]
T: Any,