2 个版本
0.1.1 | 2019年8月4日 |
---|---|
0.1.0 | 2019年8月4日 |
#15 in #UID
每月下载量140次
用于 zero4rs
5KB
59 行
rustflake
线程安全的 "Twitter" 雪花算法。
默认情况下,原始的 Twitter 雪花算法格式定义了
- 使用 41 位存储自定义纪元,精确到毫秒
- 使用 10 位存储工作节点和数据中心的详细信息
- 使用 12 位存储序列号
此包允许您自定义自己的纪元以及工作节点/数据中心信息。
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
rustflake = "0.1.0"
并将此内容添加到您的 crate 根目录下
use rustflake;
示例
use rustflake::Snowflake;
fn main() {
let mut snowflake = Snowflake::default();
println!("{}", &snowflake.generate());
}
use rustflake::Snowflake;
fn main() {
// Discord Epoch
// Though those are not "real" discord Ids,
// because discord increases the sequence
// for *every* generated Id on that process
let mut snowflake = Snowflake::new(1420070400000, 1, 1);
println!("{}", &snowflake.generate());
}
use rustflake::Snowflake;
fn main() {
// Using a builder approach
let mut snowflake = Snowflake::default()
.epoch(1_564_790_400_000)
.worker_id(2)
.datacenter_id(3);
println!("{}", &snowflake.generate());
}
依赖项
~1.6–2MB
~32K SLoC