hyperx/header/common/
content_language.rs

1use language_tags::LanguageTag;
2use header::QualityItem;
3
4header! {
5    /// `Content-Language` header, defined in
6    /// [RFC7231](https://tools.ietf.org/html/rfc7231#section-3.1.3.2)
7    ///
8    /// The `Content-Language` header field describes the natural language(s)
9    /// of the intended audience for the representation.  Note that this
10    /// might not be equivalent to all the languages used within the
11    /// representation.
12    ///
13    /// # ABNF
14    ///
15    /// ```text
16    /// Content-Language = 1#language-tag
17    /// ```
18    ///
19    /// # Example values
20    ///
21    /// * `da`
22    /// * `mi, en`
23    ///
24    /// # Examples
25    ///
26    /// ```
27    /// # extern crate http;
28    /// # extern crate hyperx;
29    /// extern crate language_tags;
30    /// # use hyperx::header::{ContentLanguage, qitem, TypedHeaders};
31    /// #
32    /// # fn main() {
33    /// let mut headers = http::HeaderMap::new();
34    /// headers.encode(
35    ///     &ContentLanguage(vec![
36    ///         qitem("en".parse().unwrap()),
37    ///     ])
38    /// );
39    /// # }
40    /// ```
41    ///
42    /// ```
43    /// # extern crate http;
44    /// # extern crate hyperx;
45    /// extern crate language_tags;
46    /// # use hyperx::header::{ContentLanguage, qitem, TypedHeaders};
47    /// # fn main() {
48    ///
49    /// let mut headers = http::HeaderMap::new();
50    /// headers.encode(
51    ///     &ContentLanguage(vec![
52    ///         qitem("da".parse().unwrap()),
53    ///         qitem("en-GB".parse().unwrap()),
54    ///     ])
55    /// );
56    /// # }
57    /// ```
58    (ContentLanguage, "Content-Language") => (QualityItem<LanguageTag>)+
59
60    test_content_language {
61        test_header!(test1, vec![b"da"]);
62        test_header!(test2, vec![b"mi, en"]);
63    }
64}
65
66standard_header!(ContentLanguage, CONTENT_LANGUAGE);