#ifndef LK_ARRAY_H #define LK_ARRAY_H /** * @brief Basic structure for array implementation. * @details The array is designed to store an arbitrary number of similar items. */ struct lk_array { void *array; /**< Data pointer. */ size_t memb; /**< One element size. */ size_t count; /**< Number of elements. */ size_t total; /**< Total number of allocated elements. */ }; int lk_array_init(struct lk_array *a, size_t memb, size_t size); int lk_array_free(struct lk_array *a); int lk_array_empty(struct lk_array *a); int lk_array_append(struct lk_array *a, const void *e); int lk_array_set(struct lk_array *a, unsigned int i, const void *e); void *lk_array_get(struct lk_array *a, unsigned int i); void *lk_array_get_ptr(struct lk_array *a, unsigned int i); int lk_array_unset(struct lk_array *a, unsigned int i); int lk_array_exists(struct lk_array *a, unsigned int i); #endif /* LK_ARRAY_H */