Skip to main content

tsl/
index.rs

1use std::collections::BTreeMap;
2
3pub struct TemporalIndex {
4    pub map: BTreeMap<u64, usize>,
5}
6
7impl TemporalIndex {
8    pub fn new() -> Self {
9        Self {
10            map: BTreeMap::new(),
11        }
12    }
13
14    pub fn insert(&mut self, timestamp: u64, segment_id: usize) {
15        self.map.insert(timestamp, segment_id);
16    }
17
18    pub fn range(&self, start: u64, end: u64) -> Vec<usize> {
19        self.map.range(start..=end).map(|(_, &id)| id).collect()
20    }
21}
22
23impl Default for TemporalIndex {
24    fn default() -> Self {
25        Self::new()
26    }
27}