[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"]
emit = ["dep:serde", "dep:serde_json"]
test = ["emit", "dep:regex", "dep:roxmltree", "dep:rustc-hash", "dep:sha2"]
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