fast_cache/storage/embedded_store_shared/
session.rs1use super::*;
2
3impl<const SHARDS: usize> SharedEmbeddedStore<SHARDS> {
4 #[inline(always)]
6 pub fn get_session(&self, session_prefix: &[u8], key: &[u8]) -> Option<Ref<'_>> {
7 let route = self.route_session(session_prefix);
8 let key_hash = hash_key(key);
9 let guard = self.stripe(route.shard_id).read();
10 let value = guard.get_session_ref_hashed_shared_no_ttl(session_prefix, key_hash, key)?
11 as *const [u8];
12 Some(Ref {
13 guard,
14 value,
15 _not_send: PhantomData,
16 })
17 }
18
19 #[inline(always)]
21 pub fn set_session(&self, session_prefix: &[u8], key: &[u8], value: &[u8]) {
22 let route = self.route_session(session_prefix);
23 let key_hash = hash_key(key);
24 self.stripe(route.shard_id)
25 .write()
26 .set_session_slice_hashed_no_ttl(session_prefix, key_hash, key, value);
27 }
28}