summaryrefslogtreecommitdiffstats
path: root/pkg/types/uuid.go
blob: 02acbcdb13c7128e145100f7238d3c951ed986db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package types

import (
	"database/sql/driver"
	"encoding"
	"github.com/google/uuid"
)

// UUID is like uuid.UUID, but marshals itself binarily (not like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) in SQL context.
type UUID struct {
	uuid.UUID
}

// Value implements driver.Valuer.
func (uuid UUID) Value() (driver.Value, error) {
	return uuid.UUID[:], nil
}

// Assert interface compliance.
var (
	_ encoding.TextUnmarshaler = (*UUID)(nil)
	_ driver.Valuer            = UUID{}
	_ driver.Valuer            = (*UUID)(nil)
)