18#ifndef __R_HASH_FUNCS_H__
19#define __R_HASH_FUNCS_H__
21#if !defined(__RLIB_H_INCLUDE_GUARD__) && !defined(RLIB_COMPILATION)
22#error "#include <rlib.h> only please."
45#define R_HASH_EMPTY RSIZE_MAX
rboolean r_direct_equal(rconstpointer a, rconstpointer b)
Pointer-identity equality: returns TRUE iff a == b.
rsize r_direct_hash(rconstpointer data)
Pointer-identity hash: treats data as an opaque machine-word and returns it directly.
rsize r_str_hash(rconstpointer data)
Hash a NUL-terminated C string.
rsize r_str_hash_sized(const rchar *data, rssize size)
Hash a byte string of caller-supplied length.
rboolean r_str_equal(rconstpointer a, rconstpointer b)
Equality for NUL-terminated C strings (via strcmp).
#define R_API
Public-API decoration: resolves to R_API_EXPORT while building rlib and R_API_IMPORT for consumers.
Definition rmacros.h:115
#define R_BEGIN_DECLS
Open an extern "C" block under C++ (no-op in C).
Definition rmacros.h:196
char rchar
Default character type (char).
Definition rtypes.h:137
int rboolean
Boolean type (typedef'd to int).
Definition rtypes.h:59
const void * rconstpointer
Generic const pointer (alias for const void *).
Definition rtypes.h:329
unsigned long rsize
Unsigned pointer-sized size type (like size_t).
Definition rtypes.h:290
signed long rssize
Signed pointer-sized size type (like ssize_t).
Definition rtypes.h:291
Foundational type aliases used by every rlib header.