0.15.0: a set that arrived in parts says where the reader is
Rest was a count and one address. It is a layout::Paging and up to two
now, which is the same Window a carousel instantiates: a frame is a window
of one over children that are present, a page is a window over rows that
were never fetched, and presence shows up as whether there are addresses
rather than as a second copy of the arithmetic.
What this buys is that the description can say where the reader is at all.
Position never reached it before, so a renderer could not print 'Page 3'
even though that half is always knowable, and every screen kept it in app
state instead. goingson's mail list ships prev/next and numbered pages and
described itself as load-more.
Each renderer draws one control for both jobs, and draws a direction it
was given no address for as disabled rather than absent, so the pager
keeps its width on the first page and the last.
Slot::current delegates its clamp to Window for the same reason.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
19 files changed,
+352 insertions,
-125 deletions
| 2359 |
2359 |
|
|
| 2360 |
2360 |
|
[[package]]
|
| 2361 |
2361 |
|
name = "makeover-layout"
|
| 2362 |
|
- |
version = "0.27.0"
|
| 2363 |
|
- |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2364 |
|
- |
checksum = "70c07e8b5020bf12ced1aea9313ebf0d4ca764ce2de6ef0d95eddc7d34bd939a"
|
|
2362 |
+ |
version = "0.27.3"
|
| 2365 |
2363 |
|
|
| 2366 |
2364 |
|
[[package]]
|
| 2367 |
2365 |
|
name = "makeover-touch"
|
| 3092 |
3090 |
|
|
| 3093 |
3091 |
|
[[package]]
|
| 3094 |
3092 |
|
name = "quasi"
|
| 3095 |
|
- |
version = "0.14.0"
|
|
3093 |
+ |
version = "0.15.0"
|
| 3096 |
3094 |
|
|
| 3097 |
3095 |
|
[[package]]
|
| 3098 |
3096 |
|
name = "quasi-axum"
|
| 3099 |
|
- |
version = "0.14.0"
|
|
3097 |
+ |
version = "0.15.0"
|
| 3100 |
3098 |
|
dependencies = [
|
| 3101 |
3099 |
|
"axum",
|
| 3102 |
3100 |
|
"http",
|
| 3110 |
3108 |
|
|
| 3111 |
3109 |
|
[[package]]
|
| 3112 |
3110 |
|
name = "quasi-basics"
|
| 3113 |
|
- |
version = "0.14.0"
|
|
3111 |
+ |
version = "0.15.0"
|
| 3114 |
3112 |
|
dependencies = [
|
| 3115 |
3113 |
|
"makeover-layout",
|
| 3116 |
3114 |
|
"quasi-http",
|
| 3120 |
3118 |
|
|
| 3121 |
3119 |
|
[[package]]
|
| 3122 |
3120 |
|
name = "quasi-bench"
|
| 3123 |
|
- |
version = "0.14.0"
|
|
3121 |
+ |
version = "0.15.0"
|
| 3124 |
3122 |
|
dependencies = [
|
| 3125 |
3123 |
|
"dhat",
|
| 3126 |
3124 |
|
"makeover",
|
| 3135 |
3133 |
|
|
| 3136 |
3134 |
|
[[package]]
|
| 3137 |
3135 |
|
name = "quasi-http"
|
| 3138 |
|
- |
version = "0.14.0"
|
|
3136 |
+ |
version = "0.15.0"
|
| 3139 |
3137 |
|
dependencies = [
|
| 3140 |
3138 |
|
"form_urlencoded",
|
| 3141 |
3139 |
|
"http",
|
| 3144 |
3142 |
|
|
| 3145 |
3143 |
|
[[package]]
|
| 3146 |
3144 |
|
name = "quasi-immediate"
|
| 3147 |
|
- |
version = "0.14.0"
|
|
3145 |
+ |
version = "0.15.0"
|
| 3148 |
3146 |
|
dependencies = [
|
| 3149 |
3147 |
|
"docengine",
|
| 3150 |
3148 |
|
"egui",
|
| 3154 |
3152 |
|
|
| 3155 |
3153 |
|
[[package]]
|
| 3156 |
3154 |
|
name = "quasi-router"
|
| 3157 |
|
- |
version = "0.14.0"
|
|
3155 |
+ |
version = "0.15.0"
|
| 3158 |
3156 |
|
dependencies = [
|
| 3159 |
3157 |
|
"makeover-layout",
|
| 3160 |
3158 |
|
]
|
| 3171 |
3169 |
|
|
| 3172 |
3170 |
|
[[package]]
|
| 3173 |
3171 |
|
name = "quasi-tauri"
|
| 3174 |
|
- |
version = "0.14.0"
|
|
3172 |
+ |
version = "0.15.0"
|
| 3175 |
3173 |
|
dependencies = [
|
| 3176 |
3174 |
|
"http",
|
| 3177 |
3175 |
|
"quasi-http",
|
| 3182 |
3180 |
|
|
| 3183 |
3181 |
|
[[package]]
|
| 3184 |
3182 |
|
name = "quasi-tui"
|
| 3185 |
|
- |
version = "0.14.0"
|
|
3183 |
+ |
version = "0.15.0"
|
| 3186 |
3184 |
|
dependencies = [
|
| 3187 |
3185 |
|
"docengine",
|
| 3188 |
3186 |
|
"makeover",
|
| 3194 |
3192 |
|
|
| 3195 |
3193 |
|
[[package]]
|
| 3196 |
3194 |
|
name = "quasi-webview"
|
| 3197 |
|
- |
version = "0.14.0"
|
|
3195 |
+ |
version = "0.15.0"
|
| 3198 |
3196 |
|
dependencies = [
|
| 3199 |
3197 |
|
"docengine",
|
| 3200 |
3198 |
|
"makeover-layout",
|
| 5624 |
5622 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 5625 |
5623 |
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
| 5626 |
5624 |
|
|
|
5625 |
+ |
[[patch.unused]]
|
|
5626 |
+ |
name = "synckit-client"
|
|
5627 |
+ |
version = "0.8.0"
|
|
5628 |
+ |
|
|
5629 |
+ |
[[patch.unused]]
|
|
5630 |
+ |
name = "synckit-config"
|
|
5631 |
+ |
version = "0.2.0"
|
|
5632 |
+ |
|
| 5627 |
5633 |
|
[[patch.unused]]
|
| 5628 |
5634 |
|
name = "kberg"
|
| 5629 |
5635 |
|
version = "0.1.0"
|
| 5639 |
5645 |
|
[[patch.unused]]
|
| 5640 |
5646 |
|
name = "tagtree"
|
| 5641 |
5647 |
|
version = "0.4.0"
|
| 5642 |
|
- |
|
| 5643 |
|
- |
[[patch.unused]]
|
| 5644 |
|
- |
name = "synckit-client"
|
| 5645 |
|
- |
version = "0.8.0"
|
| 5646 |
|
- |
|
| 5647 |
|
- |
[[patch.unused]]
|
| 5648 |
|
- |
name = "synckit-config"
|
| 5649 |
|
- |
version = "0.2.0"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-axum"
|
| 3 |
|
- |
version = "0.14.0"
|
|
3 |
+ |
version = "0.15.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.14.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.14.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.15.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.15.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.14.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.15.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.14.0"
|
|
3 |
+ |
version = "0.15.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.14.0" }
|
| 17 |
|
- |
makeover-layout = "0.27.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.15.0" }
|
|
17 |
+ |
makeover-layout = "0.27.3"
|
| 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.14.0" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.14.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.15.0" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.15.0" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-bench"
|
| 3 |
|
- |
version = "0.14.0"
|
|
3 |
+ |
version = "0.15.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.14.0" }
|
| 26 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.14.0" }
|
| 27 |
|
- |
quasi-tui = { path = "../quasi-tui", version = "0.14.0" }
|
|
25 |
+ |
quasi-router = { path = "../quasi-router", version = "0.15.0" }
|
|
26 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.15.0" }
|
|
27 |
+ |
quasi-tui = { path = "../quasi-tui", version = "0.15.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.14.0" }
|
| 32 |
|
- |
makeover-layout = "0.27.0"
|
|
31 |
+ |
quasi-http = { path = "../quasi-http", version = "0.15.0" }
|
|
32 |
+ |
makeover-layout = "0.27.3"
|
| 33 |
33 |
|
makeover-tui = { version = "0.25.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
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.14.0"
|
|
3 |
+ |
version = "0.15.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.14.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.15.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.14.0"
|
|
3 |
+ |
version = "0.15.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.14.0" }
|
|
15 |
+ |
quasi-router = { path = "../quasi-router", version = "0.15.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.14.0"
|
|
3 |
+ |
version = "0.15.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.27.0"
|
|
16 |
+ |
makeover-layout = "0.27.3"
|