| Crates.io | chunked_vec |
| lib.rs | chunked_vec |
| version | 0.3.4 |
| created_at | 2025-04-07 07:15:06.070861+00 |
| updated_at | 2025-09-20 17:14:00.733332+00 |
| description | A vector-like data structure that stores elements in fixed-size chunks for better memory management |
| homepage | |
| repository | https://github.com/QuarkPixel/ChunkedVec |
| max_upload_size | |
| id | 1623772 |
| size | 68,041 |
Note: This is a learning project implementing a vector-like data structure with chunked storage.
ChunkedVec is a vector-like data structure that stores elements in fixed-size chunks. It provides a Vec-like interface while offering unique advantages in memory management and memory locality.
use chunked_vec::ChunkedVec;
fn main() {
let mut vec = ChunkedVec::new();
vec.push(1);
vec.push(2);
vec.push(3);
assert_eq!(vec[0], 1);
assert_eq!(vec[1], 2);
assert_eq!(vec[2], 3);
}
use chunked_vec::{chunked_vec, ChunkedVec};
fn main() {
// Create an empty ChunkedVec
let vec: ChunkedVec<i32> = chunked_vec![];
assert_eq!(vec.len(), 0);
// Create a ChunkedVec with initial values
let vec = chunked_vec![1, 2, 3, 4, 5];
assert_eq!(vec[0], 1);
// Create a ChunkedVec with repeated values
let vec = chunked_vec![42; 5]; // [42, 42, 42, 42, 42]
assert_eq!(vec.len(), 5);
}
use chunked_vec::{ChunkedVec, ChunkedVecSized};
fn main() {
// Create a ChunkedVec with chunk size of 8
let mut vec: ChunkedVec<i32, 8> = ChunkedVecSized::new();
vec.push(1);
// Pre-allocate space for elements
let vec = ChunkedVecSized::<i32, 8>::with_capacity(100);
assert_eq!(vec.capacity(), 104);// Actual capacity of ChunkedVec rounds up to chunk size
}
use chunked_vec::ChunkedVec;
fn main() {
// From Vec
let vec = vec![1, 2, 3];
let chunked: ChunkedVec<i32> = vec.into();
// From array
let arr = [1, 2, 3];
let chunked = ChunkedVec::from(arr);
// From slice
let slice: &[i32] = &[1, 2, 3];
let chunked = ChunkedVec::from(slice);
// From iterator
let chunked: ChunkedVec<i32> = (0..10).collect();
}
new, with_capacity, with_chunk_count)get, get_mut, Index/IndexMut traits)len, capacity, allocated_capacity)ChunkedVecSizedThis is an open learning project. Contributions and suggestions are welcome! Feel free to: