#arena #enums #stored #enumeration #storage #derive #enums-id-arena

enums_arena

enums_arena 是一个高效的枚举存储区域

4 个版本

0.1.4 2023 年 4 月 5 日
0.1.3 2023 年 4 月 2 日
0.1.2 2023 年 4 月 2 日
0.1.1 2023 年 4 月 1 日
0.1.0 2023 年 4 月 1 日

1334Rust 模式

Download history 17/week @ 2024-03-28 16/week @ 2024-04-04

每月 60 次下载

MIT 许可证

16KB
295

区域,快速高效的枚举存储


lib.rs:

enums_arena

enums_arena 是一个高效的枚举存储区域

用法

#[derive(PartialEq, Debug, Clone, Default)]
struct Click {
    x: i32,
    y: i32,
}
#[derive(enums_arena_derive::EnumsIdArena, PartialEq, Debug)]
enum Event {
    Click(Click),
    Tick(f32),
    Close,
}

let mut arena = EventIdArena::<u32, ()>::default();
let id = arena.alloc_click(Click::default());
arena.alloc_tick(1f32);
arena.alloc_close();

assert_eq!(arena.get(id), Some(Event::Click(Click::default())));
arena.clear();
assert_eq!(arena.get(id), None);

依赖关系

~0.8–1.4MB
~26K SLoC