30 #ifndef BKTHOMPS_CONTAINERS_BK_DEFINES_H 31 #define BKTHOMPS_CONTAINERS_BK_DEFINES_H 46 #define BK_TRUE (!BK_FALSE) 54 #ifndef BKTHOMPS_CONTAINERS_ARRAY_H 55 #define BKTHOMPS_CONTAINERS_ARRAY_H 81 #ifndef BKTHOMPS_CONTAINERS_DEQUE_H 82 #define BKTHOMPS_CONTAINERS_DEQUE_H 87 typedef struct internal_deque *
deque;
124 #ifndef BKTHOMPS_CONTAINERS_FORWARD_LIST_H 125 #define BKTHOMPS_CONTAINERS_FORWARD_LIST_H 168 #ifndef BKTHOMPS_CONTAINERS_LIST_H 169 #define BKTHOMPS_CONTAINERS_LIST_H 174 typedef struct internal_list *
list;
212 #ifndef BKTHOMPS_CONTAINERS_MAP_H 213 #define BKTHOMPS_CONTAINERS_MAP_H 219 typedef struct internal_map *
map;
223 int (*comparator)(
const void *
const one,
const void *
const two));
250 #ifndef BKTHOMPS_CONTAINERS_MULTIMAP_H 251 #define BKTHOMPS_CONTAINERS_MULTIMAP_H 261 int (*key_comparator)(
const void *
const one,
262 const void *
const two),
263 int (*value_comparator)(
const void *
const one,
264 const void *
const two));
294 #ifndef BKTHOMPS_CONTAINERS_MULTISET_H 295 #define BKTHOMPS_CONTAINERS_MULTISET_H 305 int (*comparator)(
const void *
const one,
306 const void *
const two));
334 #ifndef BKTHOMPS_CONTAINERS_PRIORITY_QUEUE_H 335 #define BKTHOMPS_CONTAINERS_PRIORITY_QUEUE_H 345 int (*comparator)(
const void *
const one,
346 const void *
const two));
368 #ifndef BKTHOMPS_CONTAINERS_QUEUE_H 369 #define BKTHOMPS_CONTAINERS_QUEUE_H 375 typedef struct internal_deque *
queue;
403 #ifndef BKTHOMPS_CONTAINERS_SET_H 404 #define BKTHOMPS_CONTAINERS_SET_H 409 typedef struct internal_set *
set;
413 int (*comparator)(
const void *
const one,
const void *
const two));
439 #ifndef BKTHOMPS_CONTAINERS_STACK_H 440 #define BKTHOMPS_CONTAINERS_STACK_H 446 typedef struct internal_deque *
stack;
473 #ifndef BKTHOMPS_CONTAINERS_UNORDERED_MAP_H 474 #define BKTHOMPS_CONTAINERS_UNORDERED_MAP_H 485 unsigned long (*hash)(
const void *
const key),
486 int (*comparator)(
const void *
const one,
487 const void *
const two));
507 #ifndef BKTHOMPS_CONTAINERS_UNORDERED_MULTIMAP_H 508 #define BKTHOMPS_CONTAINERS_UNORDERED_MULTIMAP_H 520 unsigned long (*hash)(
const void *
const key),
521 int (*key_comparator)(
const void *
const one,
522 const void *
const two),
523 int (*value_comparator)(
const void *
const one,
524 const void *
const two));
538 void *key,
void *value);
548 #ifndef BKTHOMPS_CONTAINERS_UNORDERED_MULTISET_H 549 #define BKTHOMPS_CONTAINERS_UNORDERED_MULTISET_H 560 unsigned long (*hash)(
const void *
const key),
561 int (*comparator)(
const void *
const one,
562 const void *
const two));
583 #ifndef BKTHOMPS_CONTAINERS_UNORDERED_SET_H 584 #define BKTHOMPS_CONTAINERS_UNORDERED_SET_H 594 unsigned long (*hash)(
const void *
const key),
595 int (*comparator)(
const void *
const one,
596 const void *
const two));
615 #ifndef BKTHOMPS_CONTAINERS_VECTOR_H 616 #define BKTHOMPS_CONTAINERS_VECTOR_H bk_err vector_clear(vector me)
Definition: vector.c:484
void map_clear(map me)
Definition: map.c:880
bk_err array_get(void *data, array me, size_t index)
Definition: array.c:191
void * multimap_higher(multimap me, void *key)
Definition: multimap.c:996
bk_err vector_reserve(vector me, size_t size)
Definition: vector.c:136
bk_err unordered_map_put(unordered_map me, void *key, void *value)
Definition: unordered_map.c:269
bk_bool multiset_is_empty(multiset me)
Definition: multiset.c:97
size_t stack_size(stack me)
Definition: stack.c:48
size_t deque_size(deque me)
Definition: deque.c:101
bk_bool multiset_remove_all(multiset me, void *key)
Definition: multiset.c:753
void vector_copy_to_array(void *arr, vector me)
Definition: vector.c:168
list list_destroy(list me)
Definition: list.c:522
bk_err list_get_first(void *data, list me)
Definition: list.c:445
void * array_get_data(array me)
Definition: array.c:113
bk_bool unordered_multiset_is_empty(unordered_multiset me)
Definition: unordered_multiset.c:184
bk_err deque_add_all(deque me, void *arr, size_t size)
Definition: deque.c:211
bk_err list_add_at(list me, size_t index, void *data)
Definition: list.c:243
bk_bool queue_is_empty(queue me)
Definition: queue.c:60
bk_err list_add_first(list me, void *data)
Definition: list.c:223
bk_bool map_remove(map me, void *key)
Definition: map.c:714
void * multimap_ceiling(multimap me, void *key)
Definition: multimap.c:1048
bk_bool multimap_contains(multimap me, void *key)
Definition: multimap.c:554
bk_err array_set(array me, size_t index, void *data)
Definition: array.c:163
bk_err deque_clear(deque me)
Definition: deque.c:619
list list_init(size_t data_size)
Definition: list.c:47
bk_err deque_set_first(deque me, void *data)
Definition: deque.c:498
size_t list_size(list me)
Definition: list.c:74
bk_err vector_get_last(void *data, vector me)
Definition: vector.c:471
size_t unordered_set_size(unordered_set me)
Definition: unordered_set.c:166
bk_err set_put(set me, void *key)
Definition: set.c:309
bk_err forward_list_get_last(void *data, forward_list me)
Definition: forward_list.c:466
bk_err forward_list_set_at(forward_list me, size_t index, void *data)
Definition: forward_list.c:376
size_t set_size(set me)
Definition: set.c:79
void deque_copy_to_array(void *arr, deque me)
Definition: deque.c:167
bk_bool stack_top(void *data, stack me)
Definition: stack.c:141
bk_err forward_list_remove_at(forward_list me, size_t index)
Definition: forward_list.c:302
size_t unordered_multimap_size(unordered_multimap me)
Definition: unordered_multimap.c:195
size_t unordered_multiset_count(unordered_multiset me, void *key)
Definition: unordered_multiset.c:327
bk_err deque_get_at(void *data, deque me, size_t index)
Definition: deque.c:580
size_t queue_size(queue me)
Definition: queue.c:47
bk_bool set_contains(set me, void *key)
Definition: set.c:404
bk_bool multiset_remove(multiset me, void *key)
Definition: multiset.c:723
bk_err deque_set_at(deque me, size_t index, void *data)
Definition: deque.c:517
bk_err unordered_multiset_clear(unordered_multiset me)
Definition: unordered_multiset.c:478
void * multiset_lower(multiset me, void *key)
Definition: multiset.c:823
bk_bool map_is_empty(map me)
Definition: map.c:98
unordered_map unordered_map_destroy(unordered_map me)
Definition: unordered_map.c:450
bk_err unordered_set_rehash(unordered_set me)
Definition: unordered_set.c:134
unordered_multiset unordered_multiset_destroy(unordered_multiset me)
Definition: unordered_multiset.c:511
multiset multiset_destroy(multiset me)
Definition: multiset.c:939
bk_err list_add_all(list me, void *arr, size_t size)
Definition: list.c:127
struct internal_unordered_map * unordered_map
Definition: containers.h:480
bk_bool unordered_map_get(void *value, unordered_map me, void *key)
Definition: unordered_map.c:328
bk_err vector_set_at(vector me, size_t index, void *data)
Definition: vector.c:390
struct internal_deque * queue
Definition: containers.h:375
bk_bool unordered_map_contains(unordered_map me, void *key)
Definition: unordered_map.c:355
bk_err unordered_multiset_rehash(unordered_multiset me)
Definition: unordered_multiset.c:140
char * array
Definition: containers.h:60
bk_bool unordered_multimap_get_next(void *value, unordered_multimap me)
Definition: unordered_multimap.c:368
void unordered_multimap_get_start(unordered_multimap me, void *key)
Definition: unordered_multimap.c:337
size_t unordered_multiset_size(unordered_multiset me)
Definition: unordered_multiset.c:172
bk_err forward_list_get_first(void *data, forward_list me)
Definition: forward_list.c:420
array array_init(size_t element_count, size_t data_size)
Definition: array.c:42
bk_err priority_queue_clear(priority_queue me)
Definition: priority_queue.c:232
bk_err list_set_first(list me, void *data)
Definition: list.c:383
bk_bool unordered_set_is_empty(unordered_set me)
Definition: unordered_set.c:178
size_t unordered_map_size(unordered_map me)
Definition: unordered_map.c:176
bk_err forward_list_get_at(void *data, forward_list me, size_t index)
Definition: forward_list.c:440
bk_err stack_clear(stack me)
Definition: stack.c:154
bk_err forward_list_remove_first(forward_list me)
Definition: forward_list.c:288
bk_bool unordered_set_remove(unordered_set me, void *key)
Definition: unordered_set.c:333
size_t multiset_size(multiset me)
Definition: multiset.c:85
void * map_ceiling(map me, void *key)
Definition: map.c:859
bk_bool priority_queue_is_empty(priority_queue me)
Definition: priority_queue.c:85
struct internal_vector * vector
Definition: containers.h:621
priority_queue priority_queue_destroy(priority_queue me)
Definition: priority_queue.c:246
bk_bool multimap_get_next(void *value, multimap me)
Definition: multimap.c:505
bk_err vector_trim(vector me)
Definition: vector.c:152
bk_bool priority_queue_front(void *data, priority_queue me)
Definition: priority_queue.c:219
bk_err unordered_set_clear(unordered_set me)
Definition: unordered_set.c:372
multimap multimap_destroy(multimap me)
Definition: multimap.c:1085
void * map_first(map me)
Definition: map.c:733
bk_err queue_trim(queue me)
Definition: queue.c:73
bk_err deque_trim(deque me)
Definition: deque.c:127
void * set_higher(set me, void *key)
Definition: set.c:770
void forward_list_clear(forward_list me)
Definition: forward_list.c:476
bk_err vector_remove_last(vector me)
Definition: vector.c:349
bk_bool multimap_remove(multimap me, void *key, void *value)
Definition: multimap.c:831
struct internal_map * map
Definition: containers.h:219
size_t map_size(map me)
Definition: map.c:86
void * multimap_lower(multimap me, void *key)
Definition: multimap.c:970
unordered_map unordered_map_init(size_t key_size, size_t value_size, unsigned long(*hash)(const void *const key), int(*comparator)(const void *const one, const void *const two))
bk_bool set_remove(set me, void *key)
Definition: set.c:677
stack stack_init(size_t data_size)
Definition: stack.c:36
array array_destroy(array me)
Definition: array.c:213
void * set_lower(set me, void *key)
Definition: set.c:744
bk_bool unordered_multimap_contains(unordered_multimap me, void *key)
Definition: unordered_multimap.c:432
bk_err vector_remove_first(vector me)
Definition: vector.c:315
bk_bool unordered_map_is_empty(unordered_map me)
Definition: unordered_map.c:188
struct internal_unordered_multiset * unordered_multiset
Definition: containers.h:555
unordered_set unordered_set_destroy(unordered_set me)
Definition: unordered_set.c:403
bk_err forward_list_set_first(forward_list me, void *data)
Definition: forward_list.c:357
bk_err queue_clear(queue me)
Definition: queue.c:170
bk_bool deque_is_empty(deque me)
Definition: deque.c:113
map map_destroy(map me)
Definition: map.c:896
bk_err forward_list_add_first(forward_list me, void *data)
Definition: forward_list.c:212
void set_clear(set me)
Definition: set.c:843
void * map_lower(map me, void *key)
Definition: map.c:781
void forward_list_copy_to_array(void *arr, forward_list me)
Definition: forward_list.c:101
void * map_higher(map me, void *key)
Definition: map.c:807
size_t multiset_count(multiset me, void *key)
Definition: multiset.c:425
unordered_multimap unordered_multimap_init(size_t key_size, size_t value_size, unsigned long(*hash)(const void *const key), int(*key_comparator)(const void *const one, const void *const two), int(*value_comparator)(const void *const one, const void *const two))
bk_bool queue_back(void *data, queue me)
Definition: queue.c:157
bk_err multiset_put(multiset me, void *key)
Definition: multiset.c:325
bk_err list_get_last(void *data, list me)
Definition: list.c:490
size_t unordered_multimap_count(unordered_multimap me, void *key)
Definition: unordered_multimap.c:405
void * multiset_last(multiset me)
Definition: multiset.c:799
struct internal_priority_queue * priority_queue
Definition: containers.h:341
bk_err unordered_map_clear(unordered_map me)
Definition: unordered_map.c:419
bk_err vector_add_all(vector me, void *arr, size_t size)
Definition: vector.c:207
bk_bool map_contains(map me, void *key)
Definition: map.c:441
bk_err deque_pop_front(void *data, deque me)
Definition: deque.c:443
void * multiset_first(multiset me)
Definition: multiset.c:775
bk_err forward_list_remove_last(forward_list me)
Definition: forward_list.c:339
stack stack_destroy(stack me)
Definition: stack.c:168
bk_err forward_list_add_last(forward_list me, void *data)
Definition: forward_list.c:275
bk_err vector_get_first(void *data, vector me)
Definition: vector.c:430
bk_bool unordered_multiset_remove(unordered_multiset me, void *key)
Definition: unordered_multiset.c:373
queue queue_destroy(queue me)
Definition: queue.c:184
size_t array_size(array me)
Definition: array.c:71
bk_bool unordered_set_contains(unordered_set me, void *key)
Definition: unordered_set.c:308
struct internal_list * list
Definition: containers.h:174
bk_bool multimap_is_empty(multimap me)
Definition: multimap.c:115
struct internal_deque * stack
Definition: containers.h:446
bk_err unordered_multiset_put(unordered_multiset me, void *key)
Definition: unordered_multiset.c:263
bk_bool map_get(void *value, map me, void *key)
Definition: map.c:419
bk_err queue_push(queue me, void *data)
Definition: queue.c:106
bk_err list_remove_last(list me)
Definition: list.c:365
bk_bool multiset_contains(multiset me, void *key)
Definition: multiset.c:448
bk_bool queue_front(void *data, queue me)
Definition: queue.c:140
bk_err vector_remove_at(vector me, size_t index)
Definition: vector.c:329
priority_queue priority_queue_init(size_t data_size, int(*comparator)(const void *const one, const void *const two))
void * multiset_floor(multiset me, void *key)
Definition: multiset.c:875
bk_err list_remove_at(list me, size_t index)
Definition: list.c:324
int bk_bool
Definition: containers.h:49
bk_bool multimap_remove_all(multimap me, void *key)
Definition: multimap.c:903
void * vector_get_data(vector me)
Definition: vector.c:189
bk_err stack_trim(stack me)
Definition: stack.c:73
bk_err list_get_at(void *data, list me, size_t index)
Definition: list.c:465
bk_err deque_push_back(deque me, void *data)
Definition: deque.c:372
void * multimap_floor(multimap me, void *key)
Definition: multimap.c:1022
bk_err forward_list_add_all(forward_list me, void *arr, size_t size)
Definition: forward_list.c:126
unordered_multimap unordered_multimap_destroy(unordered_multimap me)
Definition: unordered_multimap.c:587
size_t vector_capacity(vector me)
Definition: vector.c:89
multiset multiset_init(size_t key_size, int(*comparator)(const void *const one, const void *const two))
bk_err priority_queue_push(priority_queue me, void *data)
Definition: priority_queue.c:104
map map_init(size_t key_size, size_t value_size, int(*comparator)(const void *const one, const void *const two))
bk_err deque_pop_back(void *data, deque me)
Definition: deque.c:471
void * map_floor(map me, void *key)
Definition: map.c:833
bk_bool queue_pop(void *data, queue me)
Definition: queue.c:123
struct internal_deque * deque
Definition: containers.h:87
bk_bool unordered_multimap_remove(unordered_multimap me, void *key, void *value)
Definition: unordered_multimap.c:460
vector vector_init(size_t data_size)
Definition: vector.c:45
void multiset_clear(multiset me)
Definition: multiset.c:922
forward_list forward_list_init(size_t data_size)
Definition: forward_list.c:46
bk_err vector_add_first(vector me, void *data)
Definition: vector.c:238
bk_bool unordered_multimap_is_empty(unordered_multimap me)
Definition: unordered_multimap.c:207
queue queue_init(size_t data_size)
Definition: queue.c:35
bk_err vector_get_at(void *data, vector me, size_t index)
Definition: vector.c:449
void array_copy_to_array(void *arr, array me)
Definition: array.c:89
void * multiset_ceiling(multiset me, void *key)
Definition: multiset.c:901
vector vector_destroy(vector me)
Definition: vector.c:499
bk_err list_set_at(list me, size_t index, void *data)
Definition: list.c:402
void * map_last(map me)
Definition: map.c:757
bk_bool unordered_map_remove(unordered_map me, void *key)
Definition: unordered_map.c:380
struct internal_unordered_multimap * unordered_multimap
Definition: containers.h:514
unordered_set unordered_set_init(size_t key_size, unsigned long(*hash)(const void *const key), int(*comparator)(const void *const one, const void *const two))
bk_bool stack_pop(void *data, stack me)
Definition: stack.c:124
bk_err unordered_multimap_put(unordered_multimap me, void *key, void *value)
Definition: unordered_multimap.c:288
void * set_ceiling(set me, void *key)
Definition: set.c:822
bk_bool vector_is_empty(vector me)
Definition: vector.c:101
bk_err deque_set_last(deque me, void *data)
Definition: deque.c:543
deque deque_destroy(deque me)
Definition: deque.c:656
size_t multimap_count(multimap me, void *key)
Definition: multimap.c:531
multimap multimap_init(size_t key_size, size_t value_size, int(*key_comparator)(const void *const one, const void *const two), int(*value_comparator)(const void *const one, const void *const two))
int bk_err
Definition: containers.h:48
bk_err stack_push(stack me, void *data)
Definition: stack.c:106
void * multimap_last(multimap me)
Definition: multimap.c:946
bk_err forward_list_add_at(forward_list me, size_t index, void *data)
Definition: forward_list.c:232
void queue_copy_to_array(void *arr, queue me)
Definition: queue.c:87
bk_err unordered_set_put(unordered_set me, void *key)
Definition: unordered_set.c:255
bk_err deque_push_front(deque me, void *data)
Definition: deque.c:293
bk_bool unordered_multimap_remove_all(unordered_multimap me, void *key)
Definition: unordered_multimap.c:510
bk_err deque_get_last(void *data, deque me)
Definition: deque.c:606
set set_init(size_t key_size, int(*comparator)(const void *const one, const void *const two))
bk_err vector_set_first(vector me, void *data)
Definition: vector.c:371
bk_bool forward_list_is_empty(forward_list me)
Definition: forward_list.c:85
set set_destroy(set me)
Definition: set.c:859
struct internal_unordered_set * unordered_set
Definition: containers.h:590
bk_bool unordered_multiset_contains(unordered_multiset me, void *key)
Definition: unordered_multiset.c:355
void * multiset_higher(multiset me, void *key)
Definition: multiset.c:849
bk_err vector_set_last(vector me, void *data)
Definition: vector.c:412
void multimap_get_start(multimap me, void *key)
Definition: multimap.c:481
struct internal_forward_list * forward_list
Definition: containers.h:130
bk_err array_add_all(array me, void *arr, size_t size)
Definition: array.c:136
bk_err list_remove_first(list me)
Definition: list.c:310
bk_err list_set_last(list me, void *data)
Definition: list.c:426
bk_err unordered_map_rehash(unordered_map me)
Definition: unordered_map.c:144
bk_err map_put(map me, void *key, void *value)
Definition: map.c:320
bk_err vector_add_last(vector me, void *data)
Definition: vector.c:302
bk_err list_add_last(list me, void *data)
Definition: list.c:297
bk_err forward_list_set_last(forward_list me, void *data)
Definition: forward_list.c:401
void list_copy_to_array(void *arr, list me)
Definition: list.c:102
deque deque_init(size_t data_size)
Definition: deque.c:51
bk_err deque_get_first(void *data, deque me)
Definition: deque.c:561
forward_list forward_list_destroy(forward_list me)
Definition: forward_list.c:498
bk_err unordered_multimap_rehash(unordered_multimap me)
Definition: unordered_multimap.c:163
void list_clear(list me)
Definition: list.c:500
void stack_copy_to_array(void *arr, stack me)
Definition: stack.c:87
size_t forward_list_size(forward_list me)
Definition: forward_list.c:73
unordered_multiset unordered_multiset_init(size_t key_size, unsigned long(*hash)(const void *const key), int(*comparator)(const void *const one, const void *const two))
bk_bool set_is_empty(set me)
Definition: set.c:91
bk_bool list_is_empty(list me)
Definition: list.c:86
bk_bool unordered_multiset_remove_all(unordered_multiset me, void *key)
Definition: unordered_multiset.c:433
bk_err multimap_put(multimap me, void *key, void *value)
Definition: multimap.c:367
bk_err unordered_multimap_clear(unordered_multimap me)
Definition: unordered_multimap.c:555
bk_bool stack_is_empty(stack me)
Definition: stack.c:60
size_t vector_size(vector me)
Definition: vector.c:77
void * set_floor(set me, void *key)
Definition: set.c:796
void multimap_clear(multimap me)
Definition: multimap.c:1069
struct internal_multiset * multiset
Definition: containers.h:301
size_t multimap_size(multimap me)
Definition: multimap.c:103
bk_err vector_add_at(vector me, size_t index, void *data)
Definition: vector.c:259
void * set_first(set me)
Definition: set.c:696
void * set_last(set me)
Definition: set.c:720
void * multimap_first(multimap me)
Definition: multimap.c:922
bk_bool priority_queue_pop(void *data, priority_queue me)
Definition: priority_queue.c:152
size_t priority_queue_size(priority_queue me)
Definition: priority_queue.c:73
struct internal_multimap * multimap
Definition: containers.h:257