reimiplement snowflake by rust
Add this to your Cargo.toml:
toml
[dependencies]
snowflake = "0.1"
and this to your create root:
rust
extern create snowflake_rs;
single thread example ```rust extern crate snowflake_rs;
use std::thread; use snowflakers::{SnowFlakeId, STANDARDEPOCH};
fn main() { let mut idgen = SnowFlakeId::new(1, STANDARDEPOCH); println!("{:?}",&idgen); for _ in 1..1000 { let id = idgen.generateid(); assert!(id.isok()); println!("{:?}",id.unwrap()); } }
```
multi thread example ```rust extern crate snowflake_rs;
use std::thread; use snowflakers::{SnowFlakeId, STANDARDEPOCH};
fn main() { let idgen = SnowFlakeId::newmultithread(2, STANDARDEPOCH); let mut ths = Vec::new(); for i in 1 .. 10{ let t = idgen.clone(); ths.push(thread::spawn(move || { for _ in 1..1000 { let mut gen = t.lock().unwrap(); let id = gen.generateid(); assert!(id.isok()); println!("{:?}",id.unwrap()); } })); }
for t in ths { t.join(); } }
```
sf-rs
is distributed under the terms of the Apache License (Version 2.0).
See LICENSE for details.
Copyright 2017 wtu-sos