github.com/s-matyukevich/consul@v1.4.5/lib/uuid.go (about) 1 package lib 2 3 import ( 4 "github.com/hashicorp/go-uuid" 5 ) 6 7 // UUIDCheckFunc should determine whether the given UUID is actually 8 // unique and allowed to be used 9 type UUIDCheckFunc func(string) (bool, error) 10 11 func GenerateUUID(checkFn UUIDCheckFunc) (string, error) { 12 for { 13 id, err := uuid.GenerateUUID() 14 if err != nil { 15 return "", err 16 } 17 18 if checkFn == nil { 19 return id, nil 20 } 21 22 if ok, err := checkFn(id); err != nil { 23 return "", err 24 } else if ok { 25 return id, nil 26 } 27 } 28 }