nodedb_vector/collection/
tier.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7#[non_exhaustive]
8pub enum StorageTier {
9 L0Ram,
12
13 L1Nvme,
17
18 L2Remote,
22}
23
24impl StorageTier {
25 pub fn is_memory_resident(self) -> bool {
27 matches!(self, StorageTier::L0Ram)
28 }
29
30 pub fn uses_mmap(self) -> bool {
32 matches!(self, StorageTier::L1Nvme)
33 }
34
35 pub fn is_remote(self) -> bool {
37 matches!(self, StorageTier::L2Remote)
38 }
39}
40
41#[cfg(test)]
42mod tests {
43 use super::*;
44
45 #[test]
46 fn tier_properties() {
47 assert!(StorageTier::L0Ram.is_memory_resident());
48 assert!(!StorageTier::L0Ram.uses_mmap());
49 assert!(!StorageTier::L0Ram.is_remote());
50
51 assert!(!StorageTier::L1Nvme.is_memory_resident());
52 assert!(StorageTier::L1Nvme.uses_mmap());
53 assert!(!StorageTier::L1Nvme.is_remote());
54
55 assert!(!StorageTier::L2Remote.is_memory_resident());
56 assert!(!StorageTier::L2Remote.uses_mmap());
57 assert!(StorageTier::L2Remote.is_remote());
58 }
59}