diff options
Diffstat (limited to 'shared/src/store.rs')
-rw-r--r-- | shared/src/store.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/shared/src/store.rs b/shared/src/store.rs index 3db6bac..e3e5949 100644 --- a/shared/src/store.rs +++ b/shared/src/store.rs @@ -76,6 +76,16 @@ impl ResourceStore { pub fn set<T: ReadWrite>(&self, value: &T) -> Result<Resource<T>> { Ok(Resource(self.set_raw(&value.write_alloc())?.0, PhantomData)) } + pub fn get_raw_size(&self, key: Resource) -> Result<Option<usize>> { + match self { + ResourceStore::Redb(_) => todo!(), + ResourceStore::Filesystem(_) => todo!(), + ResourceStore::Memory(mutex) => { + let g = mutex.lock().unwrap(); + Ok(g.get(&key).map(|s| s.len())) + } + } + } pub fn get_raw(&self, key: Resource) -> Result<Option<Vec<u8>>> { match self { ResourceStore::Redb(database) => { |