import vector; import mem; typedef string (Destructable) { var data: vector::vector; fun construct(): string* { data.construct(); return this; } fun construct(str: char*): string* { data.construct(); while(*str) { data.addEnd(*str); str += 1; } return this; } fun toCharArray(): char* { var out: char* = mem::new(data.size); for (var i: int = 0; i < data.size; i++;) out[i] = data.get(i); return out; } };