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 80 81 82 83 84 85
use http::Method; use http::header; 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 /// /// ```rust /// # extern crate http; /// # extern crate actix_web; /// use actix_web::HttpResponse; /// use actix_web::http::header::Allow; /// use http::Method; /// /// # fn main() { /// let mut builder = HttpResponse::Ok(); /// builder.set( /// Allow(vec![Method::GET]) /// ); /// # } /// ``` /// /// ```rust /// # extern crate http; /// # extern crate actix_web; /// use actix_web::HttpResponse; /// use actix_web::http::header::Allow; /// use http::Method; /// /// # fn main() { /// let mut builder = HttpResponse::Ok(); /// builder.set( /// Allow(vec![ /// Method::GET, /// Method::POST, /// Method::PATCH, /// ]) /// ); /// # } /// ``` (Allow, header::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"], Some(HeaderField(vec![ Method::OPTIONS, Method::GET, Method::PUT, Method::POST, Method::DELETE, Method::HEAD, Method::TRACE, Method::CONNECT, Method::PATCH]))); test_header!( test3, vec![b""], Some(HeaderField(Vec::<Method>::new()))); } }