libcute 0.1
Loading...
Searching...
No Matches
bitmap.h
Go to the documentation of this file.
1
2#pragma once
3
4#include "memory/allocator.h"
5#include "object/optional.h"
6#include <stddef.h>
7
16typedef struct {
18 size_t *bits;
19 size_t bitCount;
20} cu_Bitmap;
21
23
24
25cu_Bitmap_Optional cu_Bitmap_create(
26 cu_Allocator backingAllocator, size_t bitCount);
28void cu_Bitmap_destroy(cu_Bitmap *bitmap);
30bool cu_Bitmap_get(const cu_Bitmap *bitmap, size_t index);
32void cu_Bitmap_set(cu_Bitmap *bitmap, size_t index);
34void cu_Bitmap_clear(cu_Bitmap *bitmap, size_t index);
36void cu_Bitmap_clear_all(cu_Bitmap *bitmap);
38static inline size_t cu_Bitmap_size(const cu_Bitmap *bitmap) {
39 return bitmap->bitCount;
40}
void cu_Bitmap_set(cu_Bitmap *bitmap, size_t index)
Definition bitmap.c:48
cu_Bitmap_Optional cu_Bitmap_create(cu_Allocator backingAllocator, size_t bitCount)
Definition bitmap.c:5
void cu_Bitmap_destroy(cu_Bitmap *bitmap)
Definition bitmap.c:28
void cu_Bitmap_clear_all(cu_Bitmap *bitmap)
Definition bitmap.c:66
void cu_Bitmap_clear(cu_Bitmap *bitmap, size_t index)
Definition bitmap.c:57
bool cu_Bitmap_get(const cu_Bitmap *bitmap, size_t index)
Definition bitmap.c:39
#define CU_OPTIONAL_DECL(NAME, T)
Definition optional.h:25
Definition allocator.h:24
Dynamically allocated bitmap.
Definition bitmap.h:16
size_t * bits
Definition bitmap.h:18
size_t bitCount
Definition bitmap.h:19
cu_Allocator backingAllocator
Definition bitmap.h:17