Bahex
301d1370c4
Add input support to generate
( #14804 )
...
- closes #8523
# Description
This PR adds pipeline input support to `generate`.
- Without input, `generate` keeps its current behavior.
- With input, each invocation of the closure is provided an item from
the input stream as pipeline input (`$in`). If/when the input stream
runs out, `generate` also stops.
Before this PR, there is no filter command that is both stateful _and_
streaming.
This PR also refactors `std/iter scan` to use `generate`, making it
streaming and more performant over larger inputs.
# User-Facing Changes
- `generate` now supports pipeline input, passing each element to the
closure as `$in` until it runs out
- `std/iter scan` is now streaming
# Tests + Formatting
Added tests to validate the new feature.
- 🟢 toolkit fmt
- 🟢 toolkit clippy
- 🟢 toolkit test
- 🟢 toolkit test stdlib
# After Submitting
N/A
2025-01-14 11:44:31 -06:00
..
2024-11-24 10:59:54 -08:00
2024-10-08 11:01:43 +08:00
2025-01-11 13:28:08 -08:00
2024-08-22 11:38:43 +02:00
2025-01-07 11:51:22 -06:00
2024-02-20 11:08:49 -06:00
2024-12-10 23:08:53 +08:00
2024-10-08 11:01:43 +08:00
2024-12-31 16:04:23 -06:00
2024-11-17 19:31:36 -06:00
2024-12-19 17:15:27 -06:00
2024-12-17 17:01:23 +01:00
2024-10-29 07:01:32 -05:00
2022-11-22 16:58:11 -08:00
2024-10-12 14:49:05 +08:00
2024-05-20 00:35:32 +00:00
2024-06-18 07:19:13 -05:00
2024-05-20 00:35:32 +00:00
2024-11-24 10:59:54 -08:00
2024-05-04 00:53:15 +00:00
2024-05-23 02:05:27 +00:00
2024-05-23 02:05:27 +00:00
2023-04-07 14:09:55 -07:00
2024-07-19 00:21:02 -07:00
2024-06-22 07:41:29 -05:00
2024-08-03 10:09:13 +02:00
2024-11-29 13:37:27 -08:00
2024-07-16 03:49:00 +00:00
2023-11-29 23:21:34 +01:00
2024-07-30 18:55:22 -05:00
2023-09-25 08:00:59 -05:00
2023-09-25 08:00:59 -05:00
2023-04-07 14:09:55 -07:00
2023-10-24 12:48:05 -05:00
2024-11-18 08:01:52 +08:00
2024-07-16 03:54:24 +00:00
2024-06-18 07:19:13 -05:00
2024-11-27 09:36:30 +08:00
2023-11-09 13:51:46 +01:00
2024-12-10 11:22:56 -06:00
2024-10-11 06:43:12 -05:00
2023-09-13 06:35:01 +12:00
2023-04-07 14:09:55 -07:00
2024-06-18 21:37:24 -07:00
2024-05-04 00:53:15 +00:00
2024-04-10 06:27:46 +08:00
2023-05-17 18:55:26 -05:00
2023-05-17 18:55:26 -05:00
2024-03-26 17:50:36 +01:00
2024-09-06 07:22:03 +08:00
2024-05-20 00:35:32 +00:00
2023-11-29 23:21:34 +01:00
2023-09-13 06:35:01 +12:00
2024-06-09 12:15:53 +03:00
2025-01-14 11:44:31 -06:00
2025-01-04 16:41:03 -05:00
2024-05-04 00:53:15 +00:00
2024-04-26 06:33:00 -05:00
2025-01-08 23:09:47 +01:00
2023-07-21 17:32:37 +02:00
2024-08-22 12:02:08 +02:00
2023-11-29 23:21:34 +01:00
2024-03-08 02:18:26 -05:00
2024-05-03 08:36:10 +08:00
2024-09-25 07:48:16 -05:00
2024-04-10 06:27:46 +08:00
2023-07-23 20:14:51 +02:00
2024-06-10 10:43:17 +08:00
2024-02-27 15:05:26 +00:00
2024-10-29 06:37:44 -05:00
2024-05-20 00:35:32 +00:00
2024-11-04 03:39:24 +00:00
2024-10-22 11:54:31 +02:00
2023-08-09 14:12:58 +02:00
2023-09-13 06:35:01 +12:00
2024-11-15 12:09:02 +08:00
2024-12-13 06:55:57 -06:00
2024-12-18 06:36:04 -06:00
2023-11-29 23:21:34 +01:00
2024-08-03 10:09:13 +02:00
2025-01-07 07:37:51 +08:00
2024-11-29 23:02:21 +01:00
2024-05-04 00:53:15 +00:00
2025-01-01 03:05:43 +01:00
2023-07-21 17:32:37 +02:00
2024-05-04 00:53:15 +00:00
2024-05-04 00:53:15 +00:00
2024-08-12 17:29:25 +08:00
2024-05-04 00:53:15 +00:00
2024-07-17 16:02:42 -05:00
2025-01-08 23:09:47 +01:00
2024-11-02 10:28:10 -05:00
2023-11-29 23:21:34 +01:00
2024-10-18 03:05:58 +00:00
2023-07-17 18:43:51 +02:00
2024-08-03 10:09:13 +02:00
2023-07-21 17:32:37 +02:00
2024-02-03 13:23:16 +02:00
2025-01-05 17:07:34 -05:00
2025-01-07 07:36:42 +08:00
2024-12-03 20:45:31 -06:00
2023-04-28 13:25:44 +02:00
2024-11-15 21:05:29 +01:00
2024-02-17 10:51:20 +02:00
2023-04-28 13:25:44 +02:00
2024-03-20 22:14:31 +01:00
2024-10-09 19:18:16 -07:00
2024-07-12 02:43:10 +00:00
2024-09-12 07:16:33 -05:00
2024-05-04 00:53:15 +00:00
2025-01-10 19:24:16 -06:00
2024-09-01 19:03:46 +02:00
2023-11-21 20:48:39 -06:00
2024-11-05 09:33:54 +01:00
2024-10-22 11:30:48 -05:00
2024-10-20 23:14:11 +02:00
2024-12-26 07:56:42 -06:00
2024-02-17 20:04:59 +01:00
2024-10-11 14:13:42 +02:00
2024-03-25 16:51:50 -05:00
2023-11-29 23:21:34 +01:00
2023-11-29 23:21:34 +01:00
2024-05-03 08:36:10 +08:00
2024-05-03 08:36:10 +08:00
2024-12-04 19:26:48 -06:00
2025-01-02 06:26:46 -06:00
2024-03-11 19:46:04 +01:00
2023-07-20 19:10:53 -05:00
2023-09-13 06:35:01 +12:00
2024-07-19 04:16:09 +00:00
2024-04-16 19:08:58 +08:00
2023-11-29 23:21:34 +01:00
2024-05-04 00:53:15 +00:00