headers/common/accept_ranges.rs
1use util::FlatCsv;
2
3/// `Accept-Ranges` header, defined in [RFC7233](http://tools.ietf.org/html/rfc7233#section-2.3)
4///
5/// The `Accept-Ranges` header field allows a server to indicate that it
6/// supports range requests for the target resource.
7///
8/// # ABNF
9///
10/// ```text
11/// Accept-Ranges = acceptable-ranges
12/// acceptable-ranges = 1#range-unit / \"none\"
13///
14/// # Example values
15/// * `bytes`
16/// * `none`
17/// * `unknown-unit`
18/// ```
19///
20/// # Examples
21///
22/// ```
23/// use headers::{AcceptRanges, HeaderMap, HeaderMapExt};
24///
25/// let mut headers = HeaderMap::new();
26///
27/// headers.typed_insert(AcceptRanges::bytes());
28/// ```
29#[derive(Clone, Debug, PartialEq)]
30pub struct AcceptRanges(FlatCsv);
31
32derive_header! {
33 AcceptRanges(_),
34 name: ACCEPT_RANGES
35}
36
37impl AcceptRanges {
38 /// A constructor to easily create the common `Accept-Ranges: bytes` header.
39 pub fn bytes() -> Self {
40 AcceptRanges(::HeaderValue::from_static("bytes").into())
41 }
42}