common.h 852 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef _DS_COMMON_H_
  2. #define _DS_COMMON_H_
  3. #include <stdlib.h>
  4. // data type
  5. typedef void* ds_data_t;
  6. // function used for traversal a container
  7. typedef void (*func_each)(void*);
  8. typedef void (*func_destroyer)(ds_data_t);
  9. // function used for comparing two values
  10. typedef int (*func_comparer)(ds_data_t, ds_data_t);
  11. typedef int (*func_foreach)(func_each cb);
  12. typedef int (*func_sort)(func_comparer comparer);
  13. // memory
  14. typedef void* (*func_malloc)(size_t);
  15. typedef void (*func_free)(void* ptr);
  16. // install new mem-allocate function
  17. void ds_setup(func_malloc m, func_free f);
  18. // default implementings of useful functions
  19. void ds_cb_default_destroyer(ds_data_t);
  20. void ds_cb_default_each(ds_data_t);
  21. int ds_cb_default_comparer(ds_data_t, ds_data_t);
  22. #define IMPL_FOREACH \
  23. (void*)0
  24. #define UNUSED(x) (void)(x)
  25. #define DEF_ARRAY_SIZE 32
  26. #endif