Skip to main content

max / makenotwork

Return Row from every shape, now that the alias is gone Wave 3's app half. `-> Cells` was the grammar's second spelling for one type and `declare!` emitted it verbatim into the generated signature, so retiring `pub type Cells = Row` moves these eight shapes with it. The bodies are untouched: `cells { .. }` is still what a table row's shape says, and the emitter reads that rather than the return type to pick the form.
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-06 17:07 UTC
Signed with PGP, not checked
Commit: 460b454ed7d823b1ef6a6e21237e67b3704ae1c4
Parent: f12a899
7 files changed, +10 insertions, -12 deletions
@@ -396,7 +396,7 @@
396 396 /// checkable when both halves are in front of you, and here they never are.
397 397 /// The names must match [`table`]'s `column` strings exactly, since a name
398 398 /// no column carries is dropped rather than reported.
399 - shape row(item: &DiscoverItem) -> Cells;
399 + shape row(item: &DiscoverItem) -> Row;
400 400
401 401 cells {
402 402 cell at "Type" "" {
@@ -179,7 +179,7 @@
179 179 /// The short oid opens the commit; the link beside it opens the same commit
180 180 /// at its notes. Two addresses on one cell, which is what a cell holding a
181 181 /// run of leaves is for.
182 - shape row(view: &View<'_>, base: &str, line: &BlameLine) -> Cells;
182 + shape row(view: &View<'_>, base: &str, line: &BlameLine) -> Row;
183 183
184 184 let commit = "{base}/commit/{line.commit_oid}";
185 185
@@ -302,7 +302,7 @@
302 302
303 303 declare! {
304 304 /// One version.
305 - shape row(item_id: &str, version: &Version) -> Cells;
305 + shape row(item_id: &str, version: &Version) -> Row;
306 306
307 307 cells {
308 308 cell at COL_VERSION "" {
@@ -136,7 +136,7 @@
136 136
137 137 declare! {
138 138 /// One sale.
139 - shape row(item: ItemId, sale: &SaleRow) -> Cells;
139 + shape row(item: ItemId, sale: &SaleRow) -> Row;
140 140
141 141 cells {
142 142 cell at COL_DATE sale.date.clone();
@@ -855,7 +855,7 @@
855 855 /// The cells name their columns. [`table`] is a shape away and decides both
856 856 /// the order and how many there are, so anything counted to a position here
857 857 /// would be counted against a list this declaration cannot see.
858 - shape item_row(slug: &str, view: &View, row: &Placed<'_>) -> Cells;
858 + shape item_row(slug: &str, view: &View, row: &Placed<'_>) -> Row;
859 859
860 860 cells {
861 861 ticking row.item.id.clone() view.ticked;
@@ -919,7 +919,7 @@
919 919 /// has nothing to put in the position column, and an empty cell that has to
920 920 /// be counted past is exactly what naming removes. `#` is simply not
921 921 /// mentioned here.
922 - shape child_row(view: &View, child: &ContentItem) -> Cells;
922 + shape child_row(view: &View, child: &ContentItem) -> Row;
923 923
924 924 cells {
925 925 ticking child.id.clone() view.ticked;
@@ -255,7 +255,7 @@
255 255 /// Each cell names the column it belongs to. The headings live in
256 256 /// [`table`], so counting to a position here would be counting against a
257 257 /// list this function cannot see.
258 - shape row(member: &ProjectMemberRow, project: &str) -> Cells;
258 + shape row(member: &ProjectMemberRow, project: &str) -> Row;
259 259
260 260 cells {
261 261 // The template drew the display name and `@username` as two lines in
@@ -20,7 +20,7 @@
20 20 //! `/pricing` would give the site-wide shortcut a pricing-shaped address and
21 21 //! move it the first time a second screen converted.
22 22
23 - use quasi_router::screen::{Cell, Cells, Column, Row, Table};
23 + use quasi_router::screen::{Cell, Column, Row, Table};
24 24 use quasi_router::{
25 25 Action, Chrome, Node, Outcome, RegionKind, Request, Response, RouteError, Router, Screen, Slot,
26 26 };
@@ -65,10 +65,8 @@
65 65 /// `keyboard.js`, and this is the same thing said once.
66 66 pub fn screen(_state: &(), _request: Request) -> Result<Response, RouteError> {
67 67 // `Row::cells`, not `Row::new`: this row answers the two columns above
68 - // positionally, and `new` names the primary column of the default set. The
69 - // 2026-09-05 collapse made `Cells::new` resolve to `Row::new`, so the old
70 - // spelling is now a different constructor rather than a renamed one.
71 - let mut rows: Vec<Cells> = chrome()
68 + // positionally, and `new` names the primary column of the default set.
69 + let mut rows: Vec<Row> = chrome()
72 70 .bindings
73 71 .iter()
74 72 .map(|binding| Row::cells([Cell::new(&binding.key), Cell::new(&binding.label)]))