72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use header::{Encoding, QualityItem};
 | |
| 
 | |
| header! {
 | |
|     /// `TE` header, defined in
 | |
|     /// [RFC7230](http://tools.ietf.org/html/rfc7230#section-4.3)
 | |
|     ///
 | |
|     /// As RFC7230 states, "The "TE" header field in a request indicates what transfer codings,
 | |
|     /// besides chunked, the client is willing to accept in response, and
 | |
|     /// whether or not the client is willing to accept trailer fields in a
 | |
|     /// chunked transfer coding."
 | |
|     ///
 | |
|     /// For HTTP/1.1 compliant clients `chunked` transfer codings are assumed to be acceptable and
 | |
|     /// so should never appear in this header.
 | |
|     ///
 | |
|     /// # ABNF
 | |
|     ///
 | |
|     /// ```text
 | |
|     /// TE        = "TE" ":" #( t-codings )
 | |
|     /// t-codings = "trailers" | ( transfer-extension [ accept-params ] )
 | |
|     /// ```
 | |
|     ///
 | |
|     /// # Example values
 | |
|     /// * `trailers`
 | |
|     /// * `trailers, deflate;q=0.5`
 | |
|     /// * ``
 | |
|     ///
 | |
|     /// # Examples
 | |
|     ///
 | |
|     /// ```
 | |
|     /// use hyper::header::{Headers, Te, Encoding, qitem};
 | |
|     ///
 | |
|     /// let mut headers = Headers::new();
 | |
|     /// headers.set(
 | |
|     ///     Te(vec![qitem(Encoding::Trailers)])
 | |
|     /// );
 | |
|     /// ```
 | |
|     ///
 | |
|     /// ```
 | |
|     /// use hyper::header::{Headers, Te, Encoding, qitem};
 | |
|     ///
 | |
|     /// let mut headers = Headers::new();
 | |
|     /// headers.set(
 | |
|     ///     Te(vec![
 | |
|     ///         qitem(Encoding::Trailers),
 | |
|     ///         qitem(Encoding::Gzip),
 | |
|     ///         qitem(Encoding::Deflate),
 | |
|     ///     ])
 | |
|     /// );
 | |
|     /// ```
 | |
|     ///
 | |
|     /// ```
 | |
|     /// use hyper::header::{Headers, Te, Encoding, QualityItem, q, qitem};
 | |
|     ///
 | |
|     /// let mut headers = Headers::new();
 | |
|     /// headers.set(
 | |
|     ///     Te(vec![
 | |
|     ///         qitem(Encoding::Trailers),
 | |
|     ///         QualityItem::new(Encoding::Gzip, q(600)),
 | |
|     ///         QualityItem::new(Encoding::EncodingExt("*".to_owned()), q(0)),
 | |
|     ///     ])
 | |
|     /// );
 | |
|     /// ```
 | |
|     (Te, "TE") => (QualityItem<Encoding>)*
 | |
| 
 | |
|     test_te {
 | |
|         // From the RFC
 | |
|         test_header!(test1, vec![b"trailers"]);
 | |
|         test_header!(test2, vec![b"trailers, deflate;q=0.5"]);
 | |
|         test_header!(test3, vec![b""]);
 | |
|     }
 | |
| }
 |