Follow quasi to 0.97, where a row carries its Nesting
`Row::depth` takes `layout::Nesting` rather than a bare `usize`. The tag
sidebar is the tree in this app and so the only construction site in it:
the dot count in `drums.kick` becomes a `Nesting`, which puts the one
fallible narrowing in the tree here, on a tag path that is never 255
deep.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_01MptwXZ8k65v19rFmdGAyki
4 files changed,
+21 insertions,
-20 deletions
| 3086 |
3086 |
|
|
| 3087 |
3087 |
|
[[package]]
|
| 3088 |
3088 |
|
name = "makeover-layout"
|
| 3089 |
|
- |
version = "0.41.0"
|
|
3089 |
+ |
version = "0.41.2"
|
| 3090 |
3090 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 3091 |
|
- |
checksum = "668c1ae75b3cc6617b9ef840f7980b0f576a93564f244c920191c90794fc8e17"
|
|
3091 |
+ |
checksum = "f99de8062307b884315ffa57696427bfc846227d4b1d8b03ade031cd07c9eb2c"
|
| 3092 |
3092 |
|
|
| 3093 |
3093 |
|
[[package]]
|
| 3094 |
3094 |
|
name = "makeover-timing"
|
| 4256 |
4256 |
|
|
| 4257 |
4257 |
|
[[package]]
|
| 4258 |
4258 |
|
name = "quasi-immediate"
|
| 4259 |
|
- |
version = "0.95.0"
|
|
4259 |
+ |
version = "0.97.0"
|
| 4260 |
4260 |
|
dependencies = [
|
| 4261 |
4261 |
|
"docengine",
|
| 4262 |
4262 |
|
"egui",
|
| 4267 |
4267 |
|
|
| 4268 |
4268 |
|
[[package]]
|
| 4269 |
4269 |
|
name = "quasi-router"
|
| 4270 |
|
- |
version = "0.95.0"
|
|
4270 |
+ |
version = "0.97.0"
|
| 4271 |
4271 |
|
dependencies = [
|
| 4272 |
4272 |
|
"makeover-layout",
|
| 4273 |
4273 |
|
]
|
| 7558 |
7558 |
|
|
| 7559 |
7559 |
|
[[patch.unused]]
|
| 7560 |
7560 |
|
name = "quasi-axum"
|
| 7561 |
|
- |
version = "0.95.0"
|
|
7561 |
+ |
version = "0.97.0"
|
| 7562 |
7562 |
|
|
| 7563 |
7563 |
|
[[patch.unused]]
|
| 7564 |
7564 |
|
name = "quasi-basics"
|
| 7565 |
|
- |
version = "0.95.0"
|
|
7565 |
+ |
version = "0.97.0"
|
| 7566 |
7566 |
|
|
| 7567 |
7567 |
|
[[patch.unused]]
|
| 7568 |
7568 |
|
name = "quasi-http"
|
| 7569 |
|
- |
version = "0.95.0"
|
|
7569 |
+ |
version = "0.97.0"
|
| 7570 |
7570 |
|
|
| 7571 |
7571 |
|
[[patch.unused]]
|
| 7572 |
7572 |
|
name = "quasi-notifs"
|
| 7573 |
|
- |
version = "0.95.0"
|
|
7573 |
+ |
version = "0.97.0"
|
| 7574 |
7574 |
|
|
| 7575 |
7575 |
|
[[patch.unused]]
|
| 7576 |
7576 |
|
name = "quasi-store"
|
| 7578 |
7578 |
|
|
| 7579 |
7579 |
|
[[patch.unused]]
|
| 7580 |
7580 |
|
name = "quasi-tauri"
|
| 7581 |
|
- |
version = "0.95.0"
|
|
7581 |
+ |
version = "0.97.0"
|
| 7582 |
7582 |
|
|
| 7583 |
7583 |
|
[[patch.unused]]
|
| 7584 |
7584 |
|
name = "quasi-webview"
|
| 7585 |
|
- |
version = "0.95.0"
|
|
7585 |
+ |
version = "0.97.0"
|
|
7586 |
+ |
|
|
7587 |
+ |
[[patch.unused]]
|
|
7588 |
+ |
name = "quasi-type"
|
|
7589 |
+ |
version = "0.1.3"
|
| 7586 |
7590 |
|
|
| 7587 |
7591 |
|
[[patch.unused]]
|
| 7588 |
7592 |
|
name = "kberg"
|
| 7595 |
7599 |
|
[[patch.unused]]
|
| 7596 |
7600 |
|
name = "painhours"
|
| 7597 |
7601 |
|
version = "0.1.0"
|
| 7598 |
|
- |
|
| 7599 |
|
- |
[[patch.unused]]
|
| 7600 |
|
- |
name = "quasi-type"
|
| 7601 |
|
- |
version = "0.1.3"
|
| 26 |
26 |
|
# The described screens, which are audiofiles-browser's screens. By git URL with
|
| 27 |
27 |
|
# a version requirement, per the tree's rule for cross-repo deps. They were
|
| 28 |
28 |
|
# behind a `quasi` feature until 2026-08-25, when the last flip landed.
|
| 29 |
|
- |
quasi-router = { git = "https://makenot.work/git/max/quasi.git", version = "0.95" }
|
| 30 |
|
- |
quasi-immediate = { git = "https://makenot.work/git/max/quasi.git", version = "0.95" }
|
|
29 |
+ |
quasi-router = { git = "https://makenot.work/git/max/quasi.git", version = "0.97" }
|
|
30 |
+ |
quasi-immediate = { git = "https://makenot.work/git/max/quasi.git", version = "0.97" }
|
| 31 |
31 |
|
egui = { version = "0.35", default-features = false, features = ["default_fonts"] }
|
| 32 |
32 |
|
egui_extras = { version = "0.35", default-features = false }
|
| 33 |
33 |
|
eframe = { version = "0.35", default-features = false, features = ["default_fonts", "glow"] }
|
| 75 |
75 |
|
//! - **The onboarding banner.** `show_vfs_banner` explains what a vault is once.
|
| 76 |
76 |
|
//! A described first run is its own subject.
|
| 77 |
77 |
|
|
| 78 |
|
- |
use quasi_router::layout::Tone;
|
|
78 |
+ |
use quasi_router::layout::{Nesting, Tone};
|
| 79 |
79 |
|
use quasi_router::{
|
| 80 |
80 |
|
Act, Action, Node, RegionKind, Request, Response, RouteError, Router, Row, Slot, Tag,
|
| 81 |
81 |
|
};
|
| 376 |
376 |
|
said.push(branch.to_owned());
|
| 377 |
377 |
|
let level = branch.matches('.').count();
|
| 378 |
378 |
|
let label = branch.rsplit('.').next().unwrap_or(branch);
|
| 379 |
|
- |
let mut row = Row::new(label).depth(level);
|
|
379 |
+ |
let mut row =
|
|
380 |
+ |
Row::new(label).depth(Nesting::at(u8::try_from(level).unwrap_or(u8::MAX)));
|
| 380 |
381 |
|
// A tag in its own right is ticked to filter by it. A segment that
|
| 381 |
382 |
|
// only groups is neither ticked nor tickable.
|
| 382 |
383 |
|
if let Some(filter) = all.iter().find(|filter| filter.path == branch) {
|
| 5175 |
5175 |
|
let library = FakeLibrary::stocked();
|
| 5176 |
5176 |
|
let rows = tag_rows(&browsed(&library));
|
| 5177 |
5177 |
|
|
| 5178 |
|
- |
let shape: Vec<(String, usize, Option<bool>)> = rows
|
|
5178 |
+ |
let shape: Vec<(String, u8, Option<bool>)> = rows
|
| 5179 |
5179 |
|
.iter()
|
| 5180 |
|
- |
.map(|row| (row.primary(), row.depth, row.open))
|
|
5180 |
+ |
.map(|row| (row.primary(), row.depth.level, row.open))
|
| 5181 |
5181 |
|
.collect();
|
| 5182 |
5182 |
|
assert_eq!(
|
| 5183 |
5183 |
|
shape,
|