Commit Graph

14 Commits

Author SHA1 Message Date
Monkey 8db6eeed27
feat(scan): scan time.Time sets the default decoding (#2413)
* feat(scan): scan time.Time uses `UnmarshalText(RFC3339)` interface decoding by default
2023-02-07 20:23:39 +08:00
Dimitrij Denissenko 7fa451c740 chore: fewer test dependencies 2023-01-27 15:01:50 +00:00
Monkey a4336cbd43
feat(scan): add Scanner interface (#2317)
Signed-off-by: monkey92t <golang@88.com>
2022-12-24 22:29:45 +08:00
Vladimir Mihailenco 9b6ee9c3cc chore: gofmt all code 2021-09-08 16:52:29 +03:00
Vladimir Mihailenco ed42d3c37b
Add scan struct example (#1870) 2021-08-30 00:37:17 +08:00
heyanfu 14d82a2d93
fix typo (#1788) 2021-06-09 00:58:16 +08:00
monkey92t 27df2313cd
hscan adds support for i386 platform (#1652)
* hscan adds support for i386 platform

Signed-off-by: monkey <monkey92t@gmail.com>

* update go.sum

Signed-off-by: monkey <monkey92t@gmail.com>

* detect overflow of scan

Signed-off-by: monkey <golang@88.com>

* restore the return value type of decoderFunc to error

Signed-off-by: monkey <golang@88.com>

* fix clean

Signed-off-by: monkey <golang@88.com>

* fix clean

Signed-off-by: monkey <golang@88.com>

Co-authored-by: Monkey <monkey@MonkeydeiMac.local>
2021-02-09 14:44:24 +02:00
Vladimir Mihailenco b358584bd3 Fix build 2021-02-04 09:34:10 +02:00
Vladimir Mihailenco bd234b91fe Add StructValue so we don't need temp slices to pass keys and values 2021-02-03 12:45:02 +02:00
Kailash Nadh f9dfc7a949 Refactor scan signature to work with Slice and StringMap cmds 2021-02-02 16:28:10 +05:30
Kailash Nadh a4144ea98e Add SliceCmd.Scan() (hscan pkg) and tests 2021-02-02 13:04:52 +05:30
Vladimir Mihailenco 380ab17274 Fix cleanup 2021-01-29 12:12:47 +02:00
Vladimir Mihailenco 8926f2992a Cleanup 2021-01-29 12:04:39 +02:00
Kailash Nadh 6f96bebac7 Add redis.Scan() to scan results from redis maps into structs.
The package uses reflection to decode default types (int, string
etc.) from Redis map results (key-value pair sequences) into
struct fields where the fields are matched to Redis keys by tags.

Similar to how `encoding/json` allows custom decoders using
`UnmarshalJSON()`, the package supports decoding of arbitrary
types into struct fields by defining a `Decode(string) error`
function on types.

The field/type spec of every struct that's passed to Scan() is
cached in the package so that subsequent scans avoid iteration
and reflection of the struct's fields.
2021-01-28 18:04:38 +05:30