canon_generator 0.4.2
canon_generator: ^0.4.2 copied to clipboard
Code generator for canon — emits the typed Screen, Hop, and verb surface from the spec enum.
0.4.2 #
- Cycle bare
pop()now returns a predecessor-union nav whose.atnarrows to the actual parent (exhaustiveswitch (x.pop().at)), instead of the canonical parent's type which could mislead in a cycle. Reuses a screen's own union when the predecessors are just its placements; chains one more level (.pop().pop()) when the grandparents resolve unambiguously.
0.4.1 #
- Fix: single-placement cyclic screens now get the full cycle surface (depth getter, self-pop, cycle-member
popToX) — the single-placement fast path previously bypassed it; only multi-placement screens were covered. Add generator golden tests.
0.4.0 #
- Emit chainable self-pop: cycle-member
popToXx(including the screen itself) is now on union navs too, sopopToProfile().popToProfile()keeps a handle that still exposes the cycle pops. Emit_endsWithonly when a.underactually uses it. Require canon ^0.4.0.
0.3.0 #
- Emit the cycle navigation surface: the
On/OnId/OnCyclic/OnIdCyclic/OnDepthone-shot token machine with.depth(n), adepthgetter on cyclic nav handles, and throwing cycle-memberpopToXverbs. Require canon ^0.3.0.
0.2.1 #
- Emit edge-required handle verbs (
goX/go(Hop)passedgeRequired), replacing the debug-only stale assert; guaranteed pops now throw via the engine. Require canon ^0.2.1.
0.2.0 #
- Emit the stale-codegen guard (
Screen.isCodegenFresh+ boot-time assert). - Recognize the
cycled/stackedback-edges (replacingagain). - Require canon ^0.2.0.
0.1.2 #
- Require canon ^0.1.0.
0.1.1 #
- Lint fix.
0.1.0 #
- Initial release.