use std::collections::HashMap; pub struct SharedMemory { pub data: HashMap>, pub version: u64, } impl SharedMemory { pub fn new() -> Self { Self { data: HashMap::new(), version: 0, } } pub fn write(&mut self, key: &str, value: &[u8]) { self.data.insert(key.to_string(), value.to_vec()); self.version += 1; } pub fn read(&self, key: &str) -> Option<&[u8]> { self.data.get(key).map(|v| v.as_slice()) } pub fn version(&self) -> u64 { self.version } } impl Default for SharedMemory { fn default() -> Self { Self::new() } }