Pagination
is a page query lib for rust.
rust
use pagination::{
PageParams,
OffsetParams,
DefaultIntoOffset
};
let page_param = PageParams::new(5, 20);
let offset_param = page_param.into_offset();
assert_eq!(offset_param.offset(), 80_u64);
assert_eq!(offset_param.limit(), 20);
``` rust use pagination::{ PageRequest, OffsetRequest, DefaultIntoOffset };
struct UserQuery { name : &'static str, age : u8 } let pagereq = PageRequest::new(5, 20, UserQuery{name : "alex", "age" : 18}); let offsetreq = pagereq.intooffset(); asserteq!(offsetparam.offset(), 80u64); asserteq!(offset_param.limit(), 20); ```
If the page size from user is 0
or greater than max page size
, the DEFAULT_PAGE_SIZE
will be the page size.
The value of DEFAULT_PAGE_SIZE
is 20
, and you can choose the value by the features, page-size-5
,page-size-10
,
page-size-15
, page-size-20
, page-size-30
,page-size-40
, page-size-50
.
``` rust
use pagination::Page;
let page = Page::new(vec!(10,20,30), 10); let f1 = page[0]; assert_eq!(f1 , 10);
```
Licensed under either of these: - MIT(https://opensource.org/licenses/MIT) - Apache-2.0(https://www.apache.org/licenses/LICENSE-2.0)