pase/service/ulid.go

21 lines
525 B
Go

package service
import "github.com/oklog/ulid/v2"
// IDGenerator produces unique identifiers for entities.
type IDGenerator interface {
// NewID generates a new unique identifier for entities.
NewID() string
}
// defaultIDGenerator generates ULIDs using crypto/rand entropy.
type defaultIDGenerator struct{}
func (defaultIDGenerator) NewID() string {
return ulid.Make().String()
}
// DefaultIDGenerator returns the standard ULID-based generator.
func DefaultIDGenerator() IDGenerator {
return defaultIDGenerator{}
}