removed corpix/reflect, use github.com/corpix/reflect
This commit is contained in:
parent
7ca2a3f245
commit
c06889aa8c
1153
reflect/convert.go
1153
reflect/convert.go
File diff suppressed because it is too large
Load Diff
|
@ -1,41 +0,0 @@
|
||||||
package reflect
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"reflect"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type ErrCanNotConvertType struct {
|
|
||||||
value interface{}
|
|
||||||
from reflect.Type
|
|
||||||
to reflect.Type
|
|
||||||
reason []string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e ErrCanNotConvertType) Error() string {
|
|
||||||
var (
|
|
||||||
reason = strings.Join(e.reason, ", ")
|
|
||||||
)
|
|
||||||
|
|
||||||
if reason != "" {
|
|
||||||
reason = ", reason: " + reason
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"Can not convert '%#v' of type '%s' to '%s'%s",
|
|
||||||
e.value,
|
|
||||||
e.from,
|
|
||||||
e.to,
|
|
||||||
reason,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewErrCanNotConvertType(value interface{}, from reflect.Type, to reflect.Type, reason ...string) ErrCanNotConvertType {
|
|
||||||
return ErrCanNotConvertType{
|
|
||||||
value: value,
|
|
||||||
from: from,
|
|
||||||
to: to,
|
|
||||||
reason: reason,
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
package reflect
|
|
||||||
|
|
||||||
import (
|
|
||||||
"reflect"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Indirect(v interface{}) interface{} {
|
|
||||||
if v == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return IndirectValue(reflect.ValueOf(v)).Interface()
|
|
||||||
}
|
|
||||||
|
|
||||||
func IndirectValue(reflectValue reflect.Value) reflect.Value {
|
|
||||||
if reflectValue.Kind() == reflect.Ptr {
|
|
||||||
return reflectValue.Elem()
|
|
||||||
}
|
|
||||||
return reflectValue
|
|
||||||
}
|
|
||||||
|
|
||||||
func IndirectType(reflectType reflect.Type) reflect.Type {
|
|
||||||
if reflectType == TypeInvalid {
|
|
||||||
return TypeInvalid
|
|
||||||
}
|
|
||||||
|
|
||||||
if reflectType.Kind() == reflect.Ptr {
|
|
||||||
return reflectType.Elem()
|
|
||||||
}
|
|
||||||
return reflectType
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
package reflect
|
|
||||||
|
|
||||||
import (
|
|
||||||
"reflect"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
Invalid = reflect.Invalid
|
|
||||||
Bool = reflect.Bool
|
|
||||||
Int = reflect.Int
|
|
||||||
Int8 = reflect.Int8
|
|
||||||
Int16 = reflect.Int16
|
|
||||||
Int32 = reflect.Int32
|
|
||||||
Int64 = reflect.Int64
|
|
||||||
Uint = reflect.Uint
|
|
||||||
Uint8 = reflect.Uint8
|
|
||||||
Uint16 = reflect.Uint16
|
|
||||||
Uint32 = reflect.Uint32
|
|
||||||
Uint64 = reflect.Uint64
|
|
||||||
Uintptr = reflect.Uintptr
|
|
||||||
Float32 = reflect.Float32
|
|
||||||
Float64 = reflect.Float64
|
|
||||||
Complex64 = reflect.Complex64
|
|
||||||
Complex128 = reflect.Complex128
|
|
||||||
Array = reflect.Array
|
|
||||||
Chan = reflect.Chan
|
|
||||||
Func = reflect.Func
|
|
||||||
Interface = reflect.Interface
|
|
||||||
Map = reflect.Map
|
|
||||||
Ptr = reflect.Ptr
|
|
||||||
Slice = reflect.Slice
|
|
||||||
String = reflect.String
|
|
||||||
Struct = reflect.Struct
|
|
||||||
UnsafePointer = reflect.UnsafePointer
|
|
||||||
)
|
|
|
@ -4,51 +4,6 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
TypeOf = reflect.TypeOf
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
Types = []reflect.Type{
|
|
||||||
TypeBool,
|
|
||||||
TypeInt,
|
|
||||||
TypeInt8,
|
|
||||||
TypeInt16,
|
|
||||||
TypeInt32,
|
|
||||||
TypeInt64,
|
|
||||||
TypeUint,
|
|
||||||
TypeUint8,
|
|
||||||
TypeUint16,
|
|
||||||
TypeUint32,
|
|
||||||
TypeUint64,
|
|
||||||
TypeFloat32,
|
|
||||||
TypeFloat64,
|
|
||||||
TypeComplex64,
|
|
||||||
TypeComplex128,
|
|
||||||
TypeUintptr,
|
|
||||||
TypeString,
|
|
||||||
}
|
|
||||||
|
|
||||||
TypeInvalid = reflect.Type(nil)
|
|
||||||
TypeBool = reflect.TypeOf(false)
|
|
||||||
TypeInt = reflect.TypeOf(int(0))
|
|
||||||
TypeInt8 = reflect.TypeOf(int8(0))
|
|
||||||
TypeInt16 = reflect.TypeOf(int16(0))
|
|
||||||
TypeInt32 = reflect.TypeOf(int32(0))
|
|
||||||
TypeInt64 = reflect.TypeOf(int64(0))
|
|
||||||
TypeUint = reflect.TypeOf(uint(0))
|
|
||||||
TypeUint8 = reflect.TypeOf(uint8(0))
|
|
||||||
TypeUint16 = reflect.TypeOf(uint16(0))
|
|
||||||
TypeUint32 = reflect.TypeOf(uint32(0))
|
|
||||||
TypeUint64 = reflect.TypeOf(uint64(0))
|
|
||||||
TypeFloat32 = reflect.TypeOf(float32(0))
|
|
||||||
TypeFloat64 = reflect.TypeOf(float64(0))
|
|
||||||
TypeComplex64 = reflect.TypeOf(complex64(0))
|
|
||||||
TypeComplex128 = reflect.TypeOf(complex128(0))
|
|
||||||
TypeUintptr = reflect.TypeOf(uintptr(0))
|
|
||||||
TypeString = reflect.TypeOf(string(""))
|
|
||||||
)
|
|
||||||
|
|
||||||
func IsTypeKind(t reflect.Type, kind reflect.Kind, removePtr bool) bool {
|
func IsTypeKind(t reflect.Type, kind reflect.Kind, removePtr bool) bool {
|
||||||
if reflect.Ptr == t.Kind() {
|
if reflect.Ptr == t.Kind() {
|
||||||
if removePtr {
|
if removePtr {
|
||||||
|
@ -66,7 +21,3 @@ func GetTypeInfo(t reflect.Type) (realType reflect.Type, pkgName string, name st
|
||||||
|
|
||||||
return t, t.PkgPath(), t.Name()
|
return t, t.PkgPath(), t.Name()
|
||||||
}
|
}
|
||||||
|
|
||||||
func ConvertStringToType() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user