# memmap3-macros
[](https://crates.io/crates/memmap3-macros)
[](https://docs.rs/memmap3-macros)
Procedural macros for the [memmap3](https://crates.io/crates/memmap3) crate.
## ⚠️ Note for Users
**You should not install this crate directly.** This crate contains the procedural macros used by
`memmap3` and is automatically included when you add `memmap3` to your dependencies.
## Installation
Add `memmap3` to your `Cargo.toml` (not this crate):
```toml
[dependencies]
memmap3 = "0.1"
```
## What This Crate Provides
This crate implements the `#[mmap_struct]` attribute macro that transforms regular Rust structs into
memory-mappable types:
```rust
use memmap3::prelude::*;
#[mmap_struct] // <- This macro is provided by memmap3-macros
struct Config {
#[mmap(atomic)]
counter: u64,
name: [u8; 32],
}
```
The macro automatically:
- Adds `#[repr(C)]` for predictable memory layout
- Transforms atomic fields (e.g., `u64` with `#[mmap(atomic)]` becomes `MmapAtomicU64`)
- Auto-detects byte arrays as strings (unless marked with `#[mmap(raw)]`)
- Generates the `StructLayout` trait implementation
## Documentation
For complete documentation and examples, see the main [memmap3 crate](https://docs.rs/memmap3).
## License
This project is licensed under the MIT OR Apache-2.0 license.