Creating a hashkit structure

SYNOPSIS

#include <libhashkit-|libhashkit_version|/hashkit.h>
Compile and link with -lhashkit
typedef struct hashkit_st hashkit_st
hashkit_st *hashkit_create(hashkit_st *hash)
Parameters:hash -- memory address of a hashkit_st struct; if a nullptr is passed, the struct will be dynamically allocated by libhashkit
Returns:pointer to initialized hashkit_st structure
hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr)
Parameters:
  • destination -- memory address of a hashkit_st struct; if a nullptr is passed, the struct will be dynamically allocated by libhashkit
  • ptr -- pointer of the hashkit_st struct to copy
Returns:

pointer to a hashkit_st structure (destination, if not nullptr), initialized from ptr

void hashkit_free(hashkit_st *hash)
Parameters:hash -- pointer to an initialized hashkit_st struct
bool hashkit_is_allocated(const hashkit_st *hash)
Parameters:hash -- pointer to an initialized hashkit_st struct
Returns:bool, whether the hash struct was dynamically allocated

DESCRIPTION

The hashkit_create() function initializes a hashkit object for use. If you pass a nullptr argument for hash, then the memory for the object is allocated. If you specify a pre-allocated piece of memory, that is initialized for use.

The hashkit_clone() function initializes a hashkit object much like hashkit_create(), but instead of using default settings it will use the settings of the ptr hashkit object.

The hashkit_free() frees any resources being consumed by the hashkit objects that were initialized with hashkit_create() or hashkit_clone().

The hashkit_is_allocated() reports whether the memory was allocated for a hashkit object.

RETURN VALUE

hashkit_create() and hashkit_clone() will return nullptr on failure or pointer to hashkit_st on success.

hashkit_is_allocated() returns true if the memory for the hashkit object was allocated inside of hashkit_create() or hashkit_clone(), otherwise it is false and was user-supplied memory.