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: 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

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);

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);

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();

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();

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.