lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

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 }