use super::{CONTENT_RECLAIM_PROOF_TOKEN_BYTES, ContentId, StorageDomainId, fmt};
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ContentReclaimProofToken([u8; CONTENT_RECLAIM_PROOF_TOKEN_BYTES]);
impl ContentReclaimProofToken {
#[must_use]
pub const fn from_bytes(bytes: [u8; CONTENT_RECLAIM_PROOF_TOKEN_BYTES]) -> Self {
Self(bytes)
}
#[must_use]
pub const fn to_bytes(self) -> [u8; CONTENT_RECLAIM_PROOF_TOKEN_BYTES] {
self.0
}
}
impl fmt::Debug for ContentReclaimProofToken {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str("ContentReclaimProofToken([REDACTED])")
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ContentReclaimAuthorization {
storage_domain_id: StorageDomainId,
content_id: ContentId,
proof_token: ContentReclaimProofToken,
verified_at: crate::ReadVersion,
expires_at_unix_ms: u64,
}
impl ContentReclaimAuthorization {
#[must_use]
pub const fn new(
storage_domain_id: StorageDomainId,
content_id: ContentId,
proof_token: ContentReclaimProofToken,
verified_at: crate::ReadVersion,
expires_at_unix_ms: u64,
) -> Self {
Self {
storage_domain_id,
content_id,
proof_token,
verified_at,
expires_at_unix_ms,
}
}
#[must_use]
pub const fn storage_domain_id(self) -> StorageDomainId {
self.storage_domain_id
}
#[must_use]
pub const fn content_id(self) -> ContentId {
self.content_id
}
#[must_use]
pub const fn proof_token(self) -> ContentReclaimProofToken {
self.proof_token
}
#[must_use]
pub const fn verified_at(self) -> crate::ReadVersion {
self.verified_at
}
#[must_use]
pub const fn expires_at_unix_ms(self) -> u64 {
self.expires_at_unix_ms
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ContentReclaimIntentStage {
Staged,
Existing {
accepted_at: crate::ReadVersion,
},
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ContentQuarantineStage {
Staged,
Existing {
quarantined_at: crate::ReadVersion,
},
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ContentReclaimGraceStage {
Staged,
Existing {
started_at: crate::ReadVersion,
},
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ContentReclaimSweepStage {
Staged,
Existing {
prepared_at: crate::ReadVersion,
},
}