hash::fnv+x86_64 +linux

Implements the Fowler–Noll–Vo (FNV) hash function. This hash is recommended for hash map keys and similar applications when hash flooding isn't an issue. It is a non-cryptographic hash.

Index

Types

// Undocumented types:
type state32 = struct {
	hash::hash,
	v: u32,
};
type state64 = struct {
	hash::hash,
	v: u64,
};

Constants

// Undocumented constants:
def BASIS32: u32 = 2166136261;
def BASIS64: u64 = 14695981039346656037;

Functions

fn fnv32(basis: u32 = BASIS32) state32;
fn fnv32a(basis: u32 = BASIS32) state32;
fn fnv64(basis: u64 = BASIS64) state64;
fn fnv64a(basis: u64 = BASIS64) state64;
fn string(s: str) size;
fn string32(s: str) u32;
fn string64(s: str) u64;
fn sum32(h: *hash::hash) u32;
fn sum64(h: *hash::hash) u64;

Types

type state32[link]

Show undocumented member
type state32 = struct {
	hash::hash,
	v: u32,
};

type state64[link]

Show undocumented member
type state64 = struct {
	hash::hash,
	v: u64,
};

Constants

def BASIS32[link]

Show undocumented member
def BASIS32: u32 = 2166136261;

def BASIS64[link]

Show undocumented member
def BASIS64: u64 = 14695981039346656037;

Functions

fn fnv32[link]

fn fnv32(basis: u32 = BASIS32) state32;

Creates a hash::hash which computes the FNV-1 32-bit hash function. This hash does not allocate any state, so you do not need to call hash::close when you're done with it.

Unless you have a reason to use this, fnv32a is recommended instead.

fn fnv32a[link]

fn fnv32a(basis: u32 = BASIS32) state32;

Creates a hash::hash which computes the FNV-1a 32-bit hash function. This hash does not allocate any state, so you do not need to call hash::close when you're done with it.

fn fnv64[link]

fn fnv64(basis: u64 = BASIS64) state64;

Creates a hash::hash which computes the FNV-1 64-bit hash function. This hash does not allocate any state, so you do not need to call hash::close when you're done with it.

Unless you have a reason to use this, fnv64a is recommended instead.

fn fnv64a[link]

fn fnv64a(basis: u64 = BASIS64) state64;

Creates a hash::hash which computes the FNV-1a 64-bit hash function. This hash does not allocate any state, so you do not need to call hash::close when you're done with it.

fn string[link]

fn string(s: str) size;

Hashes a string, returning a size key, for use in a hash map.

fn string32[link]

fn string32(s: str) u32;

Hashes a string, returning a 32-bit key.

fn string64[link]

fn string64(s: str) u64;

Hashes a string, returning a 64-bit key.

fn sum32[link]

fn sum32(h: *hash::hash) u32;

Returns the sum of a 32-bit FNV hash.

fn sum64[link]

fn sum64(h: *hash::hash) u64;

Returns the sum of a 64-bit FNV hash.