#![allow(dead_code)] // REMOVE THIS LINE after fully implementing this functionality use std::fs::File; use std::path::Path; use std::sync::Arc; use anyhow::Result; use parking_lot::{Mutex, MutexGuard}; use serde::{Deserialize, Serialize}; use crate::compact::CompactionTask; pub struct Manifest { file: Arc>, } #[derive(Serialize, Deserialize)] pub enum ManifestRecord { Flush(usize), NewMemtable(usize), Compaction(CompactionTask, Vec), } impl Manifest { pub fn create(_path: impl AsRef) -> Result { unimplemented!() } pub fn recover(_path: impl AsRef) -> Result<(Self, Vec)> { unimplemented!() } pub fn add_record( &self, _state_lock_observer: &MutexGuard<()>, record: ManifestRecord, ) -> Result<()> { self.add_record_when_init(record) } pub fn add_record_when_init(&self, _record: ManifestRecord) -> Result<()> { unimplemented!() } }