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