1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
use method::Method; header! { /// `Allow` header, defined in [RFC7231](http://tools.ietf.org/html/rfc7231#section-7.4.1) /// /// The `Allow` header field lists the set of methods advertised as /// supported by the target resource. The purpose of this field is /// strictly to inform the recipient of valid request methods associated /// with the resource. /// /// # ABNF /// /// ```text /// Allow = #method /// ``` /// /// # Example values /// * `GET, HEAD, PUT` /// * `OPTIONS, GET, PUT, POST, DELETE, HEAD, TRACE, CONNECT, PATCH, fOObAr` /// * `` /// /// # Examples /// /// ``` /// use hyper::header::{Headers, Allow}; /// use hyper::Method; /// /// let mut headers = Headers::new(); /// headers.set( /// Allow(vec![Method::Get]) /// ); /// ``` /// /// ``` /// use hyper::header::{Headers, Allow}; /// use hyper::Method; /// /// let mut headers = Headers::new(); /// headers.set( /// Allow(vec![ /// Method::Get, /// Method::Post, /// Method::Patch, /// Method::Extension("COPY".to_owned()), /// ]) /// ); /// ``` (Allow, "Allow") => (Method)* test_allow { // From the RFC test_header!( test1, vec![b"GET, HEAD, PUT"], Some(HeaderField(vec![Method::Get, Method::Head, Method::Put]))); // Own tests test_header!( test2, vec![b"OPTIONS, GET, PUT, POST, DELETE, HEAD, TRACE, CONNECT, PATCH, fOObAr"], Some(HeaderField(vec![ Method::Options, Method::Get, Method::Put, Method::Post, Method::Delete, Method::Head, Method::Trace, Method::Connect, Method::Patch, Method::Extension("fOObAr".to_owned())]))); test_header!( test3, vec![b""], Some(HeaderField(Vec::<Method>::new()))); } } bench_header!(bench, Allow, { vec![b"OPTIONS,GET,PUT,POST,DELETE,HEAD,TRACE,CONNECT,PATCH,fOObAr".to_vec()] });