use crate::{declaration::DeclarationSnapshot, ledger::GenerationRecord};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum GenerationMutation {
Declare,
Reserve,
Retire,
RecordSchemaMetadata,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct StagedGeneration {
pub generation: u64,
pub parent_generation: u64,
pub snapshot: DeclarationSnapshot,
pub mutations: Vec<GenerationMutation>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct GenerationCommit {
pub record: GenerationRecord,
pub checksum: u64,
pub commit_marker: u64,
}