From: Lucas Bajolet Date: Fri, 28 Feb 2014 20:11:33 +0000 (-0500) Subject: stdlib/strings: Access iterator through its position constructor. X-Git-Tag: v0.6.5~7^2~3^2~27 X-Git-Url: http://nitlanguage.org?ds=sidebyside stdlib/strings: Access iterator through its position constructor. Signed-off-by: Lucas Bajolet --- diff --git a/lib/standard/string.nit b/lib/standard/string.nit index e1505df..524d4d4 100644 --- a/lib/standard/string.nit +++ b/lib/standard/string.nit @@ -378,6 +378,10 @@ abstract class StringCharView redef fun length do return target.length + redef fun iterator: IndexedIterator[Char] do return self.iterator_from(0) + + fun iterator_from(pos: Int): IndexedIterator[Char] is abstract + redef fun has(c: Char): Bool do for i in self do @@ -747,7 +751,7 @@ private class FlatStringCharView return target._items[index + target._index_from] end - redef fun iterator: IndexedIterator[Char] do return new FlatStringIterator.with_pos(target, 0) + redef fun iterator_from(start) do return new FlatStringIterator.with_pos(target, start) end @@ -918,7 +922,7 @@ private class FlatBufferCharView if target.capacity < s.length then enlarge(s_length + target.length) end - redef fun iterator: IndexedIterator[Char] do return new FlatBufferIterator.with_pos(target, 0) + redef fun iterator_from(pos) do return new FlatBufferIterator.with_pos(target, pos) end