41 lines
704 B
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())
|
|
}
|
|
}
|