use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use crate::transaction_log::{IndexKind, TableMetaDelta, segments::SegmentMeta};
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
pub enum LogAction {
AddSegment(SegmentMeta),
RemoveSegment {
path: String,
},
UpdateTableMeta(TableMetaDelta),
UpdateTableCoverage {
index_kind: IndexKind,
coverage_path: String,
},
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Commit {
pub version: u64,
pub base_version: u64,
pub timestamp: DateTime<Utc>,
pub actions: Vec<LogAction>,
}