use std::path::Path;
use crate::common::tar_ext;
use crate::segment::common::operation_error::OperationResult;
use crate::segment::data_types::manifest::SegmentManifest;
use crate::segment::types::SnapshotFormat;
pub trait SnapshotEntry {
fn segment_id(&self) -> OperationResult<String>;
fn take_snapshot(
&self,
temp_path: &Path,
tar: &tar_ext::BuilderExt,
format: SnapshotFormat,
manifest: Option<&SegmentManifest>,
) -> OperationResult<()>;
fn get_segment_manifest(&self) -> OperationResult<SegmentManifest>;
}