pub fn deserialize_from_cache<'de, T: Deserialize<'de>>(
bytes: &'de [u8],
) -> Result<T>Expand description
Deserialize a value from cache storage with validation.
This function performs strict validation:
- Checks magic header matches b“CKIT“
- Checks version matches CURRENT_SCHEMA_VERSION
- Deserializes Postcard payload
§Validation Strategy
On magic mismatch: Returns Error::InvalidCacheEntry
- Indicates corrupted cache entry or non-cache-kit data
- Cache entry should be evicted
On version mismatch: Returns Error::VersionMismatch
- Indicates schema change between code versions
- Cache entry should be evicted and recomputed
On Postcard error: Returns Error::DeserializationError
- Indicates corrupted payload
- Cache entry should be evicted
§Example
use cache_kit::serialization::{serialize_for_cache, deserialize_from_cache};
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct User { id: u64, name: String }
let user = User { id: 1, name: "Alice".to_string() };
let bytes = serialize_for_cache(&user)?;
let deserialized: User = deserialize_from_cache(&bytes)?;
assert_eq!(user, deserialized);§Errors
Error::InvalidCacheEntry: Invalid magic headerError::VersionMismatch: Schema version mismatchError::DeserializationError: Corrupted Postcard payload