1use serde::{Deserialize, Serialize};
4
5pub use dnspls_core::ZoneMembership;
6
7#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
9#[serde(rename_all = "snake_case")]
10pub enum SnapshotClassification {
11 RegisteredEvidence,
12 Verify,
13 Uncovered,
14}
15
16pub const fn classify(membership: ZoneMembership) -> SnapshotClassification {
19 match membership {
20 ZoneMembership::Present => SnapshotClassification::RegisteredEvidence,
21 ZoneMembership::Absent => SnapshotClassification::Verify,
22 ZoneMembership::TldUncovered => SnapshotClassification::Uncovered,
23 }
24}
25
26#[cfg(test)]
27mod tests {
28 use super::*;
29
30 #[test]
31 fn absence_never_becomes_availability() {
32 assert_eq!(
33 classify(ZoneMembership::Absent),
34 SnapshotClassification::Verify
35 );
36 }
37}