#ifndef LIBDS_HEADER #define LIBDS_HEADER #include /** * Enum representing return codes from error-prone libds functions. */ enum libds_result_e { LIBDS_SUCCESS, LIBDS_MALLOC }; typedef enum libds_result_e libds_result; /** * Comparison function type. * Comparison functions are used in searches etc. * The function should take two elements, and, if they match, return 1. Otherwise, it should * return 0. */ typedef int (*compare_func)(const void*, const void*); /** * Foreach function type. * Foreach functions are passed to _foreach calls. * The function should return 0 if all goes well, or a nonzero error code if there is an issue. */ typedef int (*foreach_func)(void*, va_list); /** * A compare_func implementation that always returns true. * @param a The first piece of data being compared * @param b The second piece of data being compared * @return always true, i.e 1 */ int compare_always(const void* a, const void* b); /** * A compare_func implementation that compares two pointers using ==. * @param a the first piece of data being compared * @param b the second piece of data being compared * @return true if a and b are the same value. */ int compare_pointer(const void* a, const void* b); #endif