linstrom/cmd/sample-id-gen/main.go

41 lines
704 B
Go

package main
import (
"flag"
"fmt"
"github.com/google/uuid"
"github.com/nrednav/cuid2"
"github.com/rs/xid"
)
var flagGenerator = flag.String(
"generator",
"xid",
"Which generator to showcase. Options: xid, cuid, uuid. Defaults to xid",
)
func main() {
flag.Parse()
generator := "xid"
switch *flagGenerator {
case "uuid":
generator = "uuid"
case "cuid":
generator = "cuid"
}
fmt.Printf("Generator used: %s\n", generator)
var gen func() string
switch generator {
case "xid":
gen = func() string { return xid.New().String() }
case "uuid":
gen = uuid.NewString
case "cuid":
gen = cuid2.Generate
}
fmt.Println("Generating 10 ids")
for range 10 {
fmt.Println(gen())
}
}