feature_contract.rs (919B)
1 #[cfg(feature = "memory")] 2 use radroots_storage::Storage; 3 4 #[cfg(feature = "memory")] 5 #[test] 6 fn memory_feature_provides_the_complete_storage_capability() { 7 fn accepts(_: &dyn Storage) {} 8 accepts(&radroots_storage::memory::MemoryStorage::default()); 9 } 10 11 #[cfg(not(feature = "memory"))] 12 #[test] 13 fn storage_spi_builds_without_the_memory_backend() { 14 fn accepts_spi(_: Option<&dyn radroots_storage::EventStore>) {} 15 accepts_spi(None); 16 } 17 18 #[cfg(feature = "serde")] 19 #[test] 20 fn serde_feature_round_trips_backend_status_discriminants() { 21 let encoded = serde_json::to_string(&radroots_storage::status::StorageBackend::Memory) 22 .expect("serialize backend"); 23 assert_eq!(encoded, "\"memory\""); 24 let decoded: radroots_storage::status::StorageBackend = 25 serde_json::from_str(&encoded).expect("deserialize backend"); 26 assert_eq!(decoded, radroots_storage::status::StorageBackend::Memory); 27 }