deserialize_from_cache

Function deserialize_from_cache 

Source
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:

  1. Checks magic header matches b“CKIT“
  2. Checks version matches CURRENT_SCHEMA_VERSION
  3. 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 header
  • Error::VersionMismatch: Schema version mismatch
  • Error::DeserializationError: Corrupted Postcard payload