libds/include/libds.h

42 lines
1.2 KiB
C

#ifndef LIBDS_HEADER
#define LIBDS_HEADER
#include <stdarg.h>
/**
* 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