[package]
authors.workspace      = true
categories             = ["no-std"]
description            = "Standards of the Miden protocol"
edition.workspace      = true
homepage.workspace     = true
keywords               = ["kernel", "miden", "transaction"]
license.workspace      = true
name                   = "miden-standards"
readme                 = "README.md"
repository.workspace   = true
rust-version.workspace = true
version.workspace      = true

[lib]

[features]
default = ["std"]
std     = ["miden-assembly/std", "miden-core-lib/std", "miden-processor/std", "miden-protocol/std"]
testing = ["dep:rand", "miden-assembly/testing", "miden-protocol/testing"]

[dependencies]
# Miden dependencies
miden-processor = { workspace = true }
miden-protocol  = { workspace = true }

# External dependencies
rand      = { optional = true, workspace = true }
thiserror = { workspace = true }

[build-dependencies]
fs-err         = { version = "3" }
miden-assembly = { workspace = true }
miden-core     = { workspace = true }
miden-core-lib = { workspace = true }
miden-protocol = { workspace = true }
regex          = { version = "1.11" }
walkdir        = { version = "2.5" }

[dev-dependencies]
anyhow          = "1.0"
assert_matches  = { workspace = true }
miden-processor = { features = ["testing"], workspace = true }
miden-protocol  = { features = ["testing"], workspace = true }

# When building as a dev-dependency (e.g., `cargo test --workspace` or `cargo check --all-targets`),
# enable the `testing` feature. This is a workaround for Cargo's lack of test-specific features.
# See: https://github.com/rust-lang/cargo/issues/2911#issuecomment-1483256987
miden-standards = { features = ["testing"], path = "." }
