33 lines
937 B
Plaintext
33 lines
937 B
Plaintext
Static_Array :: struct (Data_Type : Type, Count: s64) {
|
|
data: [Count] Data_Type;
|
|
count: s64;
|
|
}
|
|
|
|
array_add :: (static_array: *Static_Array, value: static_array.Data_Type) {
|
|
assert(static_array.count < static_array.Count);
|
|
static_array.data[static_array.count] = value;
|
|
static_array.count += 1;
|
|
}
|
|
|
|
for_expansion :: (static_array: *Static_Array, body: Code, flags: For_Flags) #expand {
|
|
for `it_index: 0..static_array.count-1 {
|
|
#if flags & .POINTER {
|
|
`it := *static_array.data[it_index];
|
|
} else {
|
|
`it := static_array.data[it_index];
|
|
}
|
|
#insert body;
|
|
}
|
|
}
|
|
|
|
array_contains :: (static_array: Static_Array, value: static_array.Data_Type) -> bool {
|
|
for static_array {
|
|
if it == value return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
operator [] :: (static_array: Static_Array, index: int) -> static_array.Data_Type {
|
|
return static_array.data[index];
|
|
} |