use idgen_rs::{id_generator_options::IdGeneratorOptions, yit_id_helper};
use chrono::{DateTime, Local, TimeZone, Utc};
const WORKER_ID: u16 = 1;
fn main() {
snow_flake_init(WORKER_ID);
let new_id = yit_id_helper::next_id();
println!("new_id: {}", new_id);
let time = yit_id_helper::extract_time(new_id);
let datetime: DateTime<Local> = time.into();
println!("time: {}", datetime.format("%Y-%m-%d %H:%M:%S"));
}
pub fn snow_flake_init(worker_id: u16) {
let mut options = IdGeneratorOptions::new(worker_id);
options.worker_id_bit_length = 10; options.seq_bit_length = 6; let base_time = Utc
.with_ymd_and_hms(2023, 3, 13, 3, 3, 3)
.single()
.expect("Failed to create DateTime<Utc>");
options.base_time = base_time.timestamp_millis() ;
yit_id_helper::set_id_generator(options);
}