# proc-assertions
Verify at compile-time your code via procedural assumptions in Rust; developed by [Efficient Computing Lab](https://www.yecl.org/).
Find previous commits for the crate v.0.1.1 [here](https://github.com/Ramla-I/static-assertions/tree/antonmel).
## Installation
This crate is available
[on crates.io](https://crates.io/crates/proc_assertions) and can be used by
adding the following to your project's
[`Cargo.toml`](https://doc.rust-lang.org/cargo/reference/manifest.html):
```toml
[dependencies]
proc_assertions = "0.1.1"
```
and this to your crate root (`main.rs` or `lib.rs`):
```rust
#[macro_use]
extern crate proc_assertions;
```
## Usage
This crate exposes the following proc-macros:
- #[`calls`]
- #[`nocalls`]
- #[`mutates`]
- #[`nomutates`]
- #[`private_fields`]
- #[`size_align`]
- #[`consumes`]
## FAQ
- **Q:** How can I contribute?
Contributions are welcome via pull requests to the [GitHub repository](https://github.com/anton-mel/proc-assertions).
- **Q:** Will this affect my compiled binary?
No, these assertions are only used at compile-time and don't affect the final binary.
- **Q:** Will this affect my compile times?
There may be a slight increase in compile times due to additional checks.
## License
This project is licensed under the [MIT License](https://github.com/anton-mel/proc-assertions/LICENSE-MIT).