Skip to content

❄️ A simple, dependency-free snowflake generation library

License

Notifications You must be signed in to change notification settings

Project-Sparrow/snowflake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

snowflake

GoDoc

Package snowflake provides a simple snowflake ID generator along with interface implementations to make it easy to use with database/sql and encoding/json.

Functions

func Init

func Init(e time.Time, w, p int)

Init initializes the Snowflake generator. This MUST be called before any calls to Generate.

Types

type NullSnowflake struct { ... }

NullSnowflake is a nullable Snowflake

func NewNullSnowflake(s Snowflake, valid bool) NullSnowflake

NewNullSnowflake creates a new NullSnowflake

type Snowflake uint64

Snowflake represents a single Snowflake ID.

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(s string) (Snowflake, error)

SnowflakeFromString attempts to parse a Snowflake from a string.