Go to the source code of this file.
◆ EXCLUSIVE_END_INDEX
| #define EXCLUSIVE_END_INDEX 32 |
◆ INDICES_CAPACITY
◆ INVARIANT_CHECK
| #define INVARIANT_CHECK |
( |
| self | ) |
|
Value:
#define DC_ASSUME(expr,...)
Definition at line 44 of file template.h.
◆ ITER
◆ ITER_CONST
| #define ITER_CONST NS(SELF, iter_const) |
◆ index_t
◆ item
◆ clone()
Definition at line 110 of file template.h.
110 {
115 };
116 memcpy(&new_self.
bits, &self->bits,
sizeof(self->bits));
117 return new_self;
118}
#define INVARIANT_CHECK(self)
static dc_gdb_marker dc_gdb_marker_new()
static mutation_tracker mutation_tracker_new()
uint8_t bits[DC_BITSET_STATIC_CAPACITY_TO_BYTES(EXCLUSIVE_END_INDEX)]
◆ DC_TRAIT_BITSET()
◆ debug()
Definition at line 90 of file template.h.
90 {
93
101 }
102 }
105
108}
#define DC_BITSET_STATIC_INDEX_TO_OFFSET(INDEX)
#define DC_BITSET_STATIC_INDEX_TO_BYTES(INDEX)
#define EXCLUSIVE_END_INDEX
A simple bitset for indexes [0, EXCLUSIVE_END_INDEX), statically allocated.
dc_debug_fmt dc_debug_fmt_scope_end(dc_debug_fmt fmt)
dc_debug_fmt dc_debug_fmt_scope_begin(dc_debug_fmt fmt)
static void dc_debug_fmt_print(dc_debug_fmt fmt, FILE *stream, const char *format,...)
#define EXPAND_STRING(NAME)
static FILE * stream(SELF *self)
Opens a file for.
◆ delete()
| void delete |
( |
SELF * | self | ) |
|
|
static |
◆ empty_item()
◆ get()
Definition at line 79 of file template.h.
79 {
81
83
87 return (self->bits[byte] & mask) != 0;
88}
#define DC_BITSET_STATIC_OFFSET_TO_MASK(OFFSET)
#define DC_ASSERT(expr,...)
◆ get_iter()
Definition at line 206 of file template.h.
206 {
208
211 next_index++;
212 }
213
215 .bitset = self,
216 .next_index = next_index,
218 };
219}
static mutation_version mutation_tracker_get(mutation_tracker const *self)
mutation_tracker iterator_invalidation_tracker
◆ get_iter_const()
Definition at line 162 of file template.h.
162 {
164
167 next_index++;
168 }
169
171 .bitset = self,
172 .next_index = next_index,
174 };
175}
◆ max_index()
◆ min_index()
◆ new()
Definition at line 46 of file template.h.
46 {
48 .bits = {},
51 };
52}
◆ next() [1/2]
Definition at line 189 of file template.h.
189 {
192
195 }
196
202 }
203 return next_index;
204}
static void mutation_version_check(mutation_version const *self)
◆ next() [2/2]
Definition at line 145 of file template.h.
145 {
148
151 }
152
158 }
159 return next_index;
160}
◆ set()
Definition at line 74 of file template.h.
74 {
77}
static bool try_set(SELF *self, INDEX_TYPE index, bool value)
◆ size()
Definition at line 120 of file template.h.
120 {
122
125 size += __builtin_popcount((
unsigned int)self->bits[
byte]);
126 }
127
129}
#define DC_BITSET_STATIC_CAPACITY_TO_BYTES(CAPACITY)
static INDEX_TYPE size(SELF const *self)
◆ try_set()
Definition at line 54 of file template.h.
54 {
57
59 return false;
60 }
61
65
66 if (value) {
67 self->
bits[byte] = self->
bits[byte] | mask;
68 } else {
69 self->
bits[byte] = self->
bits[byte] & (~mask);
70 }
71 return true;
72}
static void mutation_tracker_mutate(mutation_tracker *self)