13 stable releases
1.1.11 | Apr 11, 2022 |
---|---|
1.1.8 | Jan 21, 2022 |
1.0.1 | Mar 16, 2020 |
#360 in Web programming
1,293 downloads per month
Used in wanisabi
17KB
391 lines
A framework agnostic pagination crate, that is especially suited for databases, slices and collections. Paginate calculates the range of page indexes, making it ideal for accessing slices, chunking data and querying databases.
Project Status
Installation
Add the following line to your Cargo.toml file:
paginate = "^1"
Examples
To iterate over each page:
use paginate::Pages;
fn main() {
let total_items = 100;
let items_per_page = 5;
let pages = Pages::new(total_items, items_per_page);
println!("total pages: {}", pages.page_count());
for page in pages.into_iter() {
println!("offset: {}, total: {}, start: {}, end: {}", page.offset, page.length, page.start, page.end);
}
}
To get the pagination of a specific offset:
use paginate::Pages;
fn main() {
let total_items = 35;
let items_per_page = 5;
let pages = Pages::new(total_items, items_per_page);
let page = pages.with_offset(3);
println!("total pages: {}", pages.page_count());
println!("offset: {}, total: {}, start: {}, end: {}", page.offset, page.length, page.start, page.end);
}
Getting help
Contribute
- Star this project. It really helps!
- Ask a question
- Report a bug
- Request documentation
- Request a new feature