13个版本 (4个稳定版本)
1.0.3 | 2024年2月24日 |
---|---|
1.0.2 | 2023年5月24日 |
1.0.1 | 2023年4月26日 |
1.0.0 | 2023年2月15日 |
0.1.2 | 2022年6月14日 |
#724 在 Rust模式
每月1,018次下载
在 3 crate 中使用
41KB
737 行
Snowflaked
一个用于创建和使用雪花ID的crate。
使用方法
将 snowflaked
添加到你的 Cargo.toml
snowflaked = "1.0.0"
这个crate提供了生成新的雪花ID和定义自定义雪花类型的API。
雪花ID生成
使用 Generator
类型创建新的雪花ID
use snowflaked::Generator;
let mut generator = Generator::new(0);
let id: u64 = generator.generate();
或者使用线程安全的 sync::Generator
类型(需要可选的 sync
功能)
use snowflaked::sync::Generator;
static GENERATOR: Generator = Generator::new(0);
fn generate_id() -> u64 {
GENERATOR.generate()
}
使用自定义雪花类型
可以使用 Snowflake
trait 定义自定义雪花类型。该trait目前为 u64
和 i64
实现,可以用来定义你的自定义类型
use snowflaked::Snowflake;
struct UserId(u64);
impl Snowflake for UserId {
fn from_parts(timestamp: u64, instance: u64, sequence: u64) -> Self {
Self(u64::from_parts(timestamp, instance, sequence))
}
fn timestamp(&self) -> u64 {
self.0.timestamp()
}
fn instance(&self) -> u64 {
self.0.instance()
}
fn sequence(&self) -> u64 {
self.0.sequence()
}
}
许可证
根据您的选择,许可协议为
依赖
~0–26MB
~329K SLoC