#[derive(Debug, Clone, PartialEq, Default)]
pub struct IdGeneratorOptions {
pub method: Option<u8>,
pub base_time: Option<i64>,
pub worker_id: Option<u32>,
pub worker_id_bit_len: Option<u8>,
pub seq_bit_len: Option<u8>,
pub max_seq_num: Option<u32>,
pub min_seq_num: Option<u32>,
pub top_over_cost_count: Option<u32>,
}
impl IdGeneratorOptions {
pub fn new() -> Self {
IdGeneratorOptions {
method: None,
base_time: None,
worker_id: None,
worker_id_bit_len: None,
seq_bit_len: None,
max_seq_num: None,
min_seq_num: None,
top_over_cost_count: None,
}
}
pub fn method(mut self, method: u8) -> Self {
self.method = Some(method);
self
}
pub fn base_time(mut self, base_time: i64) -> Self {
self.base_time = Some(base_time);
self
}
pub fn worker_id(mut self, worker_id: u32) -> Self {
self.worker_id = Some(worker_id);
self
}
pub fn worker_id_bit_len(mut self, worker_id_bit_len: u8) -> Self {
self.worker_id_bit_len = Some(worker_id_bit_len);
self
}
pub fn seq_bit_len(mut self, seq_bit_len: u8) -> Self {
self.seq_bit_len = Some(seq_bit_len);
self
}
pub fn max_seq_num(mut self, max_seq_num: u32) -> Self {
self.max_seq_num = Some(max_seq_num);
self
}
pub fn min_seq_num(mut self, min_seq_num: u32) -> Self {
self.min_seq_num = Some(min_seq_num);
self
}
pub fn top_over_cost_count(mut self, top_over_cost_count: u32) -> Self {
self.top_over_cost_count = Some(top_over_cost_count);
self
}
}