1 use {Charset, QualityItem};
2 
3 header! {
4     /// `Accept-Charset` header, defined in
5     /// [RFC7231](http://tools.ietf.org/html/rfc7231#section-5.3.3)
6     ///
7     /// The `Accept-Charset` header field can be sent by a user agent to
8     /// indicate what charsets are acceptable in textual response content.
9     /// This field allows user agents capable of understanding more
10     /// comprehensive or special-purpose charsets to signal that capability
11     /// to an origin server that is capable of representing information in
12     /// those charsets.
13     ///
14     /// # ABNF
15     ///
16     /// ```text
17     /// Accept-Charset = 1#( ( charset / "*" ) [ weight ] )
18     /// ```
19     ///
20     /// # Example values
21     /// * `iso-8859-5, unicode-1-1;q=0.8`
22     ///
23     /// # Examples
24     /// ```
25     /// use headers::{Headers, AcceptCharset, Charset, qitem};
26     ///
27     /// let mut headers = Headers::new();
28     /// headers.set(
29     ///     AcceptCharset(vec![qitem(Charset::Us_Ascii)])
30     /// );
31     /// ```
32     /// ```
33     /// use headers::{Headers, AcceptCharset, Charset, q, QualityItem};
34     ///
35     /// let mut headers = Headers::new();
36     /// headers.set(
37     ///     AcceptCharset(vec![
38     ///         QualityItem::new(Charset::Us_Ascii, q(900)),
39     ///         QualityItem::new(Charset::Iso_8859_10, q(200)),
40     ///     ])
41     /// );
42     /// ```
43     /// ```
44     /// use headers::{Headers, AcceptCharset, Charset, qitem};
45     ///
46     /// let mut headers = Headers::new();
47     /// headers.set(
48     ///     AcceptCharset(vec![qitem(Charset::Ext("utf-8".to_owned()))])
49     /// );
50     /// ```
51     (AcceptCharset, ACCEPT_CHARSET) => (QualityItem<Charset>)+
52 
53     test_accept_charset {
54         /// Testcase from RFC
55         test_header!(test1, vec![b"iso-8859-5, unicode-1-1;q=0.8"]);
56     }
57 }
58