2 个不稳定版本
0.2.0 | 2022 年 12 月 10 日 |
---|---|
0.1.0 | 2022 年 12 月 10 日 |
#1819 在 Rust 模式
9KB
116 行
简单的标签化 ID
带有关联类型标签的简单 ID。
use slid::Id;
struct User;
let player_a = Id::<User>::new_random();
let player_b = Id::<User>::new_random();
// For all practical purposes, we can assume that 2 random IDs will be unique and different
assert_ne!(player_a, player_b);
// The label generic helps avoid mixups:
struct Product;
fn delete_product(id: Id<Product>) {}
// Doesn't compile, because Id<User> and Id<Player> are different
// delete_product(player_a);
// But you can explicitly cast the label if needed:
delete_product(player_a.cast_label());
替代方案
注意:此库不试图符合任何 UUID 标准。随机 ID 是简单的随机。如果您需要标准的 UUID,请查看 uuid
依赖
~0.6–1.3MB
~27K SLoC