sf-rs

reimiplement snowflake by rust

Usage

Add this to your Cargo.toml:

toml [dependencies] snowflake = "0.1"

and this to your create root:

rust extern create snowflake_rs;

Generated Code Example

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(); } }

```

License

sf-rs is distributed under the terms of the Apache License (Version 2.0).

See LICENSE for details.

Copyright 2017 wtu-sos