Skip to main content

max / goingson

Match the mail list fragment on the container a list now is `Node::List` is gone: a list is a `Node::Table` that declared no columns. The three sites are all in the mail tests and all destructure one known node -- a fragment's own node, and the first body node of the LIST slot -- rather than searching for one, so none of them needed the `columns.is_empty()` guard that audiofiles' searching helpers did. The 18 shape files needed nothing, which is the second time this tree has sat out a wave of the collapse. 922 lib tests green, clippy clean with -D warnings.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01P8ostB2UmZJGj5WjSHRSot
Author: Max Johnson <me@maxj.phd> · 2026-09-07 01:27 UTC
Signed with PGP, not checked
Commit: 4e6f2bd41d1cb25c9b76a205cd6983a59a7fd32e
Parent: db80315
1 file changed, +3 insertions, -3 deletions
@@ -132,7 +132,7 @@
132 132 fn rows(response: Response) -> Vec<Row> {
133 133 match response.outcome {
134 134 Outcome::Fragment {
135 - node: Node::List { rows, .. },
135 + node: Node::Table { rows, .. },
136 136 ..
137 137 } => rows,
138 138 other => panic!("expected a list fragment, got {other:?}"),
@@ -143,7 +143,7 @@
143 143 fn remainder(response: Response) -> Option<quasi_router::screen::Rest> {
144 144 match response.outcome {
145 145 Outcome::Fragment {
146 - node: Node::List { more, .. },
146 + node: Node::Table { more, .. },
147 147 ..
148 148 } => more,
149 149 other => panic!("expected a list fragment, got {other:?}"),
@@ -204,7 +204,7 @@
204 204 .find(|slot| slot.id == super::LIST)
205 205 .and_then(|slot| slot.body.first())
206 206 .map_or_else(Vec::new, |ranked| match &ranked.node {
207 - Node::List { rows, .. } => rows.clone(),
207 + Node::Table { rows, .. } => rows.clone(),
208 208 other => panic!("expected a list, got {other:?}"),
209 209 })
210 210 }