rusty-capability-attr 0.1.3

Layer 2 (side-effect / capability safety) #[capability(...)] proc-macro attribute for Rust: declares and enforces a function's allocation/IO/raw-pointer scope at compile time, orthogonal to unsafe. Phase 1 (stable Rust, no rustc changes) of docs/aisecurity/capability-rfc-updated.md, scoped to userspace (git.git) needs — see this crate's own module docs for what was dropped from the RFC's embedded-oriented vocabulary and why.
Documentation
[package]
name = "rusty-capability-attr"
version = "0.1.3"
edition.workspace = true
rust-version.workspace = true
description = "Layer 2 (side-effect / capability safety) #[capability(...)] proc-macro attribute for Rust: declares and enforces a function's allocation/IO/raw-pointer scope at compile time, orthogonal to unsafe. Phase 1 (stable Rust, no rustc changes) of docs/aisecurity/capability-rfc-updated.md, scoped to userspace (git.git) needs — see this crate's own module docs for what was dropped from the RFC's embedded-oriented vocabulary and why."
license.workspace = true
repository.workspace = true
readme = "README.md"

# Not `[lints] workspace = true` — Cargo forbids mixing `workspace = true`
# with any lint overrides in the same crate (confirmed live under
# packages/offline-ops, SPEC-00034 T6: "cannot override `workspace.lints` in
# `lints`"), so this replicates the workspace's own `[workspace.lints.clippy]
# all = "deny"` and `[workspace.lints.rust] unexpected_cfgs` verbatim, then
# adds pedantic/nursery/cargo straight at "deny" — real per-crate violation
# count was 18 (excluding the workspace-wide `cargo_common_metadata` quirk,
# carved out in src/lib.rs), small enough for enable-from-birth treatment
# rather than staged retrofit (SPEC-00052 T0b).
[lints.clippy]
all = "deny"
pedantic = "deny"
nursery = "deny"
cargo = "deny"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] }

[lib]
name = "capability_attr"
path = "src/lib.rs"
proc-macro = true

[dependencies]
syn = { version = "2", features = ["full"] }
quote = "1"
proc-macro2 = "1"
# The capability vocabulary, body inspector, and subset-check logic —
# extracted (0.1.2 -> 0.1.3, no behavior change) so `taint-generate` can
# reuse the exact same detection logic to generate a #[capability(...)]
# matching real usage — see crates/capability-core's crate docs.
rusty-capability-core = { path = "../capability-core", version = "0.1.0" }

[dev-dependencies]
trybuild = "1"