use std::fmt::Display;
use std::fmt::Formatter;
pub type SnapshotId = String;
#[derive(Debug, Default, Clone, PartialOrd, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub struct SnapshotSegmentId {
pub id: SnapshotId,
pub offset: u64,
}
impl<D: ToString> From<(D, u64)> for SnapshotSegmentId {
fn from(v: (D, u64)) -> Self {
SnapshotSegmentId {
id: v.0.to_string(),
offset: v.1,
}
}
}
impl Display for SnapshotSegmentId {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{}+{}", self.id, self.offset)
}
}