canic_core/workflow/runtime/cycles/
query.rs1use crate::{
2 dto::{
3 cycles::CycleTrackerEntry,
4 page::{Page, PageRequest},
5 },
6 ops::storage::cycles::CycleTrackerOps,
7 workflow::view::paginate::paginate_vec,
8};
9
10pub struct CycleTrackerQuery;
15
16impl CycleTrackerQuery {
17 #[must_use]
18 pub fn page(page: PageRequest) -> Page<CycleTrackerEntry> {
19 let page = paginate_vec(CycleTrackerOps::entries(), page);
20 let entries = page
21 .entries
22 .into_iter()
23 .map(|(timestamp_secs, cycles)| CycleTrackerEntry {
24 timestamp_secs,
25 cycles,
26 })
27 .collect();
28
29 Page {
30 entries,
31 total: page.total,
32 }
33 }
34}