Elijah Koulaxis
8a0cbf04d6
feat(iter): peek(), skip(predicate) for non-list iterators #37604
...
Problem:
Iter:peek() only works if the iterator is a |list-iterator| (internally, an `ArrayIter`).
However, it is possible to implement :peek() support for any iterator.
Solution:
- add `_peeked` buffer for lookahead without actually consuming values
- `peek()` now works for function, pairs(), and array iterators
- `skip(predicate)` stops at the first non matching element without consuming it
- keep existing optimized behavior for `ArrayIter` to maintain backward compatibility
- use `pack`/`unpack` to support iterators that return multiple values
2026-02-12 11:55:16 -05:00
..
2025-12-15 13:55:15 -05:00
2026-01-27 17:14:57 -05:00
2026-01-29 08:29:49 +00:00
2026-01-09 01:36:04 +00:00
2026-02-12 13:46:45 +01:00
2026-02-11 08:02:23 +08:00
2025-11-28 10:10:31 +08:00
2026-02-03 22:25:18 +08:00
2026-02-12 13:46:45 +01:00
2026-02-12 13:46:45 +01:00
2026-02-12 13:46:45 +01:00
2026-02-12 04:20:01 -05:00
2026-01-04 14:15:23 +08:00
2026-02-12 13:46:45 +01:00
2026-01-28 10:56:36 +00:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-12-06 20:33:02 -05:00
2025-12-06 20:33:02 -05:00
2025-12-09 09:08:09 +08:00
2025-11-10 11:13:56 +08:00
2025-12-06 20:33:02 -05:00
2026-01-27 07:20:41 +08:00
2025-09-07 20:45:22 -07:00
2025-11-30 02:14:28 -08:00
2026-01-07 08:11:42 +08:00
2025-12-06 20:33:02 -05:00
2025-11-10 11:13:56 +08:00
2026-01-29 07:19:20 +08:00
2026-01-27 17:14:57 -05:00
2025-11-10 11:13:56 +08:00
2025-12-16 13:46:04 -05:00
2026-01-12 03:50:57 +00:00
2026-01-09 16:38:26 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-01-26 07:05:42 +08:00
2026-01-26 07:05:42 +08:00
2026-02-12 13:46:45 +01:00
2025-12-15 13:55:15 -05:00
2026-02-12 13:46:45 +01:00
2026-02-12 11:55:16 -05:00
2025-12-15 13:55:15 -05:00
2026-01-23 09:30:37 +01:00
2026-02-12 13:46:45 +01:00
2025-12-15 13:55:15 -05:00
2025-12-09 22:25:47 +08:00
2025-11-10 11:13:56 +08:00
2026-02-10 06:44:30 +08:00
2025-09-28 20:57:59 -07:00
2025-10-04 21:09:13 -07:00
2026-02-09 12:13:24 -05:00
2026-02-12 11:55:16 -05:00
2025-12-15 13:55:15 -05:00
2026-02-10 06:44:30 +08:00
2026-01-29 16:24:33 +02:00
2026-01-29 08:22:51 +08:00
2025-11-10 11:13:56 +08:00
2025-12-15 13:55:15 -05:00
2025-11-10 11:13:56 +08:00
2025-12-06 20:33:02 -05:00
2025-12-15 13:55:15 -05:00
2026-02-04 13:53:08 -05:00
2026-02-09 12:13:24 -05:00
2025-12-20 22:07:27 -05:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-02-01 08:30:59 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-01-26 06:44:11 +08:00
2025-12-21 07:12:38 +08:00
2026-02-05 21:39:08 +08:00
2026-02-09 00:19:39 +00:00
2025-11-10 11:13:56 +08:00
2026-02-09 12:13:24 -05:00
2026-01-27 17:14:57 -05:00
2025-11-10 11:13:56 +08:00
2026-02-12 08:07:13 -05:00
2025-12-15 02:07:51 -05:00
2026-01-07 08:11:42 +08:00
2025-11-12 09:00:27 -08:00
2025-12-21 07:12:38 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-12-06 20:33:02 -05:00
2025-11-10 11:13:56 +08:00
2026-01-25 08:17:33 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-27 07:49:44 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-12-06 20:33:02 -05:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-12-15 13:55:15 -05:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-29 00:22:24 +00:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-28 10:10:31 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-02-09 12:13:24 -05:00
2025-12-28 08:18:48 +08:00
2026-02-08 08:07:49 -05:00
2025-11-10 11:13:56 +08:00
2025-12-16 12:55:32 +08:00
2025-12-15 13:55:15 -05:00