snappea 0.1.0

The P modeling language in Rust: emit events from your application and check them against P specs in tests, plus the `snappea` checker
Documentation
[package]
name = "snappea"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "The P modeling language in Rust: emit events from your application and check them against P specs in tests, plus the `snappea` checker"
documentation = "https://docs.rs/snappea"
readme = "README.md"
keywords = ["p-language", "model-checking", "formal-methods", "testing", "specification"]
categories = ["development-tools::testing", "command-line-utilities"]
include = ["Cargo.toml", "README.md", "LICENSE-MIT", "LICENSE-APACHE", "src/**/*.rs", "src/**/README.md"]

[lib]
name = "snappea"

[features]
default = ["cli", "test"]
# `snappea::emit`: emit application events (tests, SNAPPEA_EVENTS_DIR, production logs). No
# checker; depends only on serde and serde_json. Production code uses only this.
emit = ["dep:serde", "dep:serde_json"]
# `snappea::test`: check recorded events against P specs, in process. Also enables the
# library (`snappea::syntax`, `snappea::sema`, `snappea::checker`, `snappea::project`, `snappea::driver`).
test = ["emit", "dep:regex", "dep:roxmltree", "dep:rustc-hash", "dep:sha2"]
# The `snappea` and `snappea-compat` binaries, and the library they run on.
cli = ["dep:roxmltree", "dep:rustc-hash", "dep:serde_json", "dep:sha2"]

[[bin]]
name = "snappea"
path = "src/bin/snappea.rs"
required-features = ["cli"]

[[bin]]
name = "snappea-compat"
path = "src/bin/snappea-compat.rs"
required-features = ["cli"]

[dependencies]
regex = { version = "1", default-features = false, features = ["std", "unicode"], optional = true }
roxmltree = { workspace = true, optional = true }
rustc-hash = { workspace = true, optional = true }
serde = { version = "1", optional = true }
serde_json = { workspace = true, optional = true }
sha2 = { version = "0.10", optional = true }

[dev-dependencies]
serde = { workspace = true }

[package.metadata.docs.rs]
all-features = true