misskey_api/
pagination.rs1pub trait PaginationItem {
3 type Id: Ord;
5 fn item_id(&self) -> Self::Id;
7}
8
9pub trait PaginationRequest: misskey_core::Request {
11 type Item: PaginationItem;
13
14 fn set_since_id(&mut self, since_id: <Self::Item as PaginationItem>::Id);
16 fn set_until_id(&mut self, until_id: <Self::Item as PaginationItem>::Id);
18 fn set_limit(&mut self, limit: u8);
20}
21
22impl<R: ?Sized> PaginationRequest for &'_ mut R
23where
24 R: PaginationRequest,
25{
26 type Item = R::Item;
27
28 fn set_since_id(&mut self, since_id: <Self::Item as PaginationItem>::Id) {
29 R::set_since_id(self, since_id)
30 }
31 fn set_until_id(&mut self, until_id: <Self::Item as PaginationItem>::Id) {
32 R::set_until_id(self, until_id)
33 }
34 fn set_limit(&mut self, limit: u8) {
35 R::set_limit(self, limit)
36 }
37}
38
39impl<R: ?Sized> PaginationRequest for Box<R>
40where
41 R: PaginationRequest,
42{
43 type Item = R::Item;
44
45 fn set_since_id(&mut self, since_id: <Self::Item as PaginationItem>::Id) {
46 R::set_since_id(self, since_id)
47 }
48 fn set_until_id(&mut self, until_id: <Self::Item as PaginationItem>::Id) {
49 R::set_until_id(self, until_id)
50 }
51 fn set_limit(&mut self, limit: u8) {
52 R::set_limit(self, limit)
53 }
54}
55
56pub trait OffsetPaginationRequest: misskey_core::Request {
58 type Item;
60
61 fn set_offset(&mut self, offset: u64);
63 fn set_limit(&mut self, limit: u8);
65}
66
67impl<R: ?Sized> OffsetPaginationRequest for &'_ mut R
68where
69 R: OffsetPaginationRequest,
70{
71 type Item = R::Item;
72
73 fn set_offset(&mut self, offset: u64) {
74 R::set_offset(self, offset)
75 }
76 fn set_limit(&mut self, limit: u8) {
77 R::set_limit(self, limit)
78 }
79}
80
81impl<R: ?Sized> OffsetPaginationRequest for Box<R>
82where
83 R: OffsetPaginationRequest,
84{
85 type Item = R::Item;
86
87 fn set_offset(&mut self, offset: u64) {
88 R::set_offset(self, offset)
89 }
90 fn set_limit(&mut self, limit: u8) {
91 R::set_limit(self, limit)
92 }
93}