Kestrel Interface
Loading...
Searching...
No Matches
kest_list.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DECLARE_LIST(X)
#define IMPLEMENT_LIST(X)
#define DECLARE_PTR_LIST(X)
#define IMPLEMENT_PTR_LIST(X)

Macro Definition Documentation

◆ DECLARE_LIST

#define DECLARE_LIST ( X)
Value:
typedef struct X##_list { \
X* entries; \
int count; \
int capacity; \
kest_allocator alloc; \
} X##_list; \
\
int X##_list_init(X##_list *list); \
int X##_list_init_with_allocator(X##_list *list, const kest_allocator *alloc); \
int X##_list_init_reserved(X##_list *list, size_t n); \
int X##_list_init_reserved_with_allocator(X##_list *list, size_t n, const kest_allocator *alloc); \
int X##_list_reserve(X##_list *list, size_t n); \
int X##_list_append(X##_list *list, X x); \
int X##_list_append_ref(X##_list *list, const X *x); \
int X##_list_destroy(X##_list *list); \
int X##_list_destroy_all(X##_list *list, void (*destructor)(X *x)); \
int X##_list_contains(X##_list *list, X x, int (*cmp)(const X*, const X*)); \
int X##_list_contains_ref(X##_list *list, const X *x, int (*cmp)(const X*, const X*)); \
int X##_list_index_of(X##_list *list, X x, int (*cmp)(const X*, const X*)); \
int X##_list_index_of_ref(X##_list *list, const X *x, int (*cmp)(const X*, const X*));\
X *X##_list_head(X##_list *list);\
X *X##_list_tail(X##_list *list);\
int X##_list_pop_tail(X##_list *list);\
int X##_list_pop_destroy_tail(X##_list *list, void (*destructor)(X *x));\
int X##_list_append_list(X##_list *list, X##_list *a);\
int X##_list_drain_destroy(X##_list *list, void (*destructor)(X *x));\
int X##_list_drain(X##_list *list);

Definition at line 4 of file kest_list.h.

◆ DECLARE_PTR_LIST

#define DECLARE_PTR_LIST ( X)
Value:
typedef struct X##_ptr_list { \
X** entries; \
int count; \
int capacity; \
kest_allocator alloc; \
} X##_ptr_list; \
\
int X##_ptr_list_init(X##_ptr_list *list); \
int X##_ptr_list_init_with_allocator(X##_ptr_list *list, const kest_allocator *alloc); \
int X##_ptr_list_reserve(X##_ptr_list *list, size_t n); \
int X##_ptr_list_append(X##_ptr_list *list, X *x); \
int X##_ptr_list_destroy(X##_ptr_list *list); \
int X##_ptr_list_destroy_all(X##_ptr_list *list, void (*destructor)(X *x)); \
int X##_ptr_list_contains(X##_ptr_list *list, X *x); \
int X##_ptr_list_index_of(X##_ptr_list *list, X *x); \
X **X##_ptr_list_head(X##_ptr_list *list);\
X **X##_ptr_list_tail(X##_ptr_list *list);\
int X##_ptr_list_pop_tail(X##_ptr_list *list);\
int X##_ptr_list_append_list(X##_ptr_list *list, X##_ptr_list *a);\
int X##_ptr_list_drain_destroy(X##_ptr_list *list, void (*destructor)(X *x));\
int X##_ptr_list_drain(X##_ptr_list *list);

Definition at line 315 of file kest_list.h.

◆ IMPLEMENT_LIST

#define IMPLEMENT_LIST ( X)

Definition at line 33 of file kest_list.h.

◆ IMPLEMENT_PTR_LIST

#define IMPLEMENT_PTR_LIST ( X)

Definition at line 339 of file kest_list.h.