Banjo API 0.0.1
Multi-purpose C99 API
Loading...
Searching...
No Matches
list.h
Go to the documentation of this file.
1
5
16#pragma once
17
18#include <banjo/api.h>
19#include <banjo/memory.h>
20
23typedef struct bj_list_t bj_list;
24
34BANJO_EXPORT bj_list* bj_list_alloc(
35 void
36);
37
44BANJO_EXPORT bj_list* bj_list_new(
45 size_t bytes_payload
46);
47
54#define bj_list_new_t(T) bj_list_new(sizeof(T))
55
61BANJO_EXPORT void bj_list_del(
62 bj_list* p_list
63);
64
74 bj_list* p_list,
75 size_t bytes_payload
76);
77
85BANJO_EXPORT void bj_list_clear(
86 bj_list* list
87);
88
95 bj_list* p_list
96);
97
104BANJO_EXPORT size_t bj_list_len(
105 bj_list* list
106);
107
128BANJO_EXPORT void* bj_list_insert(
129 bj_list* list,
130 size_t index,
131 void* p_data
132);
133
153BANJO_EXPORT void* bj_list_prepend(
154 bj_list* list,
155 void* p_data
156);
157
165BANJO_EXPORT void* bj_list_at(
166 bj_list* list,
167 size_t index
168);
169
178BANJO_EXPORT void* bj_list_head(
179 bj_list* list
180);
181
185
188 bj_list* list;
189 void** p_current;
190};
191
204 bj_list* list
205);
206
216BANJO_EXPORT void bj_list_iterator_del(
217 bj_list_iterator* iterator
218);
219
227 bj_list* p_list,
228 bj_list_iterator* p_iterator
229);
230
236BANJO_EXPORT void bj_list_iterator_reset(
237 bj_list_iterator* p_iterator
238);
239
246BANJO_EXPORT bj_bool bj_list_iterator_has_next(
247 bj_list_iterator* iterator
248);
249
256BANJO_EXPORT void* bj_list_iterator_next(
257 bj_list_iterator* iterator
258);
259
General-purpose definitions for Banjo API.
void bj_list_iterator_init(bj_list *p_list, bj_list_iterator *p_iterator)
Initializes a list iterator.
void * bj_list_head(bj_list *list)
Returns the value of the first element in the list.
void bj_list_iterator_reset(bj_list_iterator *p_iterator)
Resets a list iterator.
void bj_list_clear(bj_list *list)
Clears all data in the list.
void * bj_list_at(bj_list *list, size_t index)
Returns the value of the element at the specified index.
void bj_list_reset(bj_list *p_list)
Reset the given list.
struct bj_list_t bj_list
Typedef for the BList_t struct.
Definition list.h:23
bj_list * bj_list_alloc(void)
Allocate a new bj_list object in memory.
void * bj_list_insert(bj_list *list, size_t index, void *p_data)
Inserts a new element at the specified index and returns a pointer to it.
void * bj_list_prepend(bj_list *list, void *p_data)
Inserts a new element at position 0 and returns a pointer to it.
void bj_list_del(bj_list *p_list)
Deletes a bj_list object and releases associated memory.
size_t bj_list_len(bj_list *list)
Returns the number of elements in the given list.
bj_list * bj_list_new(size_t bytes_payload)
Creates a new bj_list with the specified payload size.
bj_list_iterator * bj_list_iterator_new(bj_list *list)
Creates a forward-only iterator for the given list.
void * bj_list_iterator_next(bj_list_iterator *iterator)
Returns the next element in the iteration.
struct bj_list_iterator_t bj_list_iterator
Typedef for the bj_list_iterator_t structure.
Definition list.h:184
bj_bool bj_list_iterator_has_next(bj_list_iterator *iterator)
Returns BJ_TRUE if the iterator has more elements.
bj_list * bj_list_init(bj_list *p_list, size_t bytes_payload)
Initializes the given list.
void bj_list_iterator_del(bj_list_iterator *iterator)
Destroys the given list iterator.
Structure representing a list iterator.
Definition list.h:187
All memory-related functions, including custom allocators.