Record the place.rs visibility round and point the handoff at 1ebd4d3

This commit is contained in:
iris-ai committed 2026-09-19 23:52:13 -04:00
1 parent 52a5c2f40c
commit 362191c3f3
2 files changed
+16 -11

No files matched your search

+12 -7
View File
@@ -213,19 +213,24 @@ moved a box, and all three seed scans passed on `7e2b4cd` (400 at depth 5 in
`move_idx != parent_move`; `Axis::BOTH` replaces `AXES` in three modules;
`Len::rel_min`, `rel_max` and the unused `select_len` are gone.
`1ebd4d3` then closed the `PlaceSpan` item. `PlaceSpan` and `RelBase` are
`pub` and `ui/mod.rs` re-exports `place` by name rather than by glob, the way
it already did for `painter`, so the six `pub(crate)` accessors
(`stated_rel_base`, `narrows_rel_base`, `within_span`, `is_sized`,
`does_fill`, `with_rel_base`) are gone and `in_parent` matches
`(at.span, declared)`. `!at.is_sized()` was dead: `PlaceSpan::Sized` is built
only by `Len::as_desc`, which sets `RelBase::Len(self)` in the same literal,
and deleting `with_rel_base` removes the only writer that could have
separated them. Visibility here is plain `pub` plus a named re-export
wherever the path can be hidden (Bryan, 2026-09-19); `pub(super)` is for
inherent methods on types the crate exports, where it cannot.
What is left, none of it urgent:
- `widget_at` does three linear scans per child (`children.contains`,
`under.iter_mut().find`, `depend_on`), so a span of *n* children is
O(n^2) per draw. Not a problem at today's sizes; it is worth knowing
before a long transcript list lands on it.
- `PlaceSpan` is private to `place.rs`, so `Painter::in_parent` asks five
yes/no questions (`stated_rel_base`, `is_sized`, `within_span`,
`narrows_rel_base`, `does_fill`) about a three-case enum instead of
matching it. Two of those questions are redundant with one another --
`Sized` always states a rel base -- but only because nothing constructs
a `Sized` without one, which nothing states. `pub(crate)` on the enum
would let `in_parent` read as its three cases.
- `DrawInfo` and `ActiveData` both carry `placed` and `asked`, two
`PlaceDesc` fields distinguished only by position in every literal.
They are genuinely different and documented, but the names are past