private class Leaf
super RopeString
- private var buf: ManualBuffer
- private var bns: NativeString is noinit
+ var buf: ManualBuffer
+ var bns: NativeString is noinit
redef var length: Int is noinit
redef fun empty do return new Leaf(new ManualBuffer)
redef fun +(o) do
var s = o.to_s
- var mlen = length
var slen = s.length
if s isa FlatString then
var r = right
return new Concat(sl + self, s.right)
else if s isa Leaf then
if slen + mlen > maxlen then return new Concat(self, s)
- var mits = items
var mifrom = index_from
var sb = s.buf
var b = new ManualBuffer