Name the source a field consults as it is typed
N14 and N8 asked for the same thing from two directions: a field that
asks the server about its value while it is being written, one wanting
pending/ok/taken back and the other a list of suggestions. Naming the
two answers would have put two mechanisms in the vocabulary for one
idea. The member names the SOURCE instead -- a route and how long the
value must stand still -- and says nothing about what comes back, so a
verdict and a suggestion list are the same member with two routes
behind it. Where the answer lands is Action::replacing, which already
said that about every other action.
Each renderer answers it its own way. The webview emits the
`keyup changed delay:Nms` the four measured sites spell by hand. The
terminal gains Step::CallAfter, which is what its own comment said it
could not have: it debounced nothing because "nothing in the
description says a delay is allowed", and a number it picked would be
one the webview disagreed with. The clock stays with the host there,
same as the router does. egui holds the deadline in its View and asks
egui to wake up for it.
The accepted costs, so they are not re-argued: a field points at a
route for the first time in the vocabulary, and a host with nothing to
ask cannot honour one.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
21 files changed,
+435 insertions,
-81 deletions
| 3100 |
3100 |
|
|
| 3101 |
3101 |
|
[[package]]
|
| 3102 |
3102 |
|
name = "quasi"
|
| 3103 |
|
- |
version = "0.24.0"
|
|
3103 |
+ |
version = "0.25.0"
|
| 3104 |
3104 |
|
|
| 3105 |
3105 |
|
[[package]]
|
| 3106 |
3106 |
|
name = "quasi-axum"
|
| 3107 |
|
- |
version = "0.24.0"
|
|
3107 |
+ |
version = "0.25.0"
|
| 3108 |
3108 |
|
dependencies = [
|
| 3109 |
3109 |
|
"axum",
|
| 3110 |
3110 |
|
"http",
|
| 3118 |
3118 |
|
|
| 3119 |
3119 |
|
[[package]]
|
| 3120 |
3120 |
|
name = "quasi-basics"
|
| 3121 |
|
- |
version = "0.24.0"
|
|
3121 |
+ |
version = "0.25.0"
|
| 3122 |
3122 |
|
dependencies = [
|
| 3123 |
3123 |
|
"makeover-layout",
|
| 3124 |
3124 |
|
"quasi-http",
|
| 3128 |
3128 |
|
|
| 3129 |
3129 |
|
[[package]]
|
| 3130 |
3130 |
|
name = "quasi-bench"
|
| 3131 |
|
- |
version = "0.24.0"
|
|
3131 |
+ |
version = "0.25.0"
|
| 3132 |
3132 |
|
dependencies = [
|
| 3133 |
3133 |
|
"dhat",
|
| 3134 |
3134 |
|
"makeover",
|
| 3143 |
3143 |
|
|
| 3144 |
3144 |
|
[[package]]
|
| 3145 |
3145 |
|
name = "quasi-http"
|
| 3146 |
|
- |
version = "0.24.0"
|
|
3146 |
+ |
version = "0.25.0"
|
| 3147 |
3147 |
|
dependencies = [
|
| 3148 |
3148 |
|
"form_urlencoded",
|
| 3149 |
3149 |
|
"http",
|
| 3152 |
3152 |
|
|
| 3153 |
3153 |
|
[[package]]
|
| 3154 |
3154 |
|
name = "quasi-immediate"
|
| 3155 |
|
- |
version = "0.24.0"
|
|
3155 |
+ |
version = "0.25.0"
|
| 3156 |
3156 |
|
dependencies = [
|
| 3157 |
3157 |
|
"docengine",
|
| 3158 |
3158 |
|
"egui",
|
| 3162 |
3162 |
|
|
| 3163 |
3163 |
|
[[package]]
|
| 3164 |
3164 |
|
name = "quasi-router"
|
| 3165 |
|
- |
version = "0.24.0"
|
|
3165 |
+ |
version = "0.25.0"
|
| 3166 |
3166 |
|
dependencies = [
|
| 3167 |
3167 |
|
"makeover-layout",
|
| 3168 |
3168 |
|
]
|
| 3179 |
3179 |
|
|
| 3180 |
3180 |
|
[[package]]
|
| 3181 |
3181 |
|
name = "quasi-tauri"
|
| 3182 |
|
- |
version = "0.24.0"
|
|
3182 |
+ |
version = "0.25.0"
|
| 3183 |
3183 |
|
dependencies = [
|
| 3184 |
3184 |
|
"http",
|
| 3185 |
3185 |
|
"quasi-http",
|
| 3190 |
3190 |
|
|
| 3191 |
3191 |
|
[[package]]
|
| 3192 |
3192 |
|
name = "quasi-tui"
|
| 3193 |
|
- |
version = "0.24.0"
|
|
3193 |
+ |
version = "0.25.0"
|
| 3194 |
3194 |
|
dependencies = [
|
| 3195 |
3195 |
|
"docengine",
|
| 3196 |
3196 |
|
"makeover",
|
| 3202 |
3202 |
|
|
| 3203 |
3203 |
|
[[package]]
|
| 3204 |
3204 |
|
name = "quasi-webview"
|
| 3205 |
|
- |
version = "0.24.0"
|
|
3205 |
+ |
version = "0.25.0"
|
| 3206 |
3206 |
|
dependencies = [
|
| 3207 |
3207 |
|
"docengine",
|
| 3208 |
3208 |
|
"makeover-layout",
|
| 5632 |
5632 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 5633 |
5633 |
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
| 5634 |
5634 |
|
|
| 5635 |
|
- |
[[patch.unused]]
|
| 5636 |
|
- |
name = "synckit-client"
|
| 5637 |
|
- |
version = "0.8.0"
|
| 5638 |
|
- |
|
| 5639 |
|
- |
[[patch.unused]]
|
| 5640 |
|
- |
name = "synckit-config"
|
| 5641 |
|
- |
version = "0.2.0"
|
| 5642 |
|
- |
|
| 5643 |
|
- |
[[patch.unused]]
|
| 5644 |
|
- |
name = "quasi-type"
|
| 5645 |
|
- |
version = "0.1.0"
|
| 5646 |
|
- |
|
| 5647 |
5635 |
|
[[patch.unused]]
|
| 5648 |
5636 |
|
name = "kberg"
|
| 5649 |
5637 |
|
version = "0.1.0"
|
| 5659 |
5647 |
|
[[patch.unused]]
|
| 5660 |
5648 |
|
name = "tagtree"
|
| 5661 |
5649 |
|
version = "0.4.0"
|
|
5650 |
+ |
|
|
5651 |
+ |
[[patch.unused]]
|
|
5652 |
+ |
name = "synckit-client"
|
|
5653 |
+ |
version = "0.8.0"
|
|
5654 |
+ |
|
|
5655 |
+ |
[[patch.unused]]
|
|
5656 |
+ |
name = "synckit-config"
|
|
5657 |
+ |
version = "0.2.0"
|
|
5658 |
+ |
|
|
5659 |
+ |
[[patch.unused]]
|
|
5660 |
+ |
name = "quasi-type"
|
|
5661 |
+ |
version = "0.1.0"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-axum"
|
| 3 |
|
- |
version = "0.24.0"
|
|
3 |
+ |
version = "0.25.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 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.24.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.24.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.25.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.25.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.24.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.25.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 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-basics"
|
| 3 |
|
- |
version = "0.24.0"
|
|
3 |
+ |
version = "0.25.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 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.24.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.25.0" }
|
| 17 |
17 |
|
makeover-layout = "0.28.2"
|
| 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.24.0" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.24.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.25.0" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.25.0" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-bench"
|
| 3 |
|
- |
version = "0.24.0"
|
|
3 |
+ |
version = "0.25.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 |
22 |
|
count = ["dep:dhat"]
|
| 23 |
23 |
|
|
| 24 |
24 |
|
[dependencies]
|
| 25 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.24.0" }
|
| 26 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.24.0" }
|
| 27 |
|
- |
quasi-tui = { path = "../quasi-tui", version = "0.24.0" }
|
|
25 |
+ |
quasi-router = { path = "../quasi-router", version = "0.25.0" }
|
|
26 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.25.0" }
|
|
27 |
+ |
quasi-tui = { path = "../quasi-tui", version = "0.25.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.24.0" }
|
|
31 |
+ |
quasi-http = { path = "../quasi-http", version = "0.25.0" }
|
| 32 |
32 |
|
makeover-layout = "0.28.2"
|
| 33 |
33 |
|
makeover-tui = { version = "0.27.0", features = ["theme"] }
|
| 34 |
34 |
|
# Only to load a bundled theme file. `makeover_tui::Theme` is `#[non_exhaustive]`,
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.24.0"
|
|
3 |
+ |
version = "0.25.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 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.24.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.25.0" }
|
| 17 |
17 |
|
http = "1.3.1"
|
| 18 |
18 |
|
form_urlencoded = "1.2.2"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-immediate"
|
| 3 |
|
- |
version = "0.24.0"
|
|
3 |
+ |
version = "0.25.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 |
|
categories = ["gui"]
|
| 13 |
13 |
|
|
| 14 |
14 |
|
[dependencies]
|
| 15 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.24.0" }
|
|
15 |
+ |
quasi-router = { path = "../quasi-router", version = "0.25.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
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-router"
|
| 3 |
|
- |
version = "0.24.0"
|
|
3 |
+ |
version = "0.25.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
|