1
0
forked from extern/smegmesh
smegmesh/pkg/lib/id.go

38 lines
683 B
Go
Raw Normal View History

package lib
import (
"github.com/anandvarma/namegen"
"github.com/google/uuid"
"github.com/lithammer/shortuuid"
)
// IdGenerator generates unique ids
type IdGenerator interface {
// GetId generates a unique ID or an error if something went wrong
GetId() (string, error)
}
type UUIDGenerator struct {
}
func (g *UUIDGenerator) GetId() (string, error) {
id := uuid.New()
return id.String(), nil
}
type ShortIDGenerator struct {
}
func (g *ShortIDGenerator) GetId() (string, error) {
id := shortuuid.New()
return id, nil
}
type IDNameGenerator struct {
}
func (i *IDNameGenerator) GetId() (string, error) {
name_schema := namegen.New()
return name_schema.Get(), nil
}