19 lines
507 B
Zig
19 lines
507 B
Zig
pub fn FixedVec(comptime T: type, comptime N: usize) type {
|
|
return struct {
|
|
data: [N]T = undefined,
|
|
len: usize = 0,
|
|
|
|
pub fn push(self: *@This(), value: T) void {
|
|
if (self.len + 1 >= self.data.len) {
|
|
@panic("Fixed vector overflowed");
|
|
}
|
|
self.data[self.len] = value;
|
|
self.len += 1;
|
|
}
|
|
|
|
pub fn asConstSlice(self: *const @This()) []const T {
|
|
return self.data[0..self.len];
|
|
}
|
|
};
|
|
}
|