SynGame/allegro/include/allegro5/internal/aintern_vector.h

56 lines
1.6 KiB
C

#ifndef __al_included_allegro5_aintern_vector_h
#define __al_included_allegro5_aintern_vector_h
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _AL_VECTOR
{
/* private */
size_t _itemsize;
char* _items; /* total size == (size + unused) * itemsize */
size_t _size;
size_t _unused;
} _AL_VECTOR;
#define _AL_VECTOR_INITIALIZER(typ) { sizeof(typ), 0, 0, 0 }
AL_FUNC(void, _al_vector_init, (_AL_VECTOR*, size_t itemsize));
AL_INLINE(size_t, _al_vector_size, (const _AL_VECTOR *vec),
{
return vec->_size;
})
AL_INLINE(bool, _al_vector_is_empty, (const _AL_VECTOR *vec),
{
ASSERT(vec);
return vec->_size == 0 ? true : false;
})
AL_INLINE(bool, _al_vector_is_nonempty, (const _AL_VECTOR *vec),
{
ASSERT(vec);
return !_al_vector_is_empty(vec);
})
AL_FUNC(void*, _al_vector_ref, (const _AL_VECTOR*, unsigned int index));
AL_FUNC(void*, _al_vector_ref_front, (const _AL_VECTOR*));
AL_FUNC(void*, _al_vector_ref_back, (const _AL_VECTOR*));
AL_FUNC(bool, _al_vector_append_array, (_AL_VECTOR *vec, unsigned int num, const void *arr));
AL_FUNC(void*, _al_vector_alloc_back, (_AL_VECTOR*));
AL_FUNC(void*, _al_vector_alloc_mid, (_AL_VECTOR*, unsigned int index));
AL_FUNC(int, _al_vector_find, (const _AL_VECTOR*, const void *ptr_item));
AL_FUNC(bool, _al_vector_contains, (const _AL_VECTOR*, const void *ptr_item));
AL_FUNC(void, _al_vector_delete_at, (_AL_VECTOR*, unsigned int index));
AL_FUNC(bool, _al_vector_find_and_delete, (_AL_VECTOR*, const void *ptr_item));
AL_FUNC(void, _al_vector_free, (_AL_VECTOR*));
#ifdef __cplusplus
}
#endif
#endif
/* vi ts=8 sts=3 sw=3 et */