iota_indexer_builder/
lib.rs1pub mod indexer_builder;
6pub mod iota_datasource;
7
8#[derive(Clone, Debug)]
9pub struct Task {
10 pub task_name: String,
11 pub checkpoint: u64,
12 pub target_checkpoint: u64,
13 pub timestamp: u64,
14}
15
16pub trait Tasks {
17 fn live_task(&self) -> Option<Task>;
18
19 fn backfill_tasks(&self) -> Vec<Task>;
20}
21
22impl Tasks for Vec<Task> {
23 fn live_task(&self) -> Option<Task> {
24 self.iter()
26 .find(|t| t.target_checkpoint == i64::MAX as u64)
27 .cloned()
28 }
29
30 fn backfill_tasks(&self) -> Vec<Task> {
31 self.iter()
32 .filter(|t| t.target_checkpoint != i64::MAX as u64)
33 .cloned()
34 .collect()
35 }
36}