1个不稳定版本
0.1.0 | 2022年9月4日 |
---|
#23 in #reuse
8KB
63 代码行数(不包括注释)
vec_storage_reuse
提供重用Vec
分配的API。
这对于在Vec
中存储具有短生命周期的数据时实现零分配很有用
let mut objects_storage: VecStorageForReuse<Object<'static>> = VecStorageForReuse::new();
while let Some(byte_chunk) = stream.next() { // byte_chunk only lives this scope
let mut objects: &mut Vec<Object<'_>> = &mut *objects_storage.reuse_allocation();
// Zero-copy parsing; Object has references to chunk
deserialize(byte_chunk, &mut objects)?;
process(&objects)?;
} // byte_chunk lifetime ends
致谢
此crate将实际的不安全功能委托给recycle_vec
crate,仅通过Drop
提供接口来抽象容器之间的交换,这样就可以永远不忘将临时对象与存储交换回来
依赖项
~9KB