| 1 |
[package] |
| 2 |
name = "quasi-bench" |
| 3 |
version = "0.109.0" |
| 4 |
description = "What a described screen costs to render, in time and in allocations" |
| 5 |
edition.workspace = true |
| 6 |
rust-version.workspace = true |
| 7 |
authors.workspace = true |
| 8 |
repository.workspace = true |
| 9 |
license.workspace = true |
| 10 |
publish = false |
| 11 |
|
| 12 |
[lints] |
| 13 |
workspace = true |
| 14 |
|
| 15 |
[features] |
| 16 |
# Allocation counting, off by default and never on in a timing run. |
| 17 |
# |
| 18 |
# A counting allocator is real instrumentation, and a timing number measured |
| 19 |
# through it is a number about the instrumentation. So the two measurements are |
| 20 |
# two builds: `cargo run --release -p quasi-bench` times, and |
| 21 |
# `cargo run --release -p quasi-bench --features count` counts. |
| 22 |
count = ["dep:dhat"] |
| 23 |
# The generated template, compiled. Off by default so the ordinary bench does |
| 24 |
# not carry a templating engine; on, it adds the third column that says whether |
| 25 |
# a staged description reaches a compiled template. |
| 26 |
askama = ["dep:askama"] |
| 27 |
|
| 28 |
[dependencies] |
| 29 |
quasi-router = { path = "../quasi-router", version = "0.109" } |
| 30 |
quasi-webview = { path = "../quasi-webview", version = "0.109" } |
| 31 |
quasi-tui = { path = "../quasi-tui", version = "0.109" } |
| 32 |
quasi-immediate = { path = "../quasi-immediate", version = "0.109" } |
| 33 |
# `Serves` is the trait carrying `screen` and `fragment`, which is what the |
| 34 |
# webview is measured through. Taken directly rather than through quasi-webview |
| 35 |
# because a bench calling a trait method should name the trait it calls. |
| 36 |
quasi-http = { path = "../quasi-http", version = "0.109" } |
| 37 |
# The macro under measurement. The bench holds the declared copy of the same |
| 38 |
# screen `staging.rs` writes by hand, so the staged column measures what the |
| 39 |
# server actually serves rather than a shape written for a benchmark. |
| 40 |
quasi-declare = { path = "../quasi-declare", version = "0.1" } |
| 41 |
makeover-layout = "0.44" |
| 42 |
# The renderer's own escaper, so the staged path fills a hole exactly the way |
| 43 |
# `Node::Text` does and the guarantee is not quietly reimplemented. |
| 44 |
makeover-webview = "0.76" |
| 45 |
makeover-tui = { version = "0.44", features = ["theme"] } |
| 46 |
# Only to load a bundled theme file. `makeover_tui::Theme` is `#[non_exhaustive]`, |
| 47 |
# so `Theme::from_theme` is the one way to get one, the same reason quasi-tui's |
| 48 |
# tests take this. |
| 49 |
makeover = "3.1" |
| 50 |
ratatui = { version = "0.30", default-features = false } |
| 51 |
# The immediate renderer's frame, and its palette type. `default_fonts` is not |
| 52 |
# optional here: a `Context` with no font builds no galley, so a frame drawn |
| 53 |
# without them measures layout over nothing. |
| 54 |
egui = { version = "0.35", features = ["default_fonts"] } |
| 55 |
makeover-immediate = "0.46" |
| 56 |
# Allocation counting, and only that. Optional and off by default. It is here |
| 57 |
# rather than a hand-written `GlobalAlloc` because the workspace forbids |
| 58 |
# `unsafe_code` and `forbid` cannot be overridden per crate; see |
| 59 |
# `src/counting.rs`. |
| 60 |
dhat = { version = "0.3", optional = true } |
| 61 |
# Compiles `templates/contacts.html`, which is emitted from the description by |
| 62 |
# `QUASI_EMIT_TEMPLATE=... cargo run -p quasi-bench` and never hand-edited. |
| 63 |
askama = { version = "0.14", optional = true } |
| 64 |
|