#![feature(test)] extern crate test; use http::method::Method; use test::Bencher; fn make_all_methods() -> Vec> { vec![ b"OPTIONS".to_vec(), b"GET".to_vec(), b"POST".to_vec(), b"PUT".to_vec(), b"DELETE".to_vec(), b"HEAD".to_vec(), b"TRACE".to_vec(), b"CONNECT".to_vec(), b"PATCH".to_vec(), b"CUSTOM_SHORT".to_vec(), b"CUSTOM_LONG_METHOD".to_vec(), ] } #[bench] fn method_easy(b: &mut Bencher) { let name = b"GET"; b.iter(|| { Method::from_bytes(&name[..]).unwrap(); }); } #[bench] fn method_various(b: &mut Bencher) { let all_methods = make_all_methods(); b.iter(|| { for name in &all_methods { Method::from_bytes(name.as_slice()).unwrap(); } }); }