44 lines
904 B
Rust
44 lines
904 B
Rust
#![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<Status, ()> {
|
|
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());
|
|
})
|
|
}
|