Skip to content

Instantly share code, notes, and snippets.

@codegangsta
Created May 20, 2014 17:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save codegangsta/6d539b968b563c1a51f8 to your computer and use it in GitHub Desktop.
Save codegangsta/6d539b968b563c1a51f8 to your computer and use it in GitHub Desktop.
package util
import (
"crypto/rand"
"fmt"
)
type UUID [16]byte
// create a new uuid v4
func NewUUID() *UUID {
u := &UUID{}
_, err := rand.Read(u[:16])
if err != nil {
panic(err)
}
u[8] = (u[8] | 0x80) & 0xBf
u[6] = (u[6] | 0x40) & 0x4f
return u
}
func (u *UUID) String() string {
return fmt.Sprintf("%x-%x-%x-%x-%x", u[:4], u[4:6], u[6:8], u[8:10], u[10:])
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment