#ifndef CORE_BUFFER_H #define CORE_BUFFER_H #include typedef struct { size_t size; size_t capacity; char* buffer; } CoreBuffer; void coreInitBuffer(CoreBuffer* b); void coreDestroyBuffer(CoreBuffer* b); void coreAddSizedBufferData(CoreBuffer* b, const void* data, size_t size); #define coreAddTypedBufferData(buffer, type, ...) \ coreAddSizedBufferData(buffer, &(type){__VA_ARGS__}, sizeof(type)) void coreClearBuffer(CoreBuffer* b); #ifdef IMPORT_CORE #define Buffer CoreBuffer #define initBuffer coreInitBuffer #define destroyBuffer coreDestroyBuffer #define addSizedBufferData coreAddSizedBufferData #define addTypedBufferData coreAddTypedBufferData #define clearBuffer coreClearBuffer #endif #endif