use crate::descriptor::{ProposalId, ReplayRef};
use crate::report::ReplayCapsule;
#[path = "type_guard.rs"]
mod guard;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ReplayCapsuleEntry {
proposal: ProposalId,
replay: ReplayRef,
capsule: ReplayCapsule,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct StoredReplayEntryRef {
replay: ReplayRef,
token: String,
}
#[must_use = "a refusal is the reason a replay entry was not stored"]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ReplayDepotRefusal {
Unavailable,
AlreadyStored(ReplayRef),
EmptyLocation,
DestinationNotDurable,
}
pub trait ReplayDepotSink {
fn store(
&mut self,
entry: &ReplayCapsuleEntry,
) -> Result<StoredReplayEntryRef, ReplayDepotRefusal>;
}