| Crates.io | array_list |
| lib.rs | array_list |
| version | 0.4.0 |
| created_at | 2024-11-28 22:23:53.553614+00 |
| updated_at | 2025-10-19 19:25:47.003553+00 |
| description | A dynamic container that combines the characteristics of a Vec and a LinkedList |
| homepage | |
| repository | https://github.com/daddinuz/array_list |
| max_upload_size | |
| id | 1465024 |
| size | 214,712 |
array_list implements an unrolled linked list datastructure with features
that combine the simplicity of a Vec and the flexibility of a LinkedList.
Cursor API similar to the LinkedList one on nightly, allowing efficient operations around a point in the list.Vec and LinkedList characteristics.array_list is ideal for scenarios where:
This crate is not related to Java's ArrayList despite its name.
The design and functionality are entirely tailored to Rust's ecosystem.
Add array_list to your Cargo.toml:
cargo add array_list
or edit your Cargo.toml manually by adding:
[dependencies]
array_list = "0.4"
use array_list::ArrayList;
fn main() {
let mut list: ArrayList<i32, 2> = ArrayList::new();
// Insert elements
list.push_back(1);
list.push_back(3);
list.push_front(0);
list.insert(1, 2);
// Access elements
println!("front: {:?}", list.front()); // Some(0)
println!("back: {:?}", list.back()); // Some(3)
// Remove elements
assert_eq!(list.pop_front(), Some(0));
assert_eq!(list.pop_back(), Some(3));
}
cargo +nightly test --features nightly_tests
cargo +nightly tarpaulin --features nightly_tests
# NOTE: it may take a while to complete.
cargo +nightly miri test --features nightly_tests
Contributions are welcome! Whether it’s improving documentation, fixing bugs, or suggesting new features, feel free to open an issue or submit a pull request (PR).
When contributing, please ensure:
cargo fmt.unsafe code introduced.By contributing, you agree that your contributions will be licensed under the terms of the MIT license.
This crate is licensed under the MIT License. You are free to use, modify, and distribute it under the terms of the license.