# 🎰 sparse-slot A lightning-fast, memory-efficient sparse slot map implementation in Rust. ## ✨ Features - 🚀 **Fixed-size Power**: Pre-allocated capacity for predictable performance - 🎯 **Safe Access**: Generation-based handles prevent the "dangling pointer blues" - 🔄 **Reusable Slots**: Removed items' slots can be reused, like a game of musical chairs - 🎭 **Double Life**: Values can be accessed both immutably and mutably ## 📦 Installation Add this to your `Cargo.toml`: ```toml [dependencies] sparse-slot = "0.0.3" ``` ## 🛠️ Usage Here's a quick example to get you started: ```rust use sparse_slot::SparseSlot; fn main() { let mut slot = SparseSlot::new(5); let id = slot.try_set("Hello, world!").expect("failed to set"); println!("Stored value: {:?}", slot.get(id)); } ``` ## About Contributions This project is open source with a single copyright holder (that's me!). While the code is publicly available under the [MIT License](LICENSE), I'm not accepting external contributions at this time. If you have suggestions or stumble upon bugs, please open an issue for discussion. While I can't accept pull requests, your feedback is invaluable and helps make the project better. Thank you for your understanding and interest in this project! Your engagement means the world to me. 🙏 ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. _Copyright (c) 2024 [Peter Bjorklund](https://github.com/piot). All rights reserved._