Module pruefung::fnv [] [src]

Fowler-Noll-Vo checksum implementations.

Nomenclature

The hashers implemented in this module follow this naming convention:

  • FnvXX is the FNV-1 algorithm with a XXXX bits output
  • FnvXXa is the FNV-1a algorithm with a XXXX bits output
  • FnvXXz is the FNV-0 algorithm with a XXXX bits output.

where XXXX can be 32 or 64 bits.

This convention tries to have a FNV API that follows the same logic as the CRC API, as well as avoiding ugly snake case in struct names (Rust and I both prefer Fnv32z over Fnv0_32)

Reference

  1. Fowler, Glenn, Kiem-Phong Vo, Landon Curt Noll, Donald Eastlake, and Tony Hansen. Fowler-Noll-Vo Hash. IETF Network Working Group, 7 June 2017. Internet Draft.
  2. Fowler-Noll-Vo online resources: http://www.isthe.com/chongo/tech/comp/fnv/

Reexports

pub use self::fnv32::Fnv32;
pub use self::fnv32::Fnv32a;
pub use self::fnv32::Fnv32z;
pub use self::fnv64::Fnv64;
pub use self::fnv64::Fnv64a;
pub use self::fnv64::Fnv64z;

Modules

fnv32

FNV-32 checksum implementation.

fnv64

FNV-64 checksum implementation.