pub struct LogFile {
pub route: String,
pub id: String,
pub message_index: Option<u64>,
pub media_index: Option<u64>,
pub extension: String,
pub content: Vec<u8>,
}
impl LogFile {
pub fn stem(&self) -> String {
match (self.message_index, self.media_index) {
(None, _) => self.id.clone(),
(Some(mi), None) => format!("{}_{mi}", self.id),
(Some(mi), Some(mdi)) => format!("{}_{mi}_{mdi}", self.id),
}
}
pub fn filename(&self) -> String {
format!("{}.{}", self.stem(), self.extension)
}
pub fn path(&self) -> String {
format!("{}/{}", self.route, self.filename())
}
}