From 757eadeec96eb2dd5c5a60a6e7ad5e537f5b8cbc Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sat, 20 Sep 2025 14:11:26 +0100 Subject: [PATCH] Add utilities to convert between item and array when working with files --- src/core/file/file.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/core/file/file.h b/src/core/file/file.h index 3ed21bf..7822e68 100644 --- a/src/core/file/file.h +++ b/src/core/file/file.h @@ -12,6 +12,21 @@ BEGIN_C_LINKAGE #endif // !WAPP_PLATFORM_CPP +#ifdef WAPP_PLATFORM_CPP +#define wapp_file_item_to_array(ITEM) (GenericArray{&(ITEM), 1, 1, sizeof(ITEM)}) +#define wapp_file_array_to_item(TYPE, ARRAY) (sizeof(TYPE) == (ARRAY).item_size && (ARRAY).count == 1 ? \ + *((TYPE *)((ARRAY).items)) : \ + TYPE{}) +#else +#define wapp_file_item_to_array(ITEM) ((GenericArray){.items = &(ITEM), \ + .count = 1, \ + .capacity = 1, \ + .item_size = sizeof(ITEM)}) +#define wapp_file_array_to_item(TYPE, ARRAY) (sizeof(TYPE) == (ARRAY).item_size && (ARRAY).count == 1 ? \ + *((TYPE *)((ARRAY).items)) : \ + (TYPE){0}) +#endif // !WAPP_PLATFORM_CPP + typedef FILE File; typedef enum {