Skip to content

Commit b03fc55

Browse files
authored
use correct slice type (#21)
* use correct slice type * add test
1 parent 38944ab commit b03fc55

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

cache/cache_test.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package cache_test
22

33
import (
4-
"github.com/KyberNetwork/kutils/cache"
5-
"github.com/stretchr/testify/require"
64
"testing"
75
"time"
6+
7+
"github.com/KyberNetwork/kutils/cache"
8+
"github.com/stretchr/testify/require"
89
)
910

1011
func TestCache(t *testing.T) {
@@ -70,6 +71,18 @@ func TestCache(t *testing.T) {
7071
require.NoError(t, err)
7172
require.Equal(t, input, result)
7273
})
74+
t.Run("Slice Types", func(t *testing.T) {
75+
sCache := cache.NewCache(ct.config)
76+
key := "sliceTest"
77+
input := []*example{{Name: "pointer", Age: 25, Value: 100}}
78+
err := sCache.Set(key, input, time.Minute)
79+
require.NoError(t, err)
80+
81+
var result []*example
82+
err = sCache.Get(key, &result)
83+
require.NoError(t, err)
84+
require.Equal(t, input, result)
85+
})
7386

7487
t.Run("Non-existent Key", func(t *testing.T) {
7588
sCache := cache.NewCache(ct.config)

cache/ristretto_cache.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func alignTypes(target, value reflect.Value) reflect.Value {
118118

119119
// Handle slices within maps
120120
if v.Kind() == reflect.Slice {
121-
sliceType := reflect.TypeOf([]int{}) // Create the correct slice type
121+
sliceType := value.Type() // Create the correct slice type
122122
newSlice := reflect.MakeSlice(sliceType, v.Len(), v.Cap())
123123

124124
for i := 0; i < v.Len(); i++ {
@@ -138,7 +138,7 @@ func alignTypes(target, value reflect.Value) reflect.Value {
138138

139139
// Handle slice type conversion
140140
if target.Kind() == reflect.Slice && value.Kind() == reflect.Slice {
141-
sliceType := reflect.TypeOf([]int{})
141+
sliceType := value.Type()
142142
newSlice := reflect.MakeSlice(sliceType, value.Len(), value.Cap())
143143
for i := 0; i < value.Len(); i++ {
144144
elem := value.Index(i)

0 commit comments

Comments
 (0)