Struct snowflake::SnowflakeIdGenerator
source · [−]Expand description
The SnowflakeIdGenerator
type is snowflake algorithm wrapper.
Fields
machine_id: i32
machine_id, is use to supplement id machine or sectionalization attribute.
node_id: i32
node_id, is use to supplement id machine-node attribute.
Implementations
sourceimpl 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
sourceimpl Clone for SnowflakeIdGenerator
impl Clone for SnowflakeIdGenerator
sourcefn clone(&self) -> SnowflakeIdGenerator
fn clone(&self) -> SnowflakeIdGenerator
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SnowflakeIdGenerator
impl Debug for SnowflakeIdGenerator
impl Copy for SnowflakeIdGenerator
Auto Trait Implementations
impl RefUnwindSafe for SnowflakeIdGenerator
impl Send for SnowflakeIdGenerator
impl Sync for SnowflakeIdGenerator
impl Unpin for SnowflakeIdGenerator
impl UnwindSafe for SnowflakeIdGenerator
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more