Struct rocket::http::Accept [−][src]
pub struct 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]
impl Accept
pub fn new<T: IntoCollection<QMediaType>>(items: T) -> Accept
[src]
pub fn new<T: IntoCollection<QMediaType>>(items: T) -> Accept
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]
pub fn preferred(&self) -> &QMediaType
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]
pub fn first(&self) -> Option<&QMediaType>
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>(
&'a self
) -> impl Iterator<Item = &'a QMediaType> + 'a
[src]
pub fn iter<'a>(
&'a self
) -> impl Iterator<Item = &'a QMediaType> + 'a
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>(
&'a self
) -> impl Iterator<Item = &'a MediaType> + 'a
[src]
pub fn media_types<'a>(
&'a self
) -> impl Iterator<Item = &'a MediaType> + 'a
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
Any: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::Any, None)]))
An Accept
header with the single media type for
any media type
:
/
pub const Binary: Accept
Binary: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::Binary, None)]))
An Accept
header with the single media type for
binary data
:
application
/
octet-stream
pub const HTML: Accept
HTML: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::HTML, None)]))
An Accept
header with the single media type for
HTML
:
text
/
html
pub const Plain: Accept
Plain: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::Plain, None)]))
An Accept
header with the single media type for
plain text
:
text
/
plain
pub const JSON: Accept
JSON: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::JSON, None)]))
An Accept
header with the single media type for
JSON
:
application
/
json
pub const MsgPack: Accept
MsgPack: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::MsgPack, None)]))
An Accept
header with the single media type for
MessagePack
:
application
/
msgpack
pub const Form: Accept
Form: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::Form, None)]))
An Accept
header with the single media type for
forms
:
application
/
x-www-form-urlencoded
pub const JavaScript: Accept
JavaScript: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::JavaScript, None)]))
An Accept
header with the single media type for
JavaScript
:
application
/
javascript
pub const CSS: Accept
CSS: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::CSS, None)]))
An Accept
header with the single media type for
CSS
:
text
/
css
pub const FormData: Accept
FormData: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::FormData, None)]))
An Accept
header with the single media type for
multipart form data
:
multipart
/
form-data
pub const XML: Accept
XML: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::XML, None)]))
An Accept
header with the single media type for
XML
:
text
/
xml
pub const CSV: Accept
CSV: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::CSV, None)]))
An Accept
header with the single media type for
CSV
:
text
/
csv
pub const PNG: Accept
PNG: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::PNG, None)]))
An Accept
header with the single media type for
PNG
:
image
/
png
pub const GIF: Accept
GIF: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::GIF, None)]))
An Accept
header with the single media type for
GIF
:
image
/
gif
pub const BMP: Accept
BMP: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::BMP, None)]))
An Accept
header with the single media type for
BMP
:
image
/
bmp
pub const JPEG: Accept
JPEG: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::JPEG, None)]))
An Accept
header with the single media type for
JPEG
:
image
/
jpeg
pub const WEBP: Accept
WEBP: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::WEBP, None)]))
An Accept
header with the single media type for
WEBP
:
image
/
webp
pub const SVG: Accept
SVG: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::SVG, None)]))
An Accept
header with the single media type for
SVG
:
image
/
svg+xml
pub const WEBM: Accept
WEBM: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::WEBM, None)]))
An Accept
header with the single media type for
WEBM
:
video
/
webm
pub const OGG: Accept
OGG: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::OGG, None)]))
An Accept
header with the single media type for
OGG
:
video
/
ogg
pub const WAV: Accept
WAV: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::WAV, None)]))
An Accept
header with the single media type for
WAV
:
audio
/
wav
pub const PDF: Accept
PDF: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::PDF, None)]))
An Accept
header with the single media type for
PDF
:
application
/
pdf
pub const TTF: Accept
TTF: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::TTF, None)]))
An Accept
header with the single media type for
TTF
:
application
/
font-sfnt
pub const OTF: Accept
OTF: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::OTF, None)]))
An Accept
header with the single media type for
OTF
:
application
/
font-sfnt
pub const WOFF: Accept
WOFF: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::WOFF, None)]))
An Accept
header with the single media type for
WOFF
:
application
/
font-woff
pub const WOFF2: Accept
WOFF2: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::WOFF2, None)]))
An Accept
header with the single media type for
WOFF2
:
font
/
woff2
pub const WASM: Accept
WASM: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::WASM, None)]))
An Accept
header with the single media type for
WASM
:
application
/
wasm
pub const JsonApi: Accept
JsonApi: Accept = Accept(AcceptParams::Static(&[QMediaType(<MediaType>::JsonApi, None)]))
An Accept
header with the single media type for
JSON API
:
application
/
vnd.api+json
Trait Implementations
impl Debug for Accept
[src]
impl Debug for Accept
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for Accept
[src]
impl Clone for Accept
fn clone(&self) -> Accept
[src]
fn clone(&self) -> Accept
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl PartialEq for Accept
[src]
impl PartialEq for Accept
fn eq(&self, other: &Accept) -> bool
[src]
fn eq(&self, other: &Accept) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Accept) -> bool
[src]
fn ne(&self, other: &Accept) -> bool
This method tests for !=
.
impl<T: IntoCollection<MediaType>> From<T> for Accept
[src]
impl<T: IntoCollection<MediaType>> From<T> for Accept
impl Display for Accept
[src]
impl Display for Accept
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl FromStr for Accept
[src]
impl FromStr for Accept
type Err = String
The associated error which can be returned from parsing.
fn from_str(raw: &str) -> Result<Accept, String>
[src]
fn from_str(raw: &str) -> Result<Accept, String>
Parses a string s
to return a value of this type. Read more
impl Into<Header<'static>> for Accept
[src]
impl Into<Header<'static>> for Accept
Creates a new Header
with name Accept
and the value set to the HTTP
rendering of this Accept
header.
impl<'a, 'r> FromRequest<'a, 'r> for &'a Accept
[src]
impl<'a, 'r> FromRequest<'a, 'r> for &'a Accept