diff options
Diffstat (limited to 'model/uuid.go')
-rw-r--r-- | model/uuid.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/model/uuid.go b/model/uuid.go new file mode 100644 index 0000000..f072d92 --- /dev/null +++ b/model/uuid.go @@ -0,0 +1,28 @@ +package model
+
+import (
+ sqldriver "database/sql/driver"
+ "github.com/google/uuid"
+)
+
+type UUID struct {
+ payload uuid.UUID
+}
+
+func NewUUID() UUID {
+ id, _ := uuid.NewRandom()
+ return UUID { payload: id }
+}
+
+func (self UUID) Value() (sqldriver.Value, error) {
+ return self.payload.MarshalBinary()
+}
+
+func (self *UUID) Scan(value any) error {
+ return self.payload.Scan(value)
+}
+
+func (self UUID) String() string {
+ return self.payload.String()
+}
+
|