(&self, start: Self::Pos, counts: u32)
| 218 | } |
| 219 | |
| 220 | fn next_range(&self, start: Self::Pos, counts: u32) -> Result<(&str, Self::Pos), Self::Err> |
| 221 | { |
| 222 | let startidx = start.idx() as usize; |
| 223 | let range = startidx..startidx + counts as usize; |
| 224 | self.get(range) |
| 225 | .map(|s| |
| 226 | { |
| 227 | let mut pos = start; |
| 228 | for c in s.chars() |
| 229 | { |
| 230 | pos = pos.next(c); |
| 231 | } |
| 232 | |
| 233 | (s, pos) |
| 234 | }) |
| 235 | |
| 236 | .ok_or_else(|| self.err_at(start, "[ERR] OUT OF BOUNDS")) |
| 237 | } |
| 238 | |
| 239 | |
| 240 | fn err_at(&self, pos: Self::Pos, cause: &'static str) -> Self::Err |