Gunnar

nordisk/edda

crates/nornir-appshell/Cargo.toml

[package]
name = "nornir-appshell"
version = "0.1.3"
edition = "2021"
# The two PURE shared app-shell MODELS (Identity + ToolMenu) that every suite app's
# About + Tools menu used to hand-roll. serde-only, egui-FREE — a CLI app
# (`modgunn about`) and a GUI app (korp/holger About window) both consume it.
# PUBLISHED: the shared facett-about widget consumes `Identity` from crates.io, so
# this leaf must be on crates.io — the release cascade publishes it ahead of its
# consumers (deps-first).
publish = true
description = "The ONE shared, egui-FREE app-shell MODELS for the nordisk constellation's JetBrains-style common shell — the `Identity` card (name/display_name/version/tagline/subtitle/logo/repository/links/framework/engines + a `state_json` oracle every About surface asserts) and the generic `ToolMenu`/`ToolEntry` (title/hover/effect_key/view_target/needs_container + a `state_json` oracle). REUSE (LAW #5): korp, holger and modgunn each rolled their own About const-blob/struct and korp↔modgunn twinned the Tools-menu shell — this leaf owns the pure models so a GUI About widget (facett-about) and a CLI `about` both feed ONE shape; each app KEEPS its domain (its `ToolEffect` enum, container/demo specs, the egui render). serde + serde_json only, ZERO other runtime deps."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["about", "identity", "toolmenu", "appshell", "model"]
categories = ["development-tools", "gui"]
exclude = ["/.nornir/"]

[features]
default = []
# `testmatrix` — emit each model surface's health (Identity `state_json` carries
# name+version+framework+logo, the serde round-trip, the ToolMenu entry/last-pick
# oracle) into the nornir test-matrix via `functional_status`. OFF BY DEFAULT: a
# compiled-out no-op with no nornir dep, so a lean/library build carries neither the
# emitter nor testmatrix.
testmatrix = ["dep:nornir-testmatrix", "nornir-testmatrix/testmatrix"]

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Introspection-marker emitter — only compiled with `testmatrix`. Path+version
# (like the other edda leaves) so the workspace resolves the local sibling. Absent
# from a default (release) build.
nornir-testmatrix = { version = "0.2.7", path = "../nornir-testmatrix", default-features = false, optional = true }