idworker 1.2.0

A high-performance distributed ID generator library implementing Snowflake algorithm variants with multiple optimization modes for different performance requirements.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::id_worker::IdWorker;
use crate::id_worker_config::{IdWorkerConfig, Mode};
use crate::internal::fast_id_worker::FastIdWorker;
use crate::internal::snowflake_id_worker::SnowflakeIdWorker;
use crate::IdWorkerError;
use std::sync::Arc;

pub struct IdWorkerGenerator {}
impl IdWorkerGenerator {
    pub fn generate(config: IdWorkerConfig) -> Result<Arc<dyn IdWorker>, IdWorkerError> {
        match config.mode {
            Mode::Normal => Ok(Arc::new(SnowflakeIdWorker::new(config))),
            _ => Ok(Arc::new(FastIdWorker::new(config)?)),
        }
    }
}