e56148fa64
model::id adds slugify, which case folds, turns each run of spaces into one `_`, strips everything outside a-z, 0-9, `-` and `_`, then drops leading underscores. It also adds IdAllocator, which keeps one increment-only counter per document plus every id seen this session; claim admits hand-written ids verbatim. Full case folding comes from the unicase crate. Nothing calls it yet. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
30 lines
956 B
TOML
30 lines
956 B
TOML
[package]
|
|
name = "improvise-core"
|
|
version = "0.1.0-rc2"
|
|
edition = "2024"
|
|
description = "Pure-data model, views, and workbook for improvise"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/fiddlerwoaroof/improvise"
|
|
|
|
[dependencies]
|
|
improvise-formula = { path = "../improvise-formula" }
|
|
anyhow = "1"
|
|
indexmap = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
# SipHash-2-4 under a constant key: the record surrogate must not move
|
|
# between processes, which rules out anything built on `RandomState`
|
|
# (ADR 002). Already in the tree as a transitive dependency; no_std and
|
|
# wasm-clean.
|
|
siphasher = "1"
|
|
# Unicode full case folding for slugify (ADR 007 answer 26). no_std, no dependencies.
|
|
unicase = "2.9"
|
|
|
|
[features]
|
|
# Exposes the fold-evaluation counter to other crates' tests (improvise-0jw5).
|
|
# Off in every shipped build; enabled only by improvise-command's dev-dependency.
|
|
test-support = []
|
|
|
|
[dev-dependencies]
|
|
proptest = "1"
|
|
serde_json = "1"
|