Skip to content

Instantly share code, notes, and snippets.

@mattatcha
Forked from codegangsta/utils.go
Created May 27, 2014 13:45
Show Gist options
  • Save mattatcha/403f1b9c3341aa358973 to your computer and use it in GitHub Desktop.
Save mattatcha/403f1b9c3341aa358973 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