Struct rocket_http::Accept [−][src]
pub struct Accept(_);Expand description
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();Implementations
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);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);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()));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);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);An Accept header with the single media type for 
binary data
: 
application
/
octet-stream
An Accept header with the single media type for 
plain text
: 
text
/
plain
An Accept header with the single media type for 
JSON
: 
application
/
json
An Accept header with the single media type for 
MsgPack
: 
application
/
msgpack
An Accept header with the single media type for 
forms
: 
application
/
x-www-form-urlencoded
An Accept header with the single media type for 
JavaScript
: 
application
/
javascript
An Accept header with the single media type for 
multipart form data
: 
multipart
/
form-data
An Accept header with the single media type for 
WEBM Audio
: 
audio
/
webm
An Accept header with the single media type for 
TTF
: 
application
/
font-sfnt
An Accept header with the single media type for 
OTF
: 
application
/
font-sfnt
An Accept header with the single media type for 
WOFF
: 
application
/
font-woff
An Accept header with the single media type for 
JSON API
: 
application
/
vnd.api+json
An Accept header with the single media type for 
WASM
: 
application
/
wasm
An Accept header with the single media type for 
iCalendar
: 
text
/
calendar
An Accept header with the single media type for 
MPEG Video
: 
video
/
mpeg
An Accept header with the single media type for 
tape archive
: 
application
/
x-tar
An Accept header with the single media type for 
gzipped binary
: 
application
/
gzip
An Accept header with the single media type for 
quicktime video
: 
video
/
quicktime
Trait Implementations
Creates a new Header with name Accept and the value set to the HTTP
rendering of this Accept header.
Auto Trait Implementations
impl RefUnwindSafe for Accept
impl UnwindSafe for Accept
Blanket Implementations
Mutably borrows from an owned value. Read more