Branch :
/* c3 * Copyright 2022,2023 kmx.io <contact@kmx.io> * * Permission is hereby granted to use this software granted the above * copyright notice and this permission paragraph are included in all * copies and substantial portions of this software. * * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF * THIS SOFTWARE. */ /* Gen from skiplist.h.in NAME=_NAME$ TYPE=_TYPE$ */ /** * @file skiplist___NAME$.h * @brief Skiplist of _NAME$s. * * Skiplist containing _TYPE$. */ #ifndef SKIPLIST___NAME$_H #define SKIPLIST___NAME$_H #include "types.h" #define SKIPLIST_HEIGHT_TABLE___NAME$(skiplist) \ ((t_skiplist_height *) (((s_skiplist___NAME$ *) skiplist) + 1)) #define SKIPLIST_SIZE___NAME$(max_height) \ (sizeof(s_skiplist___NAME$) + (max_height) * sizeof(t_skiplist_height)) void skiplist_clean___NAME$ (s_skiplist___NAME$ *skiplist); void skiplist_delete___NAME$ (s_skiplist___NAME$ *skiplist); s_skiplist_node___NAME$ * skiplist_find___NAME$ (s_skiplist___NAME$ *skiplist, _TYPE$ value); /* do not call directly */ s_skiplist___NAME$ * skiplist_init___NAME$ (s_skiplist___NAME$ *skiplist, u8 max_height, f64 spacing); s_skiplist_node___NAME$ * skiplist_insert___NAME$ (s_skiplist___NAME$ *skiplist, _TYPE$ value); s_skiplist___NAME$ * skiplist_new___NAME$ (u8 max_height, f64 spacing); s_skiplist_node___NAME$ * skiplist_pred___NAME$ (s_skiplist___NAME$ *skiplist, _TYPE$ value); u8 skiplist_random_height___NAME$ (s_skiplist___NAME$ *skiplist); e_bool skiplist_remove___NAME$ (s_skiplist___NAME$ *skiplist, _TYPE$ value); #endif /* SKIPLIST___NAME$_H */