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);