Package snowflake provides a simple snowflake ID generator along with interface implementations to make it easy to use with database/sql and encoding/json.
func Init
func Init(e time.Time, w, p int)
Init initializes the Snowflake generator. This MUST be called before any calls to Generate.
type NullSnowflake
type NullSnowflake struct { ... }
NullSnowflake is a nullable Snowflake
func NewNullSnowflake
func NewNullSnowflake(s Snowflake, valid bool) NullSnowflake
NewNullSnowflake creates a new NullSnowflake
type Snowflake
type Snowflake uint64
Snowflake represents a single Snowflake ID.
func Generate
func Generate() Snowflake
Generate generates a new Snowflake. This function is thread-safe.
package main
import (
"fmt"
"time"
"github.com/Project-Sparrow/snowflake"
)
func main() {
epoch := time.Date(2020, 1, 1, 1, 0, 0, 0, time.UTC)
snowflake.Init(epoch, 1, 1)
fmt.Println(snowflake.Generate())
}
func SnowflakeFromString
func SnowflakeFromString(s string) (Snowflake, error)
SnowflakeFromString attempts to parse a Snowflake from a string.