HASHKIT_CLONE(3)

NAME
hashkit_clone - libhashkit Documentation

SYNOPSIS

#include <libhashkit-1.0/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.

SEE ALSO

libhashkit(3) hashkit_value(3) hashkit_function3)