requiem_http/header/common/content_language.rs
1use crate::header::{QualityItem, CONTENT_LANGUAGE};
2use language_tags::LanguageTag;
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 /// ```rust
27 /// # extern crate requiem_http;
28 /// # #[macro_use] extern crate language_tags;
29 /// use requiem_http::Response;
30 /// # use requiem_http::http::header::{ContentLanguage, qitem};
31 /// #
32 /// # fn main() {
33 /// let mut builder = Response::Ok();
34 /// builder.set(
35 /// ContentLanguage(vec![
36 /// qitem(langtag!(en)),
37 /// ])
38 /// );
39 /// # }
40 /// ```
41 ///
42 /// ```rust
43 /// # extern crate requiem_http;
44 /// # #[macro_use] extern crate language_tags;
45 /// use requiem_http::Response;
46 /// # use requiem_http::http::header::{ContentLanguage, qitem};
47 /// #
48 /// # fn main() {
49 ///
50 /// let mut builder = Response::Ok();
51 /// builder.set(
52 /// ContentLanguage(vec![
53 /// qitem(langtag!(da)),
54 /// qitem(langtag!(en;;;GB)),
55 /// ])
56 /// );
57 /// # }
58 /// ```
59 (ContentLanguage, CONTENT_LANGUAGE) => (QualityItem<LanguageTag>)+
60
61 test_content_language {
62 test_header!(test1, vec![b"da"]);
63 test_header!(test2, vec![b"mi, en"]);
64 }
65}