#![feature(test)] extern crate test; use test::Bencher; extern crate inferium; use inferium::Status; #[bench] fn baseline(b: &mut Bencher) { fn status_test_from_slice(raw: &[u8]) -> Result { match raw { b"200" => Ok(Status::Ok), b"404" => Ok(Status::NotFound), _ => Err(()), } } b.iter(|| { assert_eq!(status_test_from_slice(b"200".as_slice()), Ok(Status::Ok)); }); } #[bench] fn valid_ok(b: &mut Bencher) { b.iter(|| { assert_eq!(Status::try_from(b"200".as_slice()), Ok(Status::Ok)); }); } #[bench] fn valid_internal_server_error(b: &mut Bencher) { b.iter(|| { assert_eq!(Status::try_from(b"500".as_slice()), Ok(Status::InternalServerError)); }); } #[bench] fn invalid(b: &mut Bencher) { b.iter(|| { assert!(Status::try_from(b"690".as_slice()).is_err()); }) }