6个版本
0.1.6 | 2021年3月15日 |
---|---|
0.1.5 | 2021年1月24日 |
#418 in 内存管理
41KB
391 行
stadium
提供了Stadium
结构。此数据结构允许您在内存的连续块中分配任何给定集合的对象(可以是不同类型的对象)。
示例
// The first step is to build the stadium using a builder.
// This registers the data that will be used inside of the stadium.
let mut builder = stadium::builder();
let h_vec = builder.insert(vec![2019, 2020, 2021]);
let h_str = builder.insert("Hello, world!");
let h_int_a = builder.insert(68u64);
let h_int_b = builder.insert(65u64)
// Once the initialization is done, the actual stadium can be created.
let mut stadium = builder.build();
// Values can be retrieved.
assert_eq!(&stadium[h_vec], &[2019, 2020, 2021][..]);
assert_eq!(stadium[h_str], "Hello, world!");
assert_eq!(stadium[h_int_a], 68);
// Or mutated.
stadium[h_vec].push(2022);
stadium[h_int_b] = 70;
// Other operations are supported.
assert_eq!(stadium.replace(h_str, "FOOBAR"), "Hello, world!");
stadium.swap(h_int_a, h_int_b);
assert_eq!(stadium[h_int_a], 70);
assert_eq!(stadium[h_int_b], 68);