1 unstable release
Uses new Rust 2024
new 0.1.0 | Mar 12, 2025 |
---|
#212 in Memory management
19KB
468 lines
Capped Collections
X | Twitch | Youtube | Mastodon | GitHub | GitHub Sponsors
Collections with compile-time set capacities.
Examples:
CappedVec
//Initialising and pushing values
let mut capped_vec = CappedVec::<i32, 5>::new();
capped_vec.push(1);
capped_vec.push(2);
capped_vec.push(3);
capped_vec.push(4);
assert_eq!(capped_vec.len(), 4);
//Pushing then poping
let mut capped_vec = CappedVec::<i32, 5>::new();
capped_vec.push(1);
capped_vec.push(2);
capped_vec.pop();
capped_vec.pop();
assert_eq!(capped_vec.len(), 0);
//Pushing then iterating the contents.
let mut capped_vec = CappedVec::<i32, 5>::new();
capped_vec.push(1);
capped_vec.push(2);
capped_vec.push(3);
capped_vec.push(4);
let mut i = 1;
for item in capped_vec.iter()
{
assert_eq!(*item, i);
i.pp();
}
Todo:
- Add more documentation
- Add code examples
- Add more tests
- Clean-up the code
- Add more collection types.
Code Style
This project uses a coding style the emphasises the use of white space over keeping the line and column counts as low as possible.
So this:
fn foo()
{
bar();
}
Not this:
fn foo()
{
bar();
}
License
Licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 (see also: https://www.tldrlegal.com/license/apache-license-2-0-apache-2-0))
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT (see also: https://www.tldrlegal.com/license/mit-license))
at your discretion
Contributing
Please clone the repository and create an issue explaining what feature or features you'd like to add or bug or bugs you'd like to fix and perhaps how you intend to implement these additions or fixes. Try to include details though it doesn't need to be exhaustive and we'll take it from there (dependant on availability).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.4–0.9MB
~22K SLoC