Get rid of array structs

This commit is contained in:
2026-01-02 15:38:25 +00:00
parent ed933cce6e
commit e98c877231
12 changed files with 438 additions and 351 deletions

View File

@@ -62,13 +62,13 @@ u64 wapp_file_get_length(File *file) {
return output;
}
u64 wapp_file_read(GenericArray *dst_buf, File *file, u64 item_count) {
u64 wapp_file_read(GenericArray dst_buf, File *file, u64 item_count) {
wapp_debug_assert(dst_buf != NULL && file != NULL,
"`dst_buf` and `file` should not be NULL.");
u64 file_length = wapp_file_get_length(file);
u64 item_size = dst_buf->item_size;
u64 dst_byte_capacity = dst_buf->capacity * item_size;
u64 item_size = wapp_array_item_size(dst_buf);
u64 dst_byte_capacity = wapp_array_capacity(dst_buf) * item_size;
u64 req_byte_count = item_count * item_size;
u64 copy_byte_count = 0;
@@ -78,24 +78,24 @@ u64 wapp_file_read(GenericArray *dst_buf, File *file, u64 item_count) {
copy_byte_count = file_length <= dst_byte_capacity ? file_length : dst_byte_capacity;
}
u64 count = fread(dst_buf->items, sizeof(u8), copy_byte_count, file);
u64 count = fread(dst_buf, sizeof(u8), copy_byte_count, file);
if (ferror(file)) { return 0; }
dst_buf->count = count / item_size;
wapp_array_set_count(dst_buf, count / item_size);
return dst_buf->count;
return wapp_array_count(dst_buf);
}
u64 wapp_file_write(const GenericArray *src_buf, File *file, u64 item_count) {
u64 wapp_file_write(const GenericArray src_buf, File *file, u64 item_count) {
wapp_debug_assert(src_buf != NULL && file != NULL,
"`src_buf` and `file` should not be NULL.");
u64 item_size = src_buf->item_size;
u64 src_byte_count = src_buf->count * item_size;
u64 item_size = wapp_array_item_size(src_buf);
u64 src_byte_count = wapp_array_count(src_buf) * item_size;
u64 req_byte_count = item_count * item_size;
u64 to_copy = req_byte_count <= src_byte_count ? req_byte_count : src_byte_count;
return fwrite(src_buf->items, sizeof(u8), to_copy, file);
return fwrite(src_buf, sizeof(u8), to_copy, file);
}
i32 wapp_file_flush(File *file) {

View File

@@ -44,8 +44,8 @@ File *wapp_file_open(Str8RO *filename, FileAccessMode mode);
u64 wapp_file_get_current_position(File *file);
i32 wapp_file_seek(File *file, u64 offset, FileSeekOrigin origin);
u64 wapp_file_get_length(File *file);
u64 wapp_file_read(GenericArray *dst_buf, File *file, u64 item_count);
u64 wapp_file_write(const GenericArray *src_buf, File *file, u64 item_count);
u64 wapp_file_read(GenericArray dst_buf, File *file, u64 item_count);
u64 wapp_file_write(const GenericArray src_buf, File *file, u64 item_count);
i32 wapp_file_flush(File *file);
i32 wapp_file_close(File *file);