Compare commits

..

No commits in common. "master" and "revert-c06889aa" have entirely different histories.

7 changed files with 18 additions and 28 deletions

View File

@ -24,6 +24,11 @@
# go-tests = true
# unused-packages = true
[[constraint]]
branch = "master"
name = "github.com/corpix/reflect"
[prune]
go-tests = true
unused-packages = true

View File

@ -5,7 +5,7 @@ import (
"fmt"
"reflect"
our "git.loafle.net/overflow/util-go/reflect"
cr "github.com/corpix/reflect"
)
// SetValueWithJSONStringArray set the value of json string array
@ -41,7 +41,7 @@ func SetValueWithJSONStringArray(values []string, targets []interface{}) error {
case reflect.Ptr:
return fmt.Errorf("Type of target[%d] cannot be double ptr, value=%s", indexI, value)
default:
cv, err := our.ConvertToType(value, reflect.TypeOf(target).Elem())
cv, err := cr.ConvertToType(value, reflect.TypeOf(target).Elem())
if nil != err {
return fmt.Errorf("Type conversion of value[%s] has been failed to %s[%d]", value, reflect.TypeOf(target).Elem().Kind(), indexI)
}

View File

@ -5,7 +5,7 @@ import (
"strconv"
)
func ConvertToType(v interface{}, t Type) (interface{}, error) {
func ConvertToType(v interface{}, t reflect.Type) (interface{}, error) {
var (
tt = reflect.TypeOf(v)
vv = reflect.ValueOf(v)
@ -47,11 +47,8 @@ func ConvertToType(v interface{}, t Type) (interface{}, error) {
switch t.Kind() {
case Map:
var (
res = reflect.MakeMapWithSize(
t,
vv.Len(),
)
ck interface{}
res = reflect.MakeMapWithSize(t, len(vv.MapKeys()))
ck interface{}
)
for _, k := range vv.MapKeys() {
ck, err = ConvertToType(

View File

@ -2,13 +2,14 @@ package reflect
import (
"fmt"
"reflect"
"strings"
)
type ErrCanNotConvertType struct {
value interface{}
from Type
to Type
from reflect.Type
to reflect.Type
reason []string
}
@ -30,7 +31,7 @@ func (e ErrCanNotConvertType) Error() string {
)
}
func NewErrCanNotConvertType(value interface{}, from Type, to Type, reason ...string) ErrCanNotConvertType {
func NewErrCanNotConvertType(value interface{}, from reflect.Type, to reflect.Type, reason ...string) ErrCanNotConvertType {
return ErrCanNotConvertType{
value: value,
from: from,

View File

@ -12,14 +12,14 @@ func Indirect(v interface{}) interface{} {
return IndirectValue(reflect.ValueOf(v)).Interface()
}
func IndirectValue(reflectValue Value) Value {
func IndirectValue(reflectValue reflect.Value) reflect.Value {
if reflectValue.Kind() == reflect.Ptr {
return reflectValue.Elem()
}
return reflectValue
}
func IndirectType(reflectType Type) Type {
func IndirectType(reflectType reflect.Type) reflect.Type {
if reflectType == TypeInvalid {
return TypeInvalid
}

View File

@ -8,10 +8,8 @@ var (
TypeOf = reflect.TypeOf
)
type Type = reflect.Type
var (
Types = []Type{
Types = []reflect.Type{
TypeBool,
TypeInt,
TypeInt8,
@ -31,7 +29,7 @@ var (
TypeString,
}
TypeInvalid = Type(nil)
TypeInvalid = reflect.Type(nil)
TypeBool = reflect.TypeOf(false)
TypeInt = reflect.TypeOf(int(0))
TypeInt8 = reflect.TypeOf(int8(0))

View File

@ -1,11 +0,0 @@
package reflect
import (
"reflect"
)
var (
ValueOf = reflect.ValueOf
)
type Value = reflect.Value