3 个版本
0.1.2 | 2023年5月27日 |
---|---|
0.1.1 | 2023年5月27日 |
0.1.0 | 2023年5月27日 |
#19 in #guid
每月37次下载
11KB
211 行代码(不含注释)
crockford-uuid
以下是一个 crockford-uuid 的示例
4s0y2vz7sf4vghnznytz9gvq6
crockford-uuid Uuid 是一个独特的 120 位值,存储为 15 字节标识符,并通过标识符计算得出的固定数字校验字符,用于值完整性检查。
唯一性属性并不严格保证,然而在实际应用中,由于 120 位的密钥空间大约与地球上存在的细菌细胞数量相当,因此无意中发生冲突的可能性极低。 :)
入门
将以下内容添加到您的 Cargo.toml
crockford-uuid = "0.1.2"
当您需要标识符时,可以生成一个
use crockford-uuid::Uuid;
let id = Uuid::new();
如果您有一个 crockford-uuid 值,您可以使用其字符串字面量、BigUint 和 Bytes 值
use uuid::Uuid;
const from_string_lit: Uuid = "4s0y2vz7sf4vghnznytz9gvq6".try_into().unwrap();
const from_big_uint: Uuid = BigUint::parse_bytes(b"471569087780948647371060810118848519319753452797", 10).unwrap().try_into().unwrap();
您还可以将 crockford-uuid 转换为字符串字面量、BigUint、Vec<u8>
(字节)
const to_str = Uuid::to_string();
const to_big_uint: BigUint = Uuid::new().into();
const to_vec: Vec<u8> = Uuid::new().into();
有关使用 crockford-uuid
的更多详细信息,请参阅库文档。
参考资料
https://learning.oreilly.com/library/view/api-design-patterns/9781617295850/OEBPS/Text/06.htm#:-:text=6.3.3 https://www.crockford.com/base32.html
依赖关系
~8MB
~233K SLoC