11个不稳定版本 (3个破坏性版本)
0.4.1 | 2023年2月24日 |
---|---|
0.4.0 | 2023年2月24日 |
0.3.4 | 2023年2月7日 |
0.3.0 | 2023年1月30日 |
0.1.1 | 2023年1月19日 |
#8 in #mainly
每月26次下载
63KB
1.5K SLoC
概述
此crate主要处理索引的发布和维护稳定性。它提供了4个结构体,每个都帮助在不同的领域。这个库是为我的游戏开发努力而创建的。在那方面并不顺利,因为我一直在重启项目。然而,我注意到这些实用结构体反复出现,所以我为它们创建了一个crate。
安装
cargo add stable-id stable-id-traits derive-stable-id
文档
点击这里了解如何使用此crate。
lib.rs
:
此crate主要处理索引的发布和维护稳定性。它提供了4个结构体,每个都帮助在不同的领域。
这个库是为我的游戏开发努力而创建的。在那方面并不顺利,因为我一直在重启项目。然而,我注意到这些实用结构体反复出现,所以我为它们创建了一个crate。
在版本0.2.0中,您可以提供基于无符号整数的自定义Id元组结构体(从8位到64位)。id类型需要以下推导
// Minimal needed for all traits that are introduced by this crate.
#[derive(derive_stable_id::StableId)]
struct Id(u8);
// These are needed under normal circumstances.
#[derive(derive_stable_id::StableId)]
struct Id32(u32);
let x: stable_id::Eids<Id32> = Default::default();
let x: stable_id::Sequence<Id32> = Default::default();
let x: stable_id::SparseEntities<Id32, String> = Default::default();
let x: stable_id::Entities<Id32, String> = Default::default();
let x: stable_id::Tec<Id32, String> = Default::default();
用例
结构体 | 类型 | 建议 | 描述 |
---|---|---|---|
Eids |
Id | 密集数据 | 您想创建id,并且关心恢复id。 |
Sequence |
Id | 稀疏数据 | 您想创建id,并且不关心恢复id,但您不想使用基于HashMap的Entities 结构体。 |
Entities |
集合 | 密集数据 | 本库的常用集合。 |
SparseEntities |
集合 | 稀疏数据 | 您想混合序列(id不回收)和HashMap。 |
[Tec ] |
集合 | 密集数据 | 您想使用vec来存储数据,但需要常数实体移除。[Tec ]会在您插入更多新项目时为您回收空间。 |
依赖项
~1.5MB
~36K SLoC