use text; use strings; // TODO: docs export type Leaf = struct { buf: []rune, length: size, }; // TODO: docs fn leaf_close(leaf: *Leaf) void = free(leaf.buf); // TODO: docs fn leaf_new() Leaf = Leaf { buf = strings::torunes(""), length = 0: size, }; // TODO: docs fn leaf_fromstr(string: str) Leaf = Leaf { buf = strings::torunes(string), length = len(string), }; // TODO: docs fn leaf_at(leaf: *const Leaf, idx: size) (rune | indexerror) = if (idx > leaf.length) { yield indexerror; } else { yield leaf.buf[idx]; };