use crate::{
ops::replay::guard::ReplayPending,
ops::storage::replay::RootReplayOps,
storage::stable::replay::{ReplaySlotKey, RootReplayRecord},
};
#[must_use]
pub fn get_root_slot(key: ReplaySlotKey) -> Option<RootReplayRecord> {
RootReplayOps::get(key)
}
#[cfg(test)]
pub fn upsert_root_slot(key: ReplaySlotKey, record: RootReplayRecord) {
RootReplayOps::upsert(key, record);
}
pub fn reserve_root_slot(pending: ReplayPending) {
RootReplayOps::upsert(
pending.slot_key,
RootReplayRecord {
payload_hash: pending.payload_hash,
issued_at: pending.issued_at,
expires_at: pending.expires_at,
response_bytes: vec![],
},
);
}
pub fn commit_root_slot(pending: ReplayPending, response_bytes: Vec<u8>) {
RootReplayOps::upsert(
pending.slot_key,
RootReplayRecord {
payload_hash: pending.payload_hash,
issued_at: pending.issued_at,
expires_at: pending.expires_at,
response_bytes,
},
);
}
#[must_use]
pub fn root_slot_len() -> usize {
RootReplayOps::len()
}
#[must_use]
pub fn has_root_slot(key: ReplaySlotKey) -> bool {
get_root_slot(key).is_some()
}
pub fn purge_root_expired(now: u64, limit: usize) -> usize {
RootReplayOps::purge_expired(now, limit)
}
pub fn remove_root_slot(key: ReplaySlotKey) -> Option<RootReplayRecord> {
RootReplayOps::remove(key)
}