2个不稳定版本

0.1.0 2023年4月28日
0.0.1 2023年4月10日

#626内存管理

每月24次下载

MIT 许可证

19KB
484

shared_slab

该crate提供了一个数据类型 Slab,其概念与 slabsharded-slab crate 提供的概念非常相似。

与其他crate相比,该crate的关键区别可以总结在其函数签名中

pub fn get(&self, key: usize) -> Option<&T>
pub fn insert(&self, value: T) -> usize
pub fn insert_and_get(&self, value: T) -> (usize, &T)
pub fn remove(&mut self, key: usize) -> T

或者换句话说,允许共享访问其中包含的值的同时进行共享插入。(slab 在插入时需要可变访问,而 sharded-slab 不提供对包含数据的直接 &T 引用)

至于用例,这种结构主要用于缓存和重用资源,在以下模式中

pub fn add_resource(&self, resource_descriptor: Descriptor) -> &Resource

无运行时依赖