| 1 |
[package] |
| 2 |
name = "quasi-immediate" |
| 3 |
version = "0.109.0" |
| 4 |
edition = "2024" |
| 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 |
license = "MIT" |
| 7 |
# Unpublished like every crate here: it takes `quasi-router`, which is |
| 8 |
# `publish = false` deliberately so the screen tree can churn. |
| 9 |
publish = false |
| 10 |
repository = "https://makenot.work/git/max/quasi" |
| 11 |
keywords = ["egui", "gui", "immediate-mode", "renderer"] |
| 12 |
categories = ["gui"] |
| 13 |
|
| 14 |
[dependencies] |
| 15 |
quasi-router = { path = "../quasi-router", version = "0.109" } |
| 16 |
# The node drawing, which is the makeover layer's and not this crate's. Every |
| 17 |
# widget here that is not a container comes from it: a screen walk that painted |
| 18 |
# its own meter would be the divergence the suite exists to end, one copy per |
| 19 |
# renderer instead of one copy per app. |
| 20 |
makeover-immediate = "0.46" |
| 21 |
# The one place a duration is named rather than numbered. `Intent::Dismiss` is |
| 22 |
# how long a transient notice lives, and `notice_lifetime` is the seam: the |
| 23 |
# description says a toast goes away on its own and declines to say when, so |
| 24 |
# the when is the renderer's and this is where the renderers keep it. One |
| 25 |
# number for all three rather than the same literal written three times. |
| 26 |
makeover-timing = "0.1.1" |
| 27 |
egui = { version = "0.35", default-features = false } |
| 28 |
# Markdown to text for `Node::Rich`. The same crate the webview renderer takes, |
| 29 |
# reading the same source: what differs is that it can emit markup and this |
| 30 |
# cannot, so this asks for the plain rendering. |
| 31 |
docengine = { git = "https://makenot.work/git/max/docengine.git", version = "0.7" } |
| 32 |
|
| 33 |
[dev-dependencies] |
| 34 |
# Fonts, for tests only. |
| 35 |
# |
| 36 |
# The dependency above keeps `default-features = false` on purpose: a consumer |
| 37 |
# supplies its own faces (audiofiles does), and the harness wanting one is no |
| 38 |
# reason to push the Ubuntu/Emoji set into every consumer's build. A |
| 39 |
# dev-dependency's features apply when this crate's own tests are built and |
| 40 |
# nowhere else, so this is the dev-only form the alternative (committing a test |
| 41 |
# face) would not be -- and the tree's rule is not to store what rebuilds. |
| 42 |
# |
| 43 |
# Without it every string measures zero points wide, so a `Response` covers no |
| 44 |
# pixel, is never hovered, and no injected click can reach it. That is why this |
| 45 |
# renderer could assert only that drawing fires nothing. |
| 46 |
egui = { version = "0.35", features = ["default_fonts"] } |
| 47 |
|
| 48 |
# The workspace tables, taken by name rather than restated. This crate had its |
| 49 |
# own `[lints.clippy]` carrying `pedantic` alone, and a member's table |
| 50 |
# *replaces* the workspace one rather than adding to it, so the house allow-list |
| 51 |
# did not reach here: this was the only crate in the workspace warning on the |
| 52 |
# numeric casts its siblings allow. Found 2026-08-30 by `View::show_by`, a |
| 53 |
# verbatim copy of quasi-tui's that warned only here. |
| 54 |
# |
| 55 |
# `unused` and `unreachable_pub` went with it, which is what puts this crate on |
| 56 |
# the same footing as the other eleven: none of them declare either, `unused` is |
| 57 |
# a rustc default, and turning `unreachable_pub` on tree-wide is its own pass -- |
| 58 |
# it has findings in `crates/quasi` that are not this change's business. |
| 59 |
[lints] |
| 60 |
workspace = true |
| 61 |
|