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; } }