Banjo API 0.0.1
Multi-purpose C99 API
Loading...
Searching...
No Matches
array.h
Go to the documentation of this file.
1
15#pragma once
16
17#include <banjo/api.h>
18
21typedef struct bj_array_t bj_array;
22
30#define bj_array_new_t(T) bj_array_new(sizeof(T))
31
39BANJO_EXPORT bj_array* bj_array_new(
40 size_t bytes_payload
41);
42
47BANJO_EXPORT void bj_array_del(
48 bj_array* p_array
49);
50
62 void
63);
64
72BANJO_EXPORT bj_array* bj_array_init(
73 bj_array* p_instance,
74 size_t bytes_payload
75);
76
81BANJO_EXPORT void bj_array_reset(
82 bj_array* p_array
83);
84
85
95BANJO_EXPORT void bj_array_clear(
96 bj_array* array
97);
98
108BANJO_EXPORT void bj_array_shrink(
109 bj_array* array
110);
111
122BANJO_EXPORT void bj_array_set_len(
123 bj_array* array,
124 size_t len
125);
126
138BANJO_EXPORT void bj_array_reserve(
139 bj_array* array,
140 size_t capacity
141);
142
153BANJO_EXPORT void bj_array_push(
154 bj_array* array,
155 const void* value
156);
157
166BANJO_EXPORT void bj_array_pop(
167 bj_array* array
168);
169
178BANJO_EXPORT void* bj_array_at(
179 const bj_array* array,
180 size_t at
181);
182
190BANJO_EXPORT void* bj_array_data(
191 const bj_array* array
192);
193
201BANJO_EXPORT size_t bj_array_len(
202 const bj_array* array
203);
204
212BANJO_EXPORT size_t bj_array_capacity(
213 const bj_array* array
214);
215
General-purpose definitions for Banjo API.
void bj_array_set_len(bj_array *array, size_t len)
Resizes the array to the specified length.
void * bj_array_data(const bj_array *array)
Retrieves a pointer to the underlying data of the array.
bj_array * bj_array_new(size_t bytes_payload)
Creates a new bj_array with a payload size specified in bytes.
struct bj_array_t bj_array
Typedef for the bj_array_t struct.
Definition array.h:21
void bj_array_clear(bj_array *array)
Clears all elements in the array.
void bj_array_push(bj_array *array, const void *value)
Appends a value to the end of the array.
size_t bj_array_capacity(const bj_array *array)
Retrieves the current capacity of the array.
bj_array * bj_array_alloc(void)
Allocate enough memory to hold an Array object.
bj_array * bj_array_init(bj_array *p_instance, size_t bytes_payload)
Initialize a new array with given size.
void bj_array_reserve(bj_array *array, size_t capacity)
Reserves memory for up to capacity elements in the array.
size_t bj_array_len(const bj_array *array)
Retrieves the number of elements in the array.
void bj_array_shrink(bj_array *array)
Shrinks the memory allocation to fit the current array length.
void bj_array_reset(bj_array *p_array)
Resets the entire array object, making it suitable for free.
void * bj_array_at(const bj_array *array, size_t at)
Retrieves the value stored at the specified index in the array.
void bj_array_pop(bj_array *array)
Removes the last value from the array.
void bj_array_del(bj_array *p_array)
Deletes a bj_array object and releases associated memory.