tdm_server_rust/utils/
page.rs1use crate::common::PageBean;
7
8pub fn paginate<T: Clone>(all: Vec<T>, page: i32, page_size: i32) -> PageBean<T> {
10 let total = all.len() as i64;
11 let page = page.max(1) as usize;
12 let page_size = page_size.max(1) as usize;
13 let start = (page - 1) * page_size;
14 let rows = if start >= all.len() {
15 vec![]
16 } else {
17 all[start..all.len().min(start + page_size)].to_vec()
18 };
19 PageBean::new(total, rows)
20}
21
22pub fn slice_rows<T>(rows: Vec<T>, total: i64) -> PageBean<T> {
36 PageBean::new(total, rows)
37}