pub struct SnowflakeIdGenerator {
pub machine_id: i32,
pub node_id: i32,
/* private fields */
}Expand description
The SnowflakeIdGenerator type is snowflake algorithm wrapper.
Fields§
§machine_id: i32machine_id, is use to supplement id machine or sectionalization attribute.
node_id: i32node_id, is use to supplement id machine-node attribute.
Implementations§
Source§impl SnowflakeIdGenerator
impl SnowflakeIdGenerator
Sourcepub fn new(machine_id: i32, node_id: i32) -> SnowflakeIdGenerator
pub fn new(machine_id: i32, node_id: i32) -> SnowflakeIdGenerator
Constructs a new SnowflakeIdGenerator using the UNIX epoch.
Please make sure that machine_id and node_id is small than 32(2^5);
§Examples
use snowflake::SnowflakeIdGenerator;
let id_generator = SnowflakeIdGenerator::new(1, 1);Sourcepub fn with_epoch(
machine_id: i32,
node_id: i32,
epoch: SystemTime,
) -> SnowflakeIdGenerator
pub fn with_epoch( machine_id: i32, node_id: i32, epoch: SystemTime, ) -> SnowflakeIdGenerator
Constructs a new SnowflakeIdGenerator using the specified epoch.
Please make sure that machine_id and node_id is small than 32(2^5);
§Examples
use std::time::{Duration, UNIX_EPOCH};
use snowflake::SnowflakeIdGenerator;
// 1 January 2015 00:00:00
let discord_epoch = UNIX_EPOCH + Duration::from_millis(1420070400000);
let id_generator = SnowflakeIdGenerator::with_epoch(1, 1, discord_epoch);Sourcepub fn real_time_generate(&mut self) -> i64
pub fn real_time_generate(&mut self) -> i64
The real_time_generate keep id generate time is eq call method time.
§Examples
use snowflake::SnowflakeIdGenerator;
let mut id_generator = SnowflakeIdGenerator::new(1, 1);
id_generator.real_time_generate();Sourcepub fn generate(&mut self) -> i64
pub fn generate(&mut self) -> i64
The basic guarantee time punctuality.
Basic guarantee time punctuality. sometimes one millis can’t use up 4096 ID, the property of the ID isn’t real-time. But setting time after every 4096 calls.
§Examples
use snowflake::SnowflakeIdGenerator;
let mut id_generator = SnowflakeIdGenerator::new(1, 1);
id_generator.generate();Sourcepub fn lazy_generate(&mut self) -> i64
pub fn lazy_generate(&mut self) -> i64
The lazy generate.
Lazy generate. Just start time record last_time_millis it consume every millis ID. Maybe faster than standing time.
§Examples
use snowflake::SnowflakeIdGenerator;
let mut id_generator = SnowflakeIdGenerator::new(1, 1);
id_generator.lazy_generate();Trait Implementations§
Source§impl Clone for SnowflakeIdGenerator
impl Clone for SnowflakeIdGenerator
Source§fn clone(&self) -> SnowflakeIdGenerator
fn clone(&self) -> SnowflakeIdGenerator
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more