1 个不稳定版本
0.1.0 | 2024年7月11日 |
---|
#1274 在 数据结构
1,226 每月下载量
8KB
77 行
flatten_objects
FlattenObjects
是一个存储编号对象的容器。
对象可以被添加到 FlattenObjects
,对象将分配一个唯一ID。该ID可用于稍后检索对象。
示例
use flatten_objects::FlattenObjects;
let mut objects = FlattenObjects::<u32, 20>::new();
// Add `23` 10 times and assign them IDs from 0 to 9.
for i in 0..=9 {
objects.add_at(i, 23).unwrap();
assert!(objects.is_assigned(i));
}
// Remove the object with ID 6.
assert_eq!(objects.remove(6), Some(23));
assert!(!objects.is_assigned(6));
// Add `42` (the ID 6 is available now).
let id = objects.add(42).unwrap();
assert_eq!(id, 6);
assert!(objects.is_assigned(id));
assert_eq!(objects.get(id), Some(&42));
assert_eq!(objects.remove(id), Some(42));
assert!(!objects.is_assigned(id));
lib.rs
:
FlattenObjects
是一个存储编号对象的容器。
对象可以被添加到 FlattenObjects
,对象将分配一个唯一ID。该ID可用于稍后检索对象。
示例
use flatten_objects::FlattenObjects;
let mut objects = FlattenObjects::<u32, 20>::new();
// Add `23` 10 times and assign them IDs from 0 to 9.
for i in 0..=9 {
objects.add_at(i, 23).unwrap();
assert!(objects.is_assigned(i));
}
// Remove the object with ID 6.
assert_eq!(objects.remove(6), Some(23));
assert!(!objects.is_assigned(6));
// Add `42` (the ID 6 is available now).
let id = objects.add(42).unwrap();
assert_eq!(id, 6);
assert!(objects.is_assigned(id));
assert_eq!(objects.get(id), Some(&42));
assert_eq!(objects.remove(id), Some(42));
assert!(!objects.is_assigned(id));
依赖项
~72KB