Give Field's last five members builders, 0.101.1
`placeholder`, `max_length`, `min`, `max` and `extended` were public fields
with no builder method, so the only way to set one was to assign it. That is
`Cells::current`'s defect on the vocabulary's largest struct, and the measured
cost is 66 sites across the three shape trees breaking out of a builder chain
to write one of them, 54 of those for `placeholder` alone.
It also made those five unsayable in a declared description. The form resolves
an attribute to a builder method's name, so a member with no builder cannot be
reached at all -- probes against goingson's events.rs, settings/email.rs and
tasks.rs and audiofiles' classifier.rs each failed on it independently.
`within(min, max)` sets the pair, on `Cells::ticking`'s grounds: a bound only
means anything against the other one, and `Field::range` already takes both
together for that reason. `at_least` and `at_most` set one end, because an open
end is a real answer rather than a missing one, which `Field::interval`'s own
doc argues. `extended()` takes no argument, matching the form's presence-flag
rule.
Additive, so a patch: every consumer requirement of "0.101" still resolves.
191 lib tests green.
13 files changed,
+179 insertions,
-46 deletions
| 3476 |
3476 |
|
|
| 3477 |
3477 |
|
[[package]]
|
| 3478 |
3478 |
|
name = "quasi"
|
| 3479 |
|
- |
version = "0.101.0"
|
|
3479 |
+ |
version = "0.101.1"
|
| 3480 |
3480 |
|
|
| 3481 |
3481 |
|
[[package]]
|
| 3482 |
3482 |
|
name = "quasi-axum"
|
| 3483 |
|
- |
version = "0.101.0"
|
|
3483 |
+ |
version = "0.101.1"
|
| 3484 |
3484 |
|
dependencies = [
|
| 3485 |
3485 |
|
"axum",
|
| 3486 |
3486 |
|
"http",
|
| 3494 |
3494 |
|
|
| 3495 |
3495 |
|
[[package]]
|
| 3496 |
3496 |
|
name = "quasi-basics"
|
| 3497 |
|
- |
version = "0.101.0"
|
|
3497 |
+ |
version = "0.101.1"
|
| 3498 |
3498 |
|
dependencies = [
|
| 3499 |
3499 |
|
"makeover-layout",
|
| 3500 |
3500 |
|
"quasi-http",
|
| 3504 |
3504 |
|
|
| 3505 |
3505 |
|
[[package]]
|
| 3506 |
3506 |
|
name = "quasi-bench"
|
| 3507 |
|
- |
version = "0.101.0"
|
|
3507 |
+ |
version = "0.101.1"
|
| 3508 |
3508 |
|
dependencies = [
|
| 3509 |
3509 |
|
"askama",
|
| 3510 |
3510 |
|
"dhat",
|
| 3524 |
3524 |
|
|
| 3525 |
3525 |
|
[[package]]
|
| 3526 |
3526 |
|
name = "quasi-http"
|
| 3527 |
|
- |
version = "0.101.0"
|
|
3527 |
+ |
version = "0.101.1"
|
| 3528 |
3528 |
|
dependencies = [
|
| 3529 |
3529 |
|
"form_urlencoded",
|
| 3530 |
3530 |
|
"http",
|
| 3533 |
3533 |
|
|
| 3534 |
3534 |
|
[[package]]
|
| 3535 |
3535 |
|
name = "quasi-immediate"
|
| 3536 |
|
- |
version = "0.101.0"
|
|
3536 |
+ |
version = "0.101.1"
|
| 3537 |
3537 |
|
dependencies = [
|
| 3538 |
3538 |
|
"docengine",
|
| 3539 |
3539 |
|
"egui",
|
| 3544 |
3544 |
|
|
| 3545 |
3545 |
|
[[package]]
|
| 3546 |
3546 |
|
name = "quasi-notifs"
|
| 3547 |
|
- |
version = "0.101.0"
|
|
3547 |
+ |
version = "0.101.1"
|
| 3548 |
3548 |
|
dependencies = [
|
| 3549 |
3549 |
|
"quasi-router",
|
| 3550 |
3550 |
|
"synckit-config",
|
| 3554 |
3554 |
|
|
| 3555 |
3555 |
|
[[package]]
|
| 3556 |
3556 |
|
name = "quasi-router"
|
| 3557 |
|
- |
version = "0.101.0"
|
|
3557 |
+ |
version = "0.101.1"
|
| 3558 |
3558 |
|
dependencies = [
|
| 3559 |
3559 |
|
"makeover-layout",
|
| 3560 |
3560 |
|
]
|
| 3571 |
3571 |
|
|
| 3572 |
3572 |
|
[[package]]
|
| 3573 |
3573 |
|
name = "quasi-tauri"
|
| 3574 |
|
- |
version = "0.101.0"
|
|
3574 |
+ |
version = "0.101.1"
|
| 3575 |
3575 |
|
dependencies = [
|
| 3576 |
3576 |
|
"http",
|
| 3577 |
3577 |
|
"quasi-http",
|
| 3582 |
3582 |
|
|
| 3583 |
3583 |
|
[[package]]
|
| 3584 |
3584 |
|
name = "quasi-tui"
|
| 3585 |
|
- |
version = "0.101.0"
|
|
3585 |
+ |
version = "0.101.1"
|
| 3586 |
3586 |
|
dependencies = [
|
| 3587 |
3587 |
|
"docengine",
|
| 3588 |
3588 |
|
"makeover",
|
| 3595 |
3595 |
|
|
| 3596 |
3596 |
|
[[package]]
|
| 3597 |
3597 |
|
name = "quasi-webview"
|
| 3598 |
|
- |
version = "0.101.0"
|
|
3598 |
+ |
version = "0.101.1"
|
| 3599 |
3599 |
|
dependencies = [
|
| 3600 |
3600 |
|
"docengine",
|
| 3601 |
3601 |
|
"makeover-layout",
|
| 6286 |
6286 |
|
name = "tagtree"
|
| 6287 |
6287 |
|
version = "0.4.1"
|
| 6288 |
6288 |
|
|
| 6289 |
|
- |
[[patch.unused]]
|
| 6290 |
|
- |
name = "quasi-type"
|
| 6291 |
|
- |
version = "0.1.3"
|
| 6292 |
|
- |
|
| 6293 |
6289 |
|
[[patch.unused]]
|
| 6294 |
6290 |
|
name = "synckit-client"
|
| 6295 |
6291 |
|
version = "0.10.0"
|
|
6292 |
+ |
|
|
6293 |
+ |
[[patch.unused]]
|
|
6294 |
+ |
name = "quasi-type"
|
|
6295 |
+ |
version = "0.1.3"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-axum"
|
| 3 |
|
- |
version = "0.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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.101.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.101.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.101.1" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.101.1" }
|
| 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.101.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.101.1" }
|
| 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.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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.101.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.101.1" }
|
| 17 |
17 |
|
makeover-layout = "0.44"
|
| 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.101.0" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.101.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.101.1" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.101.1" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-bench"
|
| 3 |
|
- |
version = "0.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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
|
| 26 |
26 |
|
askama = ["dep:askama"]
|
| 27 |
27 |
|
|
| 28 |
28 |
|
[dependencies]
|
| 29 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.101.0" }
|
| 30 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.101.0" }
|
| 31 |
|
- |
quasi-tui = { path = "../quasi-tui", version = "0.101.0" }
|
| 32 |
|
- |
quasi-immediate = { path = "../quasi-immediate", version = "0.101.0" }
|
|
29 |
+ |
quasi-router = { path = "../quasi-router", version = "0.101.1" }
|
|
30 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.101.1" }
|
|
31 |
+ |
quasi-tui = { path = "../quasi-tui", version = "0.101.1" }
|
|
32 |
+ |
quasi-immediate = { path = "../quasi-immediate", version = "0.101.1" }
|
| 33 |
33 |
|
# `Serves` is the trait carrying `screen` and `fragment`, which is what the
|
| 34 |
34 |
|
# webview is measured through. Taken directly rather than through quasi-webview
|
| 35 |
35 |
|
# because a bench calling a trait method should name the trait it calls.
|
| 36 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.101.0" }
|
|
36 |
+ |
quasi-http = { path = "../quasi-http", version = "0.101.1" }
|
| 37 |
37 |
|
makeover-layout = "0.44"
|
| 38 |
38 |
|
# The renderer's own escaper, so the staged path fills a hole exactly the way
|
| 39 |
39 |
|
# `Node::Text` does and the guarantee is not quietly reimplemented.
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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.101.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.101.1" }
|
| 17 |
17 |
|
http = "1.3.1"
|
| 18 |
18 |
|
form_urlencoded = "1.2.2"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-immediate"
|
| 3 |
|
- |
version = "0.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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.101.0" }
|
|
15 |
+ |
quasi-router = { path = "../quasi-router", version = "0.101.1" }
|
| 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-notifs"
|
| 3 |
|
- |
version = "0.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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
|
| 28 |
28 |
|
tauri = ["dep:tauri", "dep:tauri-plugin-notification"]
|
| 29 |
29 |
|
|
| 30 |
30 |
|
[dependencies]
|
| 31 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.101.0", optional = true }
|
|
31 |
+ |
quasi-router = { path = "../quasi-router", version = "0.101.1", optional = true }
|
| 32 |
32 |
|
synckit-config = { git = "https://makenot.work/git/max/synckit.git", version = "0.2", optional = true }
|
| 33 |
33 |
|
tauri-plugin-notification = { version = "2.3.3", optional = true }
|
| 34 |
34 |
|
# Default features off, for `quasi-tauri`'s reason: this takes an `AppHandle`
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-router"
|
| 3 |
|
- |
version = "0.101.0"
|
|
3 |
+ |
version = "0.101.1"
|
| 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
|