use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
use crate::event::Event;
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct Chunk {
pub reference_time: OffsetDateTime,
pub events: Vec<Event>,
}
impl Chunk {
pub fn new(reference_time: OffsetDateTime) -> Self {
Self {
reference_time,
events: Default::default(),
}
}
pub fn push(&mut self, event: Event) {
self.events.push(event);
}
pub fn memory_size(&self) -> usize {
use std::mem::size_of;
size_of::<Self>() + (self.events.len() * (size_of::<Event>()))
}
}
impl Default for Chunk {
fn default() -> Self {
Self::new(OffsetDateTime::now_utc())
}
}