This commit is contained in:
sojung.kim 2024-11-22 14:05:24 +09:00 committed by GitHub
commit 6fa5141190
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 19 additions and 1 deletions

1
go.mod
View File

@ -7,6 +7,7 @@ require (
github.com/bsm/gomega v1.27.10
github.com/cespare/xxhash/v2 v2.2.0
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
github.com/google/uuid v1.6.0
)
retract (

2
go.sum
View File

@ -6,3 +6,5 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=

View File

@ -8,7 +8,7 @@ import (
. "github.com/bsm/ginkgo/v2"
. "github.com/bsm/gomega"
"github.com/google/uuid"
"github.com/redis/go-redis/v9/internal/util"
)
@ -48,6 +48,10 @@ type TimeData struct {
Time *TimeRFC3339Nano `redis:"login"`
}
type UUIDData struct {
ID uuid.UUID `redis:"id"`
}
type i []interface{}
func TestGinkgoSuite(t *testing.T) {
@ -217,4 +221,13 @@ var _ = Describe("Scan", func() {
Expect(Scan(&tt, i{"time"}, i{now.Format(time.RFC3339Nano)})).NotTo(HaveOccurred())
Expect(now.Unix()).To(Equal(tt.Time.Unix()))
})
It("should unmarshal UUID", func() {
var ud UUIDData
testUUID := uuid.New()
Expect(Scan(&ud, i{"id"}, i{testUUID.String()})).NotTo(HaveOccurred())
Expect(ud.ID).To(Equal(testUUID))
})
})

View File

@ -109,6 +109,8 @@ func (s StructValue) Scan(key string, value string) error {
return scan.ScanRedis(value)
case encoding.TextUnmarshaler:
return scan.UnmarshalText(util.StringToBytes(value))
case encoding.BinaryUnmarshaler:
return scan.UnmarshalBinary(util.StringToBytes(value))
}
}