hyper_sync/header/common/content_language.rs
1use language_tags::LanguageTag;
2
3use header::QualityItem;
4
5header! {
6 /// `Content-Language` header, defined in
7 /// [RFC7231](https://tools.ietf.org/html/rfc7231#section-3.1.3.2)
8 ///
9 /// The `Content-Language` header field describes the natural language(s)
10 /// of the intended audience for the representation. Note that this
11 /// might not be equivalent to all the languages used within the
12 /// representation.
13 ///
14 /// # ABNF
15 ///
16 /// ```text
17 /// Content-Language = 1#language-tag
18 /// ```
19 ///
20 /// # Example values
21 ///
22 /// * `da`
23 /// * `mi, en`
24 ///
25 /// # Examples
26 ///
27 /// ```
28 /// # extern crate hyper_sync;
29 /// # #[macro_use] extern crate language_tags;
30 /// # use hyper_sync::header::{Headers, ContentLanguage, qitem};
31 /// #
32 /// # fn main() {
33 /// let mut headers = Headers::new();
34 /// headers.set(
35 /// ContentLanguage(vec![
36 /// qitem(langtag!(en)),
37 /// ])
38 /// );
39 /// # }
40 /// ```
41 ///
42 /// ```
43 /// # extern crate hyper_sync;
44 /// # #[macro_use] extern crate language_tags;
45 /// # use hyper_sync::header::{Headers, ContentLanguage, qitem};
46 /// #
47 /// # fn main() {
48 ///
49 /// let mut headers = Headers::new();
50 /// headers.set(
51 /// ContentLanguage(vec![
52 /// qitem(langtag!(da)),
53 /// qitem(langtag!(en;;;GB)),
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}