Skip to main content

max / quasi

0.71.0: a field can say what its answer costs Mirrors makeover-layout 0.36.0's `Field::note`: a third message channel between `hint` and `error`, overlapping neither. The value is acceptable and choosing it costs something worth saying -- audiofiles' export format is the case that asked, where picking WAV over Original re-encodes and drops the embedded BWF, iXML, loop points and cue markers. It carries its own `Tone` rather than being fixed at Warning, so the same slot says "recommended" and "this is what that implies". It does not make the field invalid. Precedence for a renderer with room for one line is makeover-layout's: error, then note, then hint. All three renderers borrow through `with_layout`, so none of them needed a change to draw it. Also takes makeover-layout 0.36.0, where `Tone::Neutral` answers `content` rather than `content-muted`.
Author: Max Johnson <me@maxj.phd> · 2026-08-27 23:28 UTC
Signed with PGP, not checked
Commit: a7acbd99e8074f93651d6990f598a888d14df44a
Parent: 0ec3b0b
13 files changed, +92 insertions, -74 deletions
M Cargo.lock +28 -34
@@ -2605,9 +2605,7 @@
2605 2605
2606 2606 [[package]]
2607 2607 name = "makeover-immediate"
2608 - version = "0.36.0"
2609 - source = "registry+https://github.com/rust-lang/crates.io-index"
2610 - checksum = "8747a39c2a5de617b357978354ffc0d850c1be7ac95098952b4c6850c2b0d51f"
2608 + version = "0.37.0"
2611 2609 dependencies = [
2612 2610 "egui",
2613 2611 "egui_extras",
@@ -2617,9 +2615,7 @@
2617 2615
2618 2616 [[package]]
2619 2617 name = "makeover-layout"
2620 - version = "0.35.0"
2621 - source = "registry+https://github.com/rust-lang/crates.io-index"
2622 - checksum = "774bfd81b003f0d0059ff50daa8e625e6969175bc0132ddf7c2108bba40c47d5"
2618 + version = "0.36.0"
2623 2619
2624 2620 [[package]]
2625 2621 name = "makeover-timing"
@@ -2632,9 +2628,7 @@
2632 2628
2633 2629 [[package]]
2634 2630 name = "makeover-touch"
2635 - version = "0.25.0"
2636 - source = "registry+https://github.com/rust-lang/crates.io-index"
2637 - checksum = "c479d37b37002c0f5d3bb8ec7ac1c99bf85eaa6ff2eae06590ab53182893114c"
2631 + version = "0.26.0"
2638 2632 dependencies = [
2639 2633 "makeover-geometry",
2640 2634 "makeover-layout",
@@ -2642,9 +2636,7 @@
2642 2636
2643 2637 [[package]]
2644 2638 name = "makeover-tui"
2645 - version = "0.35.0"
2646 - source = "registry+https://github.com/rust-lang/crates.io-index"
2647 - checksum = "5414d705d290c20740119b634d246ee88012860fcc8a2cf20c5db584a92a7932"
2639 + version = "0.36.0"
2648 2640 dependencies = [
2649 2641 "makeover",
2650 2642 "makeover-layout",
@@ -2654,9 +2646,7 @@
2654 2646
2655 2647 [[package]]
2656 2648 name = "makeover-webview"
2657 - version = "0.61.0"
2658 - source = "registry+https://github.com/rust-lang/crates.io-index"
2659 - checksum = "6399dc739e0d326e3577bc80643c1a9ab2afcc005ec240a7c9765e060f359f34"
2649 + version = "0.62.0"
2660 2650 dependencies = [
2661 2651 "makeover-geometry",
2662 2652 "makeover-layout",
@@ -3425,11 +3415,11 @@
3425 3415
3426 3416 [[package]]
3427 3417 name = "quasi"
3428 - version = "0.69.2"
3418 + version = "0.71.0"
3429 3419
3430 3420 [[package]]
3431 3421 name = "quasi-axum"
3432 - version = "0.69.2"
3422 + version = "0.71.0"
3433 3423 dependencies = [
3434 3424 "axum",
3435 3425 "http",
@@ -3443,7 +3433,7 @@
3443 3433
3444 3434 [[package]]
3445 3435 name = "quasi-basics"
3446 - version = "0.69.2"
3436 + version = "0.71.0"
3447 3437 dependencies = [
3448 3438 "makeover-layout",
3449 3439 "quasi-http",
@@ -3453,7 +3443,7 @@
3453 3443
3454 3444 [[package]]
3455 3445 name = "quasi-bench"
3456 - version = "0.69.2"
3446 + version = "0.71.0"
3457 3447 dependencies = [
3458 3448 "dhat",
3459 3449 "makeover",
@@ -3468,7 +3458,7 @@
3468 3458
3469 3459 [[package]]
3470 3460 name = "quasi-http"
3471 - version = "0.69.2"
3461 + version = "0.71.0"
3472 3462 dependencies = [
3473 3463 "form_urlencoded",
3474 3464 "http",
@@ -3477,7 +3467,7 @@
3477 3467
3478 3468 [[package]]
3479 3469 name = "quasi-immediate"
3480 - version = "0.69.2"
3470 + version = "0.71.0"
3481 3471 dependencies = [
3482 3472 "docengine",
3483 3473 "egui",
@@ -3488,7 +3478,7 @@
3488 3478
3489 3479 [[package]]
3490 3480 name = "quasi-notifs"
3491 - version = "0.69.2"
3481 + version = "0.71.0"
3492 3482 dependencies = [
3493 3483 "quasi-router",
3494 3484 "synckit-config",
@@ -3496,7 +3486,7 @@
3496 3486
3497 3487 [[package]]
3498 3488 name = "quasi-router"
3499 - version = "0.69.2"
3489 + version = "0.71.0"
3500 3490 dependencies = [
3501 3491 "makeover-layout",
3502 3492 ]
@@ -3513,7 +3503,7 @@
3513 3503
3514 3504 [[package]]
3515 3505 name = "quasi-tauri"
3516 - version = "0.69.2"
3506 + version = "0.71.0"
3517 3507 dependencies = [
3518 3508 "http",
3519 3509 "quasi-http",
@@ -3526,7 +3516,7 @@
3526 3516
3527 3517 [[package]]
3528 3518 name = "quasi-tui"
3529 - version = "0.69.2"
3519 + version = "0.71.0"
3530 3520 dependencies = [
3531 3521 "docengine",
3532 3522 "makeover",
@@ -3539,7 +3529,7 @@
3539 3529
3540 3530 [[package]]
3541 3531 name = "quasi-webview"
3542 - version = "0.69.2"
3532 + version = "0.71.0"
3543 3533 dependencies = [
3544 3534 "docengine",
3545 3535 "makeover-layout",
@@ -6211,14 +6201,6 @@
6211 6201 "winnow 1.0.4",
6212 6202 ]
6213 6203
6214 - [[patch.unused]]
6215 - name = "quasi-type"
6216 - version = "0.1.0"
6217 -
6218 - [[patch.unused]]
6219 - name = "synckit-client"
6220 - version = "0.9.1"
6221 -
6222 6204 [[patch.unused]]
6223 6205 name = "kberg"
6224 6206 version = "0.1.0"
@@ -6234,3 +6216,15 @@
6234 6216 [[patch.unused]]
6235 6217 name = "tagtree"
6236 6218 version = "0.4.1"
6219 +
6220 + [[patch.unused]]
6221 + name = "synckit-client"
6222 + version = "0.9.1"
6223 +
6224 + [[patch.unused]]
6225 + name = "quasi-type"
6226 + version = "0.1.0"
6227 +
6228 + [[patch.unused]]
6229 + name = "makeover-build"
6230 + version = "0.55.0"
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-axum"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 description = "The axum host adapter for quasi-router: an HTTP request in, a rendered description out"
5 5 edition.workspace = true
6 6 rust-version.workspace = true
@@ -13,14 +13,14 @@
13 13 workspace = true
14 14
15 15 [dependencies]
16 - quasi-router = { path = "../quasi-router", version = "0.70.0" }
17 - quasi-http = { path = "../quasi-http", version = "0.70.0" }
16 + quasi-router = { path = "../quasi-router", version = "0.71.0" }
17 + quasi-http = { path = "../quasi-http", version = "0.71.0" }
18 18 axum = "0.8.8"
19 19 http = "1.3.1"
20 20 tokio = { version = "1.50.0", features = ["rt"] }
21 21
22 22 [dev-dependencies]
23 - quasi-webview = { path = "../quasi-webview", version = "0.70.0" }
23 + quasi-webview = { path = "../quasi-webview", version = "0.71.0" }
24 24 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread"] }
25 25 tower = { version = "0.5.3", features = ["util"] }
26 26 http-body-util = "0.1.3"
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-basics"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 description = "The first-party widget set: named assemblies of primitives, shared across our apps"
5 5 edition.workspace = true
6 6 rust-version.workspace = true
@@ -13,12 +13,12 @@
13 13 workspace = true
14 14
15 15 [dependencies]
16 - quasi-router = { path = "../quasi-router", version = "0.70.0" }
17 - makeover-layout = "0.35.0"
16 + quasi-router = { path = "../quasi-router", version = "0.71.0" }
17 + makeover-layout = "0.36.0"
18 18
19 19 [dev-dependencies]
20 20 # A widget's guarantees are claims about what a renderer draws, so they are
21 21 # tested against a real one rather than by walking the tree the assembly just
22 22 # built. The webview is the renderer that recognises names today.
23 - quasi-webview = { path = "../quasi-webview", version = "0.70.0" }
24 - quasi-http = { path = "../quasi-http", version = "0.70.0" }
23 + quasi-webview = { path = "../quasi-webview", version = "0.71.0" }
24 + quasi-http = { path = "../quasi-http", version = "0.71.0" }
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-bench"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 description = "What a described screen costs to render, in time and in allocations"
5 5 edition.workspace = true
6 6 rust-version.workspace = true
@@ -22,15 +22,15 @@
22 22 count = ["dep:dhat"]
23 23
24 24 [dependencies]
25 - quasi-router = { path = "../quasi-router", version = "0.70.0" }
26 - quasi-webview = { path = "../quasi-webview", version = "0.70.0" }
27 - quasi-tui = { path = "../quasi-tui", version = "0.70.0" }
25 + quasi-router = { path = "../quasi-router", version = "0.71.0" }
26 + quasi-webview = { path = "../quasi-webview", version = "0.71.0" }
27 + quasi-tui = { path = "../quasi-tui", version = "0.71.0" }
28 28 # `Serves` is the trait carrying `screen` and `fragment`, which is what the
29 29 # webview is measured through. Taken directly rather than through quasi-webview
30 30 # because a bench calling a trait method should name the trait it calls.
31 - quasi-http = { path = "../quasi-http", version = "0.70.0" }
32 - makeover-layout = "0.35.0"
33 - makeover-tui = { version = "0.35.0", features = ["theme"] }
31 + quasi-http = { path = "../quasi-http", version = "0.71.0" }
32 + makeover-layout = "0.36.0"
33 + makeover-tui = { version = "0.36.0", features = ["theme"] }
34 34 # Only to load a bundled theme file. `makeover_tui::Theme` is `#[non_exhaustive]`,
35 35 # so `Theme::from_theme` is the one way to get one, the same reason quasi-tui's
36 36 # tests take this.
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-http"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 description = "The http-shaped seam quasi's webview host adapters share: decoding in, a rendered description out"
5 5 edition.workspace = true
6 6 rust-version.workspace = true
@@ -13,6 +13,6 @@
13 13 workspace = true
14 14
15 15 [dependencies]
16 - quasi-router = { path = "../quasi-router", version = "0.70.0" }
16 + quasi-router = { path = "../quasi-router", version = "0.71.0" }
17 17 http = "1.3.1"
18 18 form_urlencoded = "1.2.2"
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-immediate"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 edition = "2024"
5 5 description = "The immediate-mode renderer for quasi-router: a described screen in, an egui frame out. Immediate mode is the constraint that matters, not the library."
6 6 license = "MIT"
@@ -12,12 +12,12 @@
12 12 categories = ["gui"]
13 13
14 14 [dependencies]
15 - quasi-router = { path = "../quasi-router", version = "0.70.0" }
15 + quasi-router = { path = "../quasi-router", version = "0.71.0" }
16 16 # The node drawing, which is the makeover layer's and not this crate's. Every
17 17 # widget here that is not a container comes from it: a screen walk that painted
18 18 # its own meter would be the divergence the suite exists to end, one copy per
19 19 # renderer instead of one copy per app.
20 - makeover-immediate = "0.36.0"
20 + makeover-immediate = "0.37.0"
21 21 # The one place a duration is named rather than numbered. `Intent::Dismiss` is
22 22 # how long a transient notice lives, and `notice_lifetime` is the seam: the
23 23 # description says a toast goes away on its own and declines to say when, so
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-notifs"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 description = "Declared notification kinds and the registry that holds them: what a notification says and what it is for, apart from how it reaches a person"
5 5 edition.workspace = true
6 6 rust-version.workspace = true
@@ -24,5 +24,5 @@
24 24 describe = ["dep:quasi-router"]
25 25
26 26 [dependencies]
27 - quasi-router = { path = "../quasi-router", version = "0.70.0", optional = true }
27 + quasi-router = { path = "../quasi-router", version = "0.71.0", optional = true }
28 28 synckit-config = { git = "https://makenot.work/git/max/synckit.git", version = "0.2", optional = true }
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "quasi-router"
3 - version = "0.70.0"
3 + version = "0.71.0"
4 4 description = "Host-agnostic router: a request in, a renderer-agnostic description out"
5 5 edition.workspace = true
6 6 rust-version.workspace = true
@@ -13,4 +13,4 @@
13 13 workspace = true
14 14
15 15 [dependencies]
16 - makeover-layout = "0.35.0"
16 + makeover-layout = "0.36.0"