-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathop.go
110 lines (85 loc) · 1.87 KB
/
op.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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package deecpy
import (
"reflect"
)
type op interface {
Op()
}
type instructions struct {
ops []op
}
type opCopyMem struct {
Offset uintptr
Size uintptr
}
func (o *opCopyMem) Op() {}
type opPtrDup struct {
Offset uintptr
Size uintptr
UnsafeType uintptr
SubInstructions *instructions
}
func (o *opPtrDup) Op() {}
type opPtrDupMem struct {
Offset uintptr
Size uintptr
UnsafeType uintptr
}
func (o *opPtrDupMem) Op() {}
type opArrayCopy struct {
Offset uintptr
ArrayLen uintptr
ElemSize uintptr
UnsafeElemType uintptr
SubInstructions *instructions
}
func (o *opArrayCopy) Op() {}
type opSliceCopy struct {
Offset uintptr
ElemSize uintptr
UnsafeElemType uintptr
SubInstructions *instructions
}
func (o *opSliceCopy) Op() {}
type opSliceCopyMem struct {
Offset uintptr
ElemSize uintptr
UnsafeElemType uintptr
}
func (o *opSliceCopyMem) Op() {}
type opMapDup struct {
Offset uintptr
ReflectType reflect.Type
MapUnsafeType uintptr
KeySize uintptr
KeyUnsafeType uintptr
KeySubInstructions *instructions
ValueSize uintptr
ValueUnsafeType uintptr
ValueSubInstructions *instructions
}
func (o *opMapDup) Op() {}
type opCopyString struct {
Offset uintptr
}
func (o *opCopyString) Op() {}
type opCopyStruct struct {
Offset uintptr
Size uintptr
SubInstructions *instructions
}
func (o *opCopyStruct) Op() {}
type opCopyInterface struct {
Offset uintptr
}
func (o *opCopyInterface) Op() {}
var _ op = (*opCopyMem)(nil)
var _ op = (*opPtrDup)(nil)
var _ op = (*opPtrDupMem)(nil)
var _ op = (*opArrayCopy)(nil)
var _ op = (*opSliceCopy)(nil)
var _ op = (*opSliceCopyMem)(nil)
var _ op = (*opMapDup)(nil)
var _ op = (*opCopyString)(nil)
var _ op = (*opCopyStruct)(nil)
var _ op = (*opCopyInterface)(nil)