pub struct Accept(/* private fields */);
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§
Source§impl Accept
impl Accept
Sourcepub const Binary: Accept
pub const Binary: Accept
An Accept
header with the single media type for
binary data: application/octet-stream
Sourcepub const Bytes: Accept
pub const Bytes: Accept
An Accept
header with the single media type for
binary data: application/octet-stream
Sourcepub const MsgPack: Accept
pub const MsgPack: Accept
An Accept
header with the single media type for
MsgPack: application/msgpack
Sourcepub const Form: Accept
pub const Form: Accept
An Accept
header with the single media type for
forms: application/x-www-form-urlencoded
Sourcepub const JavaScript: Accept
pub const JavaScript: Accept
An Accept
header with the single media type for
JavaScript: text/javascript
Sourcepub const FormData: Accept
pub const FormData: Accept
An Accept
header with the single media type for
multipart form data: multipart/form-data
Sourcepub const OPF: Accept
pub const OPF: Accept
An Accept
header with the single media type for
OPF: application/oebps-package+xml
Sourcepub const XHTML: Accept
pub const XHTML: Accept
An Accept
header with the single media type for
XHTML: application/xhtml+xml
Sourcepub const TTF: Accept
pub const TTF: Accept
An Accept
header with the single media type for
TTF: application/font-sfnt
Sourcepub const OTF: Accept
pub const OTF: Accept
An Accept
header with the single media type for
OTF: application/font-sfnt
Sourcepub const WOFF: Accept
pub const WOFF: Accept
An Accept
header with the single media type for
WOFF: application/font-woff
Sourcepub const JsonApi: Accept
pub const JsonApi: Accept
An Accept
header with the single media type for
JSON API: application/vnd.api+json
Sourcepub const Calendar: Accept
pub const Calendar: Accept
An Accept
header with the single media type for
iCalendar: text/calendar
Sourcepub const TAR: Accept
pub const TAR: Accept
An Accept
header with the single media type for
tape archive: application/x-tar
Sourcepub const GZIP: Accept
pub const GZIP: Accept
An Accept
header with the single media type for
gzipped binary: application/gzip
Sourcepub const MOV: Accept
pub const MOV: Accept
An Accept
header with the single media type for
quicktime video: video/quicktime
Sourcepub const ZIP: Accept
pub const ZIP: Accept
An Accept
header with the single media type for
ZIP archive: application/zip
Sourcepub const CBZ: Accept
pub const CBZ: Accept
An Accept
header with the single media type for
Comic ZIP archive: application/vnd.comicbook+zip
Sourcepub const CBR: Accept
pub const CBR: Accept
An Accept
header with the single media type for
Comic RAR compressed archive: application/vnd.comicbook-rar
Sourcepub const RAR: Accept
pub const RAR: Accept
An Accept
header with the single media type for
RAR compressed archive: application/vnd.rar
Sourcepub const EPUB: Accept
pub const EPUB: Accept
An Accept
header with the single media type for
EPUB: application/epub+zip
Sourcepub const EventStream: Accept
pub const EventStream: Accept
An Accept
header with the single media type for
SSE stream: text/event-stream
Sourcepub const Markdown: Accept
pub const Markdown: Accept
An Accept
header with the single media type for
markdown text: text/markdown
Sourcepub const EXE: Accept
pub const EXE: Accept
An Accept
header with the single media type for
executable: application/vnd.microsoft.portable-executable
Sourcepub fn new<T>(items: T) -> Acceptwhere
T: IntoCollection<QMediaType>,
pub fn new<T>(items: T) -> Acceptwhere
T: IntoCollection<QMediaType>,
Constructs a new Accept
header from one or more media types.
The items
parameter may be of type QMediaType
, [QMediaType]
,
&[QMediaType]
or Vec<QMediaType>
. To prevent additional allocations,
prefer to provide inputs of type QMediaType
, [QMediaType]
, or
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);
Sourcepub fn preferred(&self) -> &QMediaType
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);
Sourcepub fn first(&self) -> Option<&QMediaType>
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()));
Sourcepub fn iter(&self) -> impl Iterator<Item = &QMediaType>
pub fn iter(&self) -> impl Iterator<Item = &QMediaType>
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);
Sourcepub fn media_types(&self) -> impl Iterator<Item = &MediaType>
pub fn media_types(&self) -> impl Iterator<Item = &MediaType>
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);
Trait Implementations§
Source§impl From<Accept> for Header<'static>
Creates a new Header
with name Accept
and the value set to the HTTP
rendering of this Accept
header.
impl From<Accept> for Header<'static>
Creates a new Header
with name Accept
and the value set to the HTTP
rendering of this Accept
header.
Source§impl<'r> FromRequest<'r> for &'r Accept
impl<'r> FromRequest<'r> for &'r Accept
Source§type Error = Infallible
type Error = Infallible
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.bright_black());
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.bright_green());
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.bright_yellow());
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.bright_magenta());
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.bright_white());
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.on_bright_black());
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.on_bright_green());
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.on_bright_yellow());
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlue
.
§Example
println!("{}", value.on_bright_blue());
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.on_bright_magenta());
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightCyan
.
§Example
println!("{}", value.on_bright_cyan());
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.on_bright_white());
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn underline(&self) -> Painted<&T>
fn underline(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::Underline
.
§Example
println!("{}", value.underline());
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
§Example
println!("{}", value.rapid_blink());
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);