ids_service 2.1.3

Library that allows to generate unique Ids.
Documentation
// SPDX-License-Identifier: MIT
//! Comprehensive example for `rust_hash`.
//! This example requires the `rust` or `all` feature.

#[cfg(feature = "rust")]
use ids_service::common::*;
#[cfg(feature = "rust")]
use ids_service::rust_hash::*;
use simplelog::{Config, LevelFilter, SimpleLogger};

fn main() {
    let _ = SimpleLogger::init(LevelFilter::Info, Config::default());

    let mut ids = IdsService::default();
    ids.start();

    let _ = ids.filled_at_percent_event(10).recv();
    println!("u64    : {}", ids.get_id());
    println!(
        "cached : {}",
        ids.get_id_from_cache().expect("cache non-empty")
    );
    println!("cache len: {}", ids.get_cache_len());

    ids.set_cache_size(150_000);
    let _ = ids.filled_event().recv();
    println!("after resize cache len: {}", ids.get_cache_len());

    ids.stop();

    // Iterator usage
    let mut ids2 = IdsService::new(200, Some(4));
    ids2.start();
    let _ = ids2.filled_event().recv();
    for id in ids2.take(5) {
        println!("iter id: {}", id);
    }
}