avantis_utils/
pagination.rs

1pub use avantis_utils_derive::PaginatedQuery;
2
3// Example:
4// uncomment this to try
5//
6// #[derive(Default, Debug, PartialEq, PaginatedQuery)]
7// struct Foo {
8//     #[limit(default = 100)]
9//     pub limit_t: Option<i32>,
10//     #[offset(default = 0)]
11//     pub offset_t: Option<i32>,
12// }
13
14pub trait PaginatedQuery {
15    fn limit(&self) -> i32;
16    fn offset(&self) -> i32;
17}
18
19#[cfg(test)]
20mod tests {
21    use super::*;
22
23    #[test]
24    fn test_input() {
25        #[derive(Default, Debug, PartialEq, PaginatedQuery)]
26        struct Input {
27            #[limit(default = 100)]
28            pub limit_t: Option<i32>,
29            #[offset(default = 0)]
30            pub offset_t: Option<i32>,
31        }
32
33        let input = Input::default();
34
35        assert_eq!(100, input.limit());
36        assert_eq!(0, input.offset());
37    }
38}