0.29.0: an upload, said through the router
Task f7261a5a's router half. Accepted is the owned mirror of
layout::Accepted, the same split Choice makes and for the same reason: a screen
is built by a handler and outlives the strings it was built from.
layout::Family is used directly rather than mirrored, because it borrows
nothing and a second spelling would only be a second place to add the fourth
family to.
Field::upload, Field::many and Field::accepts_media, and with_layout carries the
two new members across the seam. Nothing else was needed for the other two axes
of an upload: where the bytes go is Field::changes, which a field that writes on
its own already carries, and how far along it is is that action's Awaiting,
which has named an upload's file length since 0.29.1 of the description layer.
Takes makeover-layout 0.31, makeover-webview 0.51, makeover-tui 0.30 and
makeover-immediate 0.30.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
15 files changed,
+266 insertions,
-66 deletions
| 2605 |
2605 |
|
|
| 2606 |
2606 |
|
[[package]]
|
| 2607 |
2607 |
|
name = "makeover-immediate"
|
| 2608 |
|
- |
version = "0.29.1"
|
|
2608 |
+ |
version = "0.30.0"
|
| 2609 |
2609 |
|
dependencies = [
|
| 2610 |
2610 |
|
"egui",
|
| 2611 |
2611 |
|
"egui_extras",
|
| 2614 |
2614 |
|
|
| 2615 |
2615 |
|
[[package]]
|
| 2616 |
2616 |
|
name = "makeover-layout"
|
| 2617 |
|
- |
version = "0.30.0"
|
|
2617 |
+ |
version = "0.31.0"
|
| 2618 |
2618 |
|
|
| 2619 |
2619 |
|
[[package]]
|
| 2620 |
2620 |
|
name = "makeover-touch"
|
| 2621 |
|
- |
version = "0.21.0"
|
|
2621 |
+ |
version = "0.22.0"
|
| 2622 |
2622 |
|
dependencies = [
|
| 2623 |
2623 |
|
"makeover-geometry",
|
| 2624 |
2624 |
|
"makeover-layout",
|
| 2626 |
2626 |
|
|
| 2627 |
2627 |
|
[[package]]
|
| 2628 |
2628 |
|
name = "makeover-tui"
|
| 2629 |
|
- |
version = "0.29.1"
|
|
2629 |
+ |
version = "0.30.0"
|
| 2630 |
2630 |
|
dependencies = [
|
| 2631 |
2631 |
|
"makeover",
|
| 2632 |
2632 |
|
"makeover-layout",
|
| 2635 |
2635 |
|
|
| 2636 |
2636 |
|
[[package]]
|
| 2637 |
2637 |
|
name = "makeover-webview"
|
| 2638 |
|
- |
version = "0.50.0"
|
|
2638 |
+ |
version = "0.51.0"
|
| 2639 |
2639 |
|
dependencies = [
|
| 2640 |
2640 |
|
"makeover-geometry",
|
| 2641 |
2641 |
|
"makeover-layout",
|
| 3404 |
3404 |
|
|
| 3405 |
3405 |
|
[[package]]
|
| 3406 |
3406 |
|
name = "quasi"
|
| 3407 |
|
- |
version = "0.28.2"
|
|
3407 |
+ |
version = "0.29.0"
|
| 3408 |
3408 |
|
|
| 3409 |
3409 |
|
[[package]]
|
| 3410 |
3410 |
|
name = "quasi-axum"
|
| 3411 |
|
- |
version = "0.28.2"
|
|
3411 |
+ |
version = "0.29.0"
|
| 3412 |
3412 |
|
dependencies = [
|
| 3413 |
3413 |
|
"axum",
|
| 3414 |
3414 |
|
"http",
|
| 3422 |
3422 |
|
|
| 3423 |
3423 |
|
[[package]]
|
| 3424 |
3424 |
|
name = "quasi-basics"
|
| 3425 |
|
- |
version = "0.28.2"
|
|
3425 |
+ |
version = "0.29.0"
|
| 3426 |
3426 |
|
dependencies = [
|
| 3427 |
3427 |
|
"makeover-layout",
|
| 3428 |
3428 |
|
"quasi-http",
|
| 3432 |
3432 |
|
|
| 3433 |
3433 |
|
[[package]]
|
| 3434 |
3434 |
|
name = "quasi-bench"
|
| 3435 |
|
- |
version = "0.28.2"
|
|
3435 |
+ |
version = "0.29.0"
|
| 3436 |
3436 |
|
dependencies = [
|
| 3437 |
3437 |
|
"dhat",
|
| 3438 |
3438 |
|
"makeover",
|
| 3447 |
3447 |
|
|
| 3448 |
3448 |
|
[[package]]
|
| 3449 |
3449 |
|
name = "quasi-http"
|
| 3450 |
|
- |
version = "0.28.2"
|
|
3450 |
+ |
version = "0.29.0"
|
| 3451 |
3451 |
|
dependencies = [
|
| 3452 |
3452 |
|
"form_urlencoded",
|
| 3453 |
3453 |
|
"http",
|
| 3456 |
3456 |
|
|
| 3457 |
3457 |
|
[[package]]
|
| 3458 |
3458 |
|
name = "quasi-immediate"
|
| 3459 |
|
- |
version = "0.28.2"
|
|
3459 |
+ |
version = "0.29.0"
|
| 3460 |
3460 |
|
dependencies = [
|
| 3461 |
3461 |
|
"docengine",
|
| 3462 |
3462 |
|
"egui",
|
| 3466 |
3466 |
|
|
| 3467 |
3467 |
|
[[package]]
|
| 3468 |
3468 |
|
name = "quasi-notifs"
|
| 3469 |
|
- |
version = "0.28.2"
|
|
3469 |
+ |
version = "0.29.0"
|
| 3470 |
3470 |
|
dependencies = [
|
| 3471 |
3471 |
|
"quasi-router",
|
| 3472 |
3472 |
|
"synckit-config",
|
| 3474 |
3474 |
|
|
| 3475 |
3475 |
|
[[package]]
|
| 3476 |
3476 |
|
name = "quasi-router"
|
| 3477 |
|
- |
version = "0.28.2"
|
|
3477 |
+ |
version = "0.29.0"
|
| 3478 |
3478 |
|
dependencies = [
|
| 3479 |
3479 |
|
"makeover-layout",
|
| 3480 |
3480 |
|
]
|
| 3491 |
3491 |
|
|
| 3492 |
3492 |
|
[[package]]
|
| 3493 |
3493 |
|
name = "quasi-tauri"
|
| 3494 |
|
- |
version = "0.28.2"
|
|
3494 |
+ |
version = "0.29.0"
|
| 3495 |
3495 |
|
dependencies = [
|
| 3496 |
3496 |
|
"http",
|
| 3497 |
3497 |
|
"quasi-http",
|
| 3504 |
3504 |
|
|
| 3505 |
3505 |
|
[[package]]
|
| 3506 |
3506 |
|
name = "quasi-tui"
|
| 3507 |
|
- |
version = "0.28.2"
|
|
3507 |
+ |
version = "0.29.0"
|
| 3508 |
3508 |
|
dependencies = [
|
| 3509 |
3509 |
|
"docengine",
|
| 3510 |
3510 |
|
"makeover",
|
| 3516 |
3516 |
|
|
| 3517 |
3517 |
|
[[package]]
|
| 3518 |
3518 |
|
name = "quasi-webview"
|
| 3519 |
|
- |
version = "0.28.2"
|
|
3519 |
+ |
version = "0.29.0"
|
| 3520 |
3520 |
|
dependencies = [
|
| 3521 |
3521 |
|
"docengine",
|
| 3522 |
3522 |
|
"makeover-layout",
|
| 6187 |
6187 |
|
"winnow 1.0.4",
|
| 6188 |
6188 |
|
]
|
| 6189 |
6189 |
|
|
| 6190 |
|
- |
[[patch.unused]]
|
| 6191 |
|
- |
name = "synckit-client"
|
| 6192 |
|
- |
version = "0.8.0"
|
| 6193 |
|
- |
|
| 6194 |
6190 |
|
[[patch.unused]]
|
| 6195 |
6191 |
|
name = "quasi-type"
|
| 6196 |
6192 |
|
version = "0.1.0"
|
| 6197 |
6193 |
|
|
|
6194 |
+ |
[[patch.unused]]
|
|
6195 |
+ |
name = "makeover-build"
|
|
6196 |
+ |
version = "0.46.0"
|
|
6197 |
+ |
|
| 6198 |
6198 |
|
[[patch.unused]]
|
| 6199 |
6199 |
|
name = "kberg"
|
| 6200 |
6200 |
|
version = "0.1.0"
|
| 6212 |
6212 |
|
version = "0.4.0"
|
| 6213 |
6213 |
|
|
| 6214 |
6214 |
|
[[patch.unused]]
|
| 6215 |
|
- |
name = "makeover-build"
|
| 6216 |
|
- |
version = "0.45.0"
|
|
6215 |
+ |
name = "synckit-client"
|
|
6216 |
+ |
version = "0.8.0"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-axum"
|
| 3 |
|
- |
version = "0.28.2"
|
|
3 |
+ |
version = "0.29.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.28.2" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.28.2" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.29.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.29.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.28.2" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.29.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.28.2"
|
|
3 |
+ |
version = "0.29.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.28.2" }
|
| 17 |
|
- |
makeover-layout = "0.30.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.29.0" }
|
|
17 |
+ |
makeover-layout = "0.31.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.28.2" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.28.2" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.29.0" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.29.0" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-bench"
|
| 3 |
|
- |
version = "0.28.2"
|
|
3 |
+ |
version = "0.29.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.28.2" }
|
| 26 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.28.2" }
|
| 27 |
|
- |
quasi-tui = { path = "../quasi-tui", version = "0.28.2" }
|
|
25 |
+ |
quasi-router = { path = "../quasi-router", version = "0.29.0" }
|
|
26 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.29.0" }
|
|
27 |
+ |
quasi-tui = { path = "../quasi-tui", version = "0.29.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.28.2" }
|
| 32 |
|
- |
makeover-layout = "0.30.0"
|
| 33 |
|
- |
makeover-tui = { version = "0.29.0", features = ["theme"] }
|
|
31 |
+ |
quasi-http = { path = "../quasi-http", version = "0.29.0" }
|
|
32 |
+ |
makeover-layout = "0.31.0"
|
|
33 |
+ |
makeover-tui = { version = "0.30.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 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.28.2"
|
|
3 |
+ |
version = "0.29.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.28.2" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.29.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.28.2"
|
|
3 |
+ |
version = "0.29.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.28.2" }
|
|
15 |
+ |
quasi-router = { path = "../quasi-router", version = "0.29.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.29.0"
|
|
20 |
+ |
makeover-immediate = "0.30.0"
|
| 21 |
21 |
|
egui = { version = "0.35", default-features = false }
|
| 22 |
22 |
|
# Markdown to text for `Node::Rich`. The same crate the webview renderer takes,
|
| 23 |
23 |
|
# reading the same source: what differs is that it can emit markup and this
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-notifs"
|
| 3 |
|
- |
version = "0.28.2"
|
|
3 |
+ |
version = "0.29.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 |
24 |
|
describe = ["dep:quasi-router"]
|
| 25 |
25 |
|
|
| 26 |
26 |
|
[dependencies]
|
| 27 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.28.2", optional = true }
|
|
27 |
+ |
quasi-router = { path = "../quasi-router", version = "0.29.0", optional = true }
|
| 28 |
28 |
|
synckit-config = { git = "https://makenot.work/git/max/synckit.git", version = "0.2", optional = true }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-router"
|
| 3 |
|
- |
version = "0.28.2"
|
|
3 |
+ |
version = "0.29.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 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
makeover-layout = "0.30.0"
|
|
16 |
+ |
makeover-layout = "0.31.0"
|