2024-07-21 04:57:59 -04:00
|
|
|
#ifndef STORM_ARRAY_H
|
|
|
|
|
#define STORM_ARRAY_H
|
|
|
|
|
|
2024-08-09 07:15:03 -04:00
|
|
|
#include "system/types.h"
|
2024-07-21 04:57:59 -04:00
|
|
|
|
|
|
|
|
#define STORM_TS_BASE_ARRAY(T) typedef struct TSBaseArray_##T TSBaseArray_##T; \
|
|
|
|
|
struct TSBaseArray_##T { \
|
|
|
|
|
uint32_t m_alloc; \
|
|
|
|
|
uint32_t m_count; \
|
|
|
|
|
T* m_data; \
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define STORM_TS_FIXED_ARRAY(T) typedef struct TSFixedArray_##T TSFixedArray_##T; \
|
|
|
|
|
struct TSFixedArray_##T { \
|
|
|
|
|
uint32_t m_alloc; \
|
|
|
|
|
uint32_t m_count; \
|
|
|
|
|
T* m_data; \
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define STORM_TS_GROWABLE_ARRAY(T) typedef struct TSGrowableArray_##T TSGrowableArray_##T; \
|
|
|
|
|
struct TSGrowableArray_##T { \
|
|
|
|
|
uint32_t m_alloc; \
|
|
|
|
|
uint32_t m_count; \
|
|
|
|
|
T* m_data; \
|
|
|
|
|
uint32_t m_chunk; \
|
|
|
|
|
};
|
|
|
|
|
|
2024-08-09 07:15:03 -04:00
|
|
|
// "pointer-to" types hack
|
|
|
|
|
|
|
|
|
|
#define STORM_TS_BASE_ARRAY_POINTER_TO(T) typedef struct TSBaseArray_pointer_to_##T TSBaseArray_pointer_to_##T; \
|
|
|
|
|
struct TSBaseArray_pointer_to_##T { \
|
|
|
|
|
uint32_t m_alloc; \
|
|
|
|
|
uint32_t m_count; \
|
|
|
|
|
T** m_data; \
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define STORM_TS_FIXED_ARRAY_POINTER_TO(T) typedef struct TSFixedArray_pointer_to_##T TSFixedArray_pointer_to_##T; \
|
|
|
|
|
struct TSFixedArray_pointer_to_##T { \
|
|
|
|
|
uint32_t m_alloc; \
|
|
|
|
|
uint32_t m_count; \
|
|
|
|
|
T** m_data; \
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define STORM_TS_GROWABLE_ARRAY_POINTER_TO(T) typedef struct TSGrowableArray_pointer_to_##T TSGrowableArray_pointer_to_##T; \
|
|
|
|
|
struct TSGrowableArray_pointer_to_##T { \
|
|
|
|
|
uint32_t m_alloc; \
|
|
|
|
|
uint32_t m_count; \
|
|
|
|
|
T** m_data; \
|
|
|
|
|
uint32_t m_chunk; \
|
|
|
|
|
};
|
|
|
|
|
|
2024-07-21 04:57:59 -04:00
|
|
|
#endif
|