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()) } }