turing 0.1.0

hash function library
Documentation
#![feature(test)]

extern crate test;

use std::hash::Hasher;
use test::Bencher;

use turing::fnv::{FNV1Hasher, FNV1aHasher};

#[bench]
fn bench_fnv_1_with_32bits_1_000(b: &mut Bencher) {
    b.iter(|| {
        for i in 0..1_000_u64 {
            let mut hasher = FNV1Hasher::with_32();
            hasher.write(&i.to_be_bytes());
            hasher.finish();
        }
    });
}

#[bench]
fn bench_fnv_1a_with_32bits_1_000(b: &mut Bencher) {
    b.iter(|| {
        for i in 0..1_000_u64 {
            let mut hasher = FNV1aHasher::with_32();
            hasher.write(&i.to_be_bytes());
            hasher.finish();
        }
    });
}

#[bench]
fn bench_fnv_1_with_64bits_1_000(b: &mut Bencher) {
    b.iter(|| {
        for i in 0..1_000_u64 {
            let mut hasher = FNV1Hasher::with_64();
            hasher.write(&i.to_be_bytes());
            hasher.finish();
        }
    });
}

#[bench]
fn bench_fnv_1a_with_64bits_1_000(b: &mut Bencher) {
    b.iter(|| {
        for i in 0..1_000_u64 {
            let mut hasher = FNV1aHasher::with_64();
            hasher.write(&i.to_be_bytes());
            hasher.finish();
        }
    });
}