#[mmap_struct]Expand description
Attribute macro for memory-mapped structs.
This macro transforms regular Rust types into mmap-safe types and generates the necessary trait implementation. Users write normal Rust code:
§Example
use memmap3::mmap_struct;
use memmap3::MmapStruct;
use std::sync::atomic::Ordering;
#[mmap_struct]
struct Config {
// Regular field
version: u32,
// Atomic field - transformed to MmapAtomicU64
#[mmap(atomic)]
connection_count: u64,
// String field - auto-detected! [u8; N] defaults to string
server_name: [u8; 256],
// Raw binary data - use #[mmap(raw)] to keep as byte array
#[mmap(raw)]
binary_data: [u8; 128],
}
// Usage:
let mut config = MmapStruct::<Config>::create("/tmp/config.mmap")?;
config.version = 1;
config.connection_count.fetch_add(1, Ordering::SeqCst);
config.server_name.set("localhost"); // Auto-detected as string!
config.binary_data[0] = 0xFF; // Raw binary access§Features
- Automatically adds
#[repr(C)]for memory layout compatibility - Transforms
u64with#[mmap(atomic)]toMmapAtomicU64 - Auto-detects
[u8; N]asMmapString<N>(use#[mmap(raw)]for binary) - Generates StructLayout implementation