Takes a Vec<A>
and internally creates a Vec<Vec<&A>>
which references all the A
's from the source vector. With the impl method page_for
, you can get a) the "page" for the source vectors index, and b) the modulus translated index for the "page". Needed this for some UI work for printing and paginating a large vector. The real magic comes from the standard libs chunks
method.
For example:
let some_vec = vec![1, 2, 3, 4, 5, 6, 7, 8];
let paged = PagedVec::from(some_vec, 3);
let page_1 = paged.page_for(0); // Some(0, vec![1, 2, 3])
let page_1 = paged.page_for(1); // Some(1, vec![1, 2, 3])
let page_1 = paged.page_for(2); // Some(2, vec![1, 2, 3])
let page_2 = paged.page_for(3); // Some(0, vec![4, 5, 6])
let page_3 = paged.page_for(7); // Some(1, vec![7, 8])