-
Notifications
You must be signed in to change notification settings - Fork 0
/
type.go
89 lines (83 loc) · 1.85 KB
/
type.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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
)
type Type interface {
Align() int
FieldAlign() int
Method(int) Method
MethodByName(string) (Method, bool)
NumMethod() int
Name() string
PkgPath() string
Size() uintptr
String() string
Kind() Kind
Implements(u Type) bool
AssignableTo(u Type) bool
ConvertibleTo(u Type) bool
Comparable() bool
Bits() int
ChanDir() ChanDir
IsVariadic() bool
Elem() Type
Field(i int) StructField
FieldByIndex(index []int) StructField
FieldByName(name string) (StructField, bool)
FieldByNameFunc(match func(string) bool) (StructField, bool)
In(i int) Type
Key() Type
Len() int
NumField() int
NumIn() int
NumOut() int
Out(i int) Type
Addr() uintptr
}
type Method struct {
Name string
PkgPath string
Type Type
Index int
}
type Kind = reflect.Kind
type ChanDir = reflect.ChanDir
type StructTag = reflect.StructTag
type StructField struct {
Name string
PkgPath string
Type Type
Tag StructTag
Offset uintptr
Index []int
Anonymous bool
}