murmur3_32 0.1.0

implementation of MurmurHash3 32bit algorithm
Documentation
# murmur3_32   [![crate]][crates.io] [![docs]][docs.rs]

[crate]: https://img.shields.io/crates/v/murmur3_32.svg
[crates.io]: https://crates.io/crates/murmur3_32

[docs]: https://img.shields.io/docsrs/murmur3_32
[docs.rs]: https://docs.rs/murmur3_32

[Rust](https://www.rust-lang.org/) implementation of [MurmurHash3](https://en.wikipedia.org/wiki/MurmurHash#MurmurHash3) (32bit) non-cryptographic hash algorithm.

## features
- highly optimized
- optional `no_std` support
- `Murmur3Io` implements [`Read`]https://doc.rust-lang.org/stable/std/io/trait.Read.html/[`Write`]https://doc.rust-lang.org/stable/std/io/trait.Write.html (passthrough hasher)
- `Murmur3` implements [`Hasher`]https://doc.rust-lang.org/stable/std/hash/trait.Hasher.html
- `Murmur3` implements [`Default`]https://doc.rust-lang.org/stable/core/default/trait.Default.html with seed value of `0`
- MSRV 1.86


## basic usage
```rust
const SEED: u32 = 1234;
let mut hasher = murmur3_32::Murmur3::new(SEED);
hasher.write(&[1, 2, 3, 4, 5, 6]);
hasher.write(&[7, 8, 9]);

let hash = hasher.finish();
assert_eq!(hash, 3_401_546_948);
```


## basic usage - single slice
```rust
const SEED: u32 = 1234;
let hash = murmur3_32::Murmur3::hash(SEED, &[1, 2, 3, 4, 5, 6, 7, 8, 9]);
assert_eq!(hash, 3_401_546_948);
```


## usage as `std::io::Write`
```rust
use std::io::{self, Write as _};

const SEED: u32 = 1234;
let mut stdout = murmur3_32::Murmur3Io::new(SEED, io::stdout());
write!(stdout, "Hello").unwrap();
writeln!(stdout, ", World!").unwrap();

let (hash, _stdout) = stdout.finish();
assert_eq!(hash, 2_175_319_754);
```


## usage as `std::io::Read`
```rust
use std::io;

const SEED: u32 = 1234;
let mut reader = murmur3_32::Murmur3Io::new(SEED, b"Hello, World!\n".as_slice());
io::copy(&mut reader, &mut io::empty()).unwrap();

let (hash, _slice) = reader.finish();
assert_eq!(hash, 2_175_319_754);
```


## `no_std` usage
```
cargo add murmur3_32 --no-default-features
```
> [!NOTE]
> `Murmur3Io` is unavailable in `no_std` context