Skip to main content

tsl/
segment.rs

1use crate::event::Event;
2
3pub struct Segment {
4    pub events: Vec<Event>,
5    pub start_time: u64,
6    pub end_time: u64,
7    capacity: usize,
8}
9
10impl Segment {
11    pub fn new(capacity: usize, start_time: u64) -> Self {
12        Self {
13            events: Vec::with_capacity(capacity),
14            start_time,
15            end_time: start_time,
16            capacity,
17        }
18    }
19
20    pub fn is_full(&self) -> bool {
21        self.events.len() >= self.capacity
22    }
23
24    pub fn append(&mut self, event: Event) {
25        self.end_time = event.timestamp;
26        self.events.push(event);
27    }
28}