[package]
name = "blueprint-macros"
version = "0.2.0-alpha.2"
description = "Macros for the Tangle Blueprint SDK"
authors.workspace = true
edition.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true

[lints]
workspace = true

[lib]
proc-macro = true

[dependencies]
proc-macro2.workspace = true
quote.workspace = true
syn = { workspace = true, features = [
    "full",
    "parsing",
    # needed for `Hash` impls
    "extra-traits",
    "clone-impls",
    "printing",
    "proc-macro",
] }

# EVM
serde_json = { workspace = true, features = ["alloc"], optional = true }

[dev-dependencies]
# Path-only — see crates/core/Cargo.toml for the rationale. trybuild tests
# under `tests/debug_job/{pass,fail}/*.rs` need to compile against the
# umbrella SDK surface, but the dep itself must not appear in the
# published manifest or `cargo publish` deadlocks on the workspace cycle.
blueprint-sdk = { path = "../sdk", features = ["macros", "std"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["alloc"] }
tokio = { workspace = true, features = ["full"] }
trybuild.workspace = true
rustversion.workspace = true

# TODO(serial): Document features
[features]
default = []
evm = ["dep:serde_json"]
__private = ["syn/visit-mut"]

[package.metadata.cargo-public-api-crates]
allowed = []

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