Skip to main content

provable_contracts_macros/
lib.rs

1//! # `provable-contracts-macros` — compatibility facade
2//!
3//! Renamed to [`aprender-contracts-macros`] during the APR-MONO consolidation.
4//! The five attribute macros (`contract`, `requires`, `ensures`, `invariant`,
5//! `must_contract`) are re-exported unchanged, so
6//! `use provable_contracts_macros::requires;` keeps resolving.
7//!
8//! [`aprender-contracts-macros`]: https://crates.io/crates/aprender-contracts-macros
9//!
10//! This crate is deliberately NOT `proc-macro = true` — a proc-macro crate may
11//! export nothing but its own `#[proc_macro*]` functions, so it cannot forward
12//! anyone else's. A plain library re-exporting them works, and downstream code
13//! can still *invoke* them through this path; `compat/invoke.rs` compiles an
14//! invocation of each of the five to prove it.
15//!
16//! Bound by `contracts/provable-contracts-facade-v1.yaml`.
17
18pub use upstream::*;