Sonyflake (sonyflake_ex v1.0.0)
Documentation for Sonyflake
.
Link to this section Summary
Link to this section Functions
Link to this function
current_elapsed_time(sonyflake)
Specs
current_elapsed_time(%Sonyflake{ elapsed_time: term(), machine_id: term(), msb: term(), sequence: term(), start_time: non_neg_integer() }) :: non_neg_integer()
Get time elapsed since the SonyFlake ID generator was initialised.
Link to this function
decompose(id)
Specs
decompose(non_neg_integer()) :: [ {:id, non_neg_integer()} | {:machine_id, non_neg_integer()} | {:msb, non_neg_integer()} | {:sequence, non_neg_integer()} | {:time, non_neg_integer()}, ... ]
Decompose a generated sonyflake id back to its components.
Link to this function
new()
Specs
new() :: %Sonyflake{ elapsed_time: 0, machine_id: non_neg_integer(), msb: 0, sequence: 255, start_time: non_neg_integer() }
Create an instance of Sonyflake
unique ID generator.
Link to this function
new(setting)
Specs
new(%Sonyflake.Setting{ machine_id: non_neg_integer(), start_time: non_neg_integer() }) :: nil | %Sonyflake{ elapsed_time: 0, machine_id: non_neg_integer(), msb: 0, sequence: 255, start_time: non_neg_integer() }
Create an instance of Sonyflake
unique ID generator, using a predetermined
setting.
Link to this function
next_id(sonyflake)
Specs
next_id(%Sonyflake{ elapsed_time: non_neg_integer(), machine_id: non_neg_integer(), msb: non_neg_integer(), sequence: non_neg_integer(), start_time: non_neg_integer() }) :: {:ok, %Sonyflake{ elapsed_time: non_neg_integer(), machine_id: non_neg_integer(), msb: non_neg_integer(), sequence: non_neg_integer(), start_time: non_neg_integer() }, non_neg_integer()}
Generates and returns the next unique ID.
Raises a TimeoutError
after the SonyFlake
time overflows.