#[inline]
pub fn calculate_page_index(offset: i32, page_size: Option<i32>) -> i32 {
if let Some(page_size) = page_size {
offset % page_size
} else {
offset
}
}
#[inline]
pub fn should_load_page(page_index: i32) -> bool {
page_index == 0
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_calculate_page_index_with_pagination() {
assert_eq!(calculate_page_index(0, Some(10)), 0);
assert_eq!(calculate_page_index(5, Some(10)), 5);
assert_eq!(calculate_page_index(9, Some(10)), 9);
assert_eq!(calculate_page_index(10, Some(10)), 0); assert_eq!(calculate_page_index(15, Some(10)), 5);
assert_eq!(calculate_page_index(20, Some(10)), 0); }
#[test]
fn test_calculate_page_index_without_pagination() {
assert_eq!(calculate_page_index(0, None), 0);
assert_eq!(calculate_page_index(5, None), 5);
assert_eq!(calculate_page_index(100, None), 100);
assert_eq!(calculate_page_index(1000, None), 1000);
}
#[test]
fn test_should_load_page() {
assert!(should_load_page(0));
assert!(!should_load_page(1));
assert!(!should_load_page(5));
assert!(!should_load_page(99));
}
}