[package]
name = "core-policy"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Pure RBAC/ABAC policy engine core (zero crypto/network dependencies)"
keywords = ["rbac", "abac", "authorization", "policy", "access-control"]
categories = ["authentication", "no-std::no-alloc"]
readme = "README.md"
documentation = "https://docs.rs/core-policy"

[dependencies]
# Serialization
serde = { workspace = true, features = ["derive"] }
toml = { workspace = true, default-features = false, features = ["parse", "display"], optional = true }

# Error handling
# thiserror = { workspace = true }

[lints]
workspace = true

[dev-dependencies]
# Testing
proptest = "1.0"
criterion = "0.5"
toml = { workspace = true, default-features = false, features = ["parse", "display"] }

[[bench]]
name = "policy_bench"
harness = false

[[bench]]
name = "path_bench"
harness = false

[features]
default = []
## Enables `Policy::from_toml()` / `Policy::to_toml()` convenience methods.
## Pulls in the `toml` crate which requires std. Without this feature,
## core-policy is genuinely #![no_std] and compiles for embedded targets.
toml = ["dep:toml"]
