Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save alphazero/924845 to your computer and use it in GitHub Desktop.
Save alphazero/924845 to your computer and use it in GitHub Desktop.
diff --git a/src/pkg/redis/reflect.go b/src/pkg/redis/reflect.go
index b9f2985..25a43d2 100644
--- a/src/pkg/redis/reflect.go
+++ b/src/pkg/redis/reflect.go
@@ -16,7 +16,7 @@
package redis
import (
- "reflect";
+ "reflect"
)
// ----------------------------------------------------------------------------
@@ -25,47 +25,48 @@ import (
// (independent) little package as using Go reflection is quite tedious.
// ----------------------------------------------------------------------------
-func ToByteSliceArray (v *reflect.StructValue) (bsa [][]byte, ok bool) {
- n:= v.NumField();
- bsa = make([][]byte, n);
- for i:=0; i<n; i++ {
- bsa[i], ok = GetByteArrayAtIndex (v, i);
+func ToByteSliceArray(v reflect.Value) (bsa [][]byte, ok bool) {
+ n := v.NumField()
+ bsa = make([][]byte, n)
+ for i := 0; i < n; i++ {
+ bsa[i], ok = GetByteArrayAtIndex(v, i)
if !ok {
- if debug() {}
- break;
+ if debug() {
+ }
+ break
}
}
- return;
+ return
}
// TODO: document me
//
-func GetByteArrayAtIndex(v *reflect.StructValue, i int) (arr []byte, ok bool){
- field := v.Field(i);
- return GetByteArray (field);
+func GetByteArrayAtIndex(v reflect.Value, i int) (arr []byte, ok bool) {
+ field := v.Field(i)
+ return GetByteArray(field)
}
// TODO: document me
//
-func GetByteArray (v reflect.Value) (arr []byte, ok bool) {
- switch v := v.(type) {
- case reflect.ArrayOrSliceValue:
- aosv := reflect.ArrayOrSliceValue(v);
- arr = make([]byte, aosv.Len());
- for i:=0; i<aosv.Len();i++ {
- arr[i] = uint8(aosv.Elem(i).(*reflect.UintValue).Get())
- }
- return arr, true;
+func GetByteArray(v reflect.Value) (arr []byte, ok bool) {
+ switch v.Kind() {
+ case reflect.Array, reflect.Slice:
+ aosv := reflect.Value(v)
+ arr = make([]byte, aosv.Len())
+ for i := 0; i < aosv.Len(); i++ {
+ arr[i] = uint8(aosv.Elem(i).Uint())
+ }
+ return arr, true
}
- return;
+ return
}
// TODO: document me
//
-func GetByteArrayLen (v reflect.Value) (len int, ok bool) {
- switch v := v.(type) {
- case reflect.ArrayOrSliceValue:
- aosv := reflect.ArrayOrSliceValue(v);
- return aosv.Len(), true;
+func GetByteArrayLen(v reflect.Value) (len int, ok bool) {
+ switch v.Kind() {
+ case reflect.Array, reflect.Slice:
+ aosv := reflect.Value(v)
+ return aosv.Len(), true
}
- return;
+ return
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment