Commit e3eb3c6
feat: extract execute_until scheduler with per-child done predicates
Move the iterative execution scheduler into a general-purpose
`execute_until<M: Matcher>` method on `dyn Array`. The scheduler
terminates when the root array matches `M`, while each child
can specify its own termination condition via a `DonePredicate`
carried in `ExecutionStep::ExecuteChild`.
`ExecutionStep` now provides constructor methods:
- `execute_child::<M>(idx)` — request child execution until M matches
- `done(result)` — signal completion
Both `Executable for Columnar` and `Executable for Canonical` are
simplified to thin wrappers over `execute_until` with `AnyColumnar`
and `AnyCanonical` matchers respectively.
Signed-off-by: Nick Gates <nick@vortex.dev>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 962397c commit e3eb3c6
5 files changed
Lines changed: 601 additions & 718 deletions
0 commit comments