@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; }; __get_item__ :: (left:vector(anytype),index:i64) -> (@type_of(left.ptr.*)) { return (left.ptr + index).*; }; __set_item__ :: (left:vector(anytype),index:i64,item:@type_of(left.ptr.*)) -> (@type_of(left.ptr.*)) { return (left.ptr + index).* = item; }; __get_item_address__ :: (left:vector(anytype),index:i64) -> (@type_of(left.ptr)) { return (left.ptr + index); }; push_back :: (vec:vector(anytype),value:@type_of(vec.ptr.*)) -> void { @putc('h'); }; delete :: (vec:vector(anytype)) -> void { free(vec.ptr); };