28 lines
558 B
Plaintext
28 lines
558 B
Plaintext
import vector;
|
|
import mem;
|
|
|
|
typedef string (Destructable) {
|
|
var data: vector::vector<char>;
|
|
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<char>(data.size);
|
|
for (var i: int = 0; i < data.size; i++;)
|
|
out[i] = data.get(i);
|
|
return out;
|
|
}
|
|
};
|
|
|
|
|