anyhash 0.1.3

Traits and utilities for making hashes of any type
Documentation
# Traits and utilities for making hashes of any type

This crate provides the [`Hash`], [`Hasher`] and [`BuildHasher`] traits, which are almost
exactly like their counterparts in `core`/`std`, except that [`Hasher`] and [`BuildHasher`]
are generic over the type of the hash, and [`Hash`] can be used with any type of hash.
A derive macro for [`Hash`] is available.

The [`Hash`] trait uses the [`HasherWrite`] trait for hashing, which has all the write
methods you're familiar with from `Hasher` in core except for the `finish` method,
because [`Hash`] doesn't know the type of the hash.

Hashing algorithms implement the [`Hasher`] and [`HasherWrite`] traits. [`Hasher`] is
generic over the type of the hash and only contains the `finish` method. It depends on
[`HasherWrite`], so you can use it just like `Hasher` from core.

This crate also provides tools for working with endian independent hashes, and a few
hasher implementations.

### Features

The crate is `no_std` and doesn't enable any features by default. The following features are available:

- `alloc`: Enable trait implementations for the standard `alloc` crate.
- `std`: Enable trait implementations for the standard `std` crate. Implies `alloc`.

Optional integrations:

- `bnum`: Implement [`Hash`] for the `bnum` crate's types, and add support for using them as the hash type for the built-in hashers that can use them.

Built-in hashers:

- `fnv`: Hashers using the Fnv1 and Fnv1a algorithms.
- `spooky`: Hashers using the SpookyHash algorithm. V1 and V2 are available.
- `xxh64`: Hasher using the Xxh64 algorithm.