aboutsummaryrefslogtreecommitdiff
path: root/code/lib/vector.felan
blob: 6ad19913f4ab552203a03d62afe631ad1f1e92c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@import("operator.felan");
@import("memory.felan");

vector :: (comptime t:type)->type{
  return struct {
    ptr : *t;
    size : u64;
    capacity : u64;
  };
};

vector_new :: (comptime t:type) -> (vector(t)) {
  v : vector(t) = undefined;
  v.ptr = malloc(0,@type_of(v.ptr.*));
  v.size = 0u64;
  v.capacity = 0u64;
  return v;
};

delete :: (vec:vector(anytype)) -> void {
  free(vec.ptr);
};