21 lines
525 B
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{}
|
|
}
|