package uuid import ( "github.com/google/uuid" ) type UUID struct { uuid.UUID } func Sort(a, b UUID) (UUID, UUID) { for i := 0; i < len(a.UUID); i++ { if a.UUID[i] < b.UUID[i] { return a, b } if a.UUID[i] > b.UUID[i] { return b, a } } return a, b } func (u *UUID) UnmarshalParam(param string) error { parsed, err := uuid.Parse(param) if err != nil { return err } u.UUID = parsed return nil } func New() UUID { id := UUID{} id.UUID = uuid.New() return id } func MustParse(s string) UUID { id := UUID{} id.UUID = uuid.MustParse(s) return id } func Parse(s string) (UUID, error) { id := UUID{} u, err := uuid.Parse(s) id.UUID = u return id, err } var Nil UUID = UUID{UUID: uuid.Nil}