Skip to main content

max / quasi

Record that the terminal and egui decline a row's address `Row::address` and `Cells::address` landed today read by quasi-webview and by neither of the other two. A member read by one renderer and silently ignored by two is how `Cells::current`'s drift began -- its own doc admits "Row was renamed and this was missed" -- so the decline is stated where the other declines are, beside `Screen::discovery` in each renderer's `screen`. The argument: an address is where a document holds a row, which is what a reader copies out of an address bar and sends on. A terminal and a window have neither. The identity both of those hosts do answer with is `Row::value`, and both already read it.
Author: Max Johnson <me@maxj.phd> · 2026-09-03 15:49 UTC
Signed with PGP, not checked
Commit: 75e0a126b08828aba973d48d010e9b397ddbe879
Parent: 8f9c513
2 files changed, +27 insertions, -0 deletions
@@ -266,6 +266,19 @@
266 266 /// rather than in the document. [`Screen::discovery`] is declined outright,
267 267 /// since nothing crawls a desktop window.
268 268 ///
269 + /// [`Row::address`] and [`Cells::address`] are declined too, and this says
270 + /// so rather than leaving it to be inferred: a member read by one renderer
271 + /// and silently ignored by two is how [`Cells::current`]'s drift began. An
272 + /// address is where a document holds a row, which is a fact about having a
273 + /// document and an address bar; a window has neither. The identity this
274 + /// host does answer with is [`Row::value`], which `row_at` uses to say
275 + /// which row the pointer is over.
276 + ///
277 + /// [`Row::address`]: quasi_router::Row::address
278 + /// [`Cells::address`]: quasi_router::Cells::address
279 + /// [`Cells::current`]: quasi_router::Cells::current
280 + /// [`Row::value`]: quasi_router::Row::value
281 + ///
269 282 /// `None` is the ordinary frame. egui redraws continuously, so most frames
270 283 /// are a user doing nothing, and a renderer that answered a request per
271 284 /// frame would call the router sixty times a second.
@@ -258,6 +258,20 @@
258 258 /// [`Screen::discovery`] is declined outright: og:type, an indexability
259 259 /// flag and a canonical URL are facts about being crawled, and nothing
260 260 /// crawls a terminal.
261 + ///
262 + /// [`Row::address`] and [`Cells::address`] are declined for the same kind
263 + /// of reason, and this says so because a member read by one renderer and
264 + /// silently ignored by two is how [`Cells::current`]'s drift began. An
265 + /// address is where a *document* holds a row -- what a reader copies out of
266 + /// the URL bar and sends to somebody else -- and a terminal has no document
267 + /// and no address bar to put one in. What a terminal has instead is
268 + /// [`Row::value`], which is the app's own name for the row and is what this
269 + /// crate's focus pass already answers with.
270 + ///
271 + /// [`Row::address`]: quasi_router::Row::address
272 + /// [`Cells::address`]: quasi_router::Cells::address
273 + /// [`Cells::current`]: quasi_router::Cells::current
274 + /// [`Row::value`]: quasi_router::Row::value
261 275 pub fn screen(&self, screen: &Screen, view: &View, area: Rect, buf: &mut Buffer) {
262 276 self.framed(screen, &Frame::new(), view, area, buf);
263 277 }