/
memorykind.go
253 lines (228 loc) Β· 6.56 KB
/
memorykind.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
/*
* Cadence - The resource-oriented smart contract programming language
*
* Copyright Dapper Labs, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package common
//go:generate go run golang.org/x/tools/cmd/stringer -type=MemoryKind -trimprefix=MemoryKind
// MemoryKind
type MemoryKind uint
const (
MemoryKindUnknown MemoryKind = iota
// Values
MemoryKindAddressValue
MemoryKindStringValue
MemoryKindCharacterValue
MemoryKindNumberValue
MemoryKindArrayValueBase
MemoryKindDictionaryValueBase
MemoryKindCompositeValueBase
MemoryKindSimpleCompositeValueBase
MemoryKindOptionalValue
MemoryKindTypeValue
MemoryKindPathValue
MemoryKindIDCapabilityValue
MemoryKindPathCapabilityValue
MemoryKindPathLinkValue
MemoryKindAccountLinkValue
MemoryKindStorageReferenceValue
MemoryKindAccountReferenceValue
MemoryKindEphemeralReferenceValue
MemoryKindInterpretedFunctionValue
MemoryKindHostFunctionValue
MemoryKindBoundFunctionValue
MemoryKindBigInt
MemoryKindSimpleCompositeValue
MemoryKindPublishedValue
MemoryKindStorageCapabilityControllerValue
MemoryKindAccountCapabilityControllerValue
// Atree Nodes
MemoryKindAtreeArrayDataSlab
MemoryKindAtreeArrayMetaDataSlab
MemoryKindAtreeArrayElementOverhead
MemoryKindAtreeMapDataSlab
MemoryKindAtreeMapMetaDataSlab
MemoryKindAtreeMapElementOverhead
MemoryKindAtreeMapPreAllocatedElement
MemoryKindAtreeEncodedSlab
// Static Types
MemoryKindPrimitiveStaticType
MemoryKindCompositeStaticType
MemoryKindInterfaceStaticType
MemoryKindVariableSizedStaticType
MemoryKindConstantSizedStaticType
MemoryKindDictionaryStaticType
MemoryKindOptionalStaticType
MemoryKindRestrictedStaticType
MemoryKindReferenceStaticType
MemoryKindCapabilityStaticType
MemoryKindFunctionStaticType
// Cadence Values
MemoryKindCadenceVoidValue
MemoryKindCadenceOptionalValue
MemoryKindCadenceBoolValue
MemoryKindCadenceStringValue
MemoryKindCadenceCharacterValue
MemoryKindCadenceAddressValue
MemoryKindCadenceIntValue
MemoryKindCadenceNumberValue
MemoryKindCadenceArrayValueBase
MemoryKindCadenceArrayValueLength
MemoryKindCadenceDictionaryValue
MemoryKindCadenceKeyValuePair
MemoryKindCadenceStructValueBase
MemoryKindCadenceStructValueSize
MemoryKindCadenceResourceValueBase
MemoryKindCadenceAttachmentValueBase
MemoryKindCadenceResourceValueSize
MemoryKindCadenceAttachmentValueSize
MemoryKindCadenceEventValueBase
MemoryKindCadenceEventValueSize
MemoryKindCadenceContractValueBase
MemoryKindCadenceContractValueSize
MemoryKindCadenceEnumValueBase
MemoryKindCadenceEnumValueSize
MemoryKindCadencePathLinkValue
MemoryKindCadenceAccountLinkValue
MemoryKindCadencePathValue
MemoryKindCadenceTypeValue
MemoryKindCadenceIDCapabilityValue
MemoryKindCadencePathCapabilityValue
MemoryKindCadenceFunctionValue
// Cadence Types
MemoryKindCadenceOptionalType
MemoryKindCadenceVariableSizedArrayType
MemoryKindCadenceConstantSizedArrayType
MemoryKindCadenceDictionaryType
MemoryKindCadenceField
MemoryKindCadenceParameter
MemoryKindCadenceTypeParameter
MemoryKindCadenceStructType
MemoryKindCadenceResourceType
MemoryKindCadenceAttachmentType
MemoryKindCadenceEventType
MemoryKindCadenceContractType
MemoryKindCadenceStructInterfaceType
MemoryKindCadenceResourceInterfaceType
MemoryKindCadenceContractInterfaceType
MemoryKindCadenceFunctionType
MemoryKindCadenceReferenceType
MemoryKindCadenceRestrictedType
MemoryKindCadenceCapabilityType
MemoryKindCadenceEnumType
// Misc
MemoryKindRawString
MemoryKindAddressLocation
MemoryKindBytes
MemoryKindVariable
MemoryKindCompositeTypeInfo
MemoryKindCompositeField
MemoryKindInvocation
MemoryKindStorageMap
MemoryKindStorageKey
// Tokens
MemoryKindTypeToken
MemoryKindErrorToken
MemoryKindSpaceToken
// AST nodes
MemoryKindProgram
MemoryKindIdentifier
MemoryKindArgument
MemoryKindBlock
MemoryKindFunctionBlock
MemoryKindParameter
MemoryKindParameterList
MemoryKindTypeParameter
MemoryKindTypeParameterList
MemoryKindTransfer
MemoryKindMembers
MemoryKindTypeAnnotation
MemoryKindDictionaryEntry
MemoryKindFunctionDeclaration
MemoryKindCompositeDeclaration
MemoryKindAttachmentDeclaration
MemoryKindInterfaceDeclaration
MemoryKindEnumCaseDeclaration
MemoryKindFieldDeclaration
MemoryKindTransactionDeclaration
MemoryKindImportDeclaration
MemoryKindVariableDeclaration
MemoryKindSpecialFunctionDeclaration
MemoryKindPragmaDeclaration
MemoryKindAssignmentStatement
MemoryKindBreakStatement
MemoryKindContinueStatement
MemoryKindEmitStatement
MemoryKindExpressionStatement
MemoryKindForStatement
MemoryKindIfStatement
MemoryKindReturnStatement
MemoryKindSwapStatement
MemoryKindSwitchStatement
MemoryKindWhileStatement
MemoryKindRemoveStatement
MemoryKindBooleanExpression
MemoryKindVoidExpression
MemoryKindNilExpression
MemoryKindStringExpression
MemoryKindIntegerExpression
MemoryKindFixedPointExpression
MemoryKindArrayExpression
MemoryKindDictionaryExpression
MemoryKindIdentifierExpression
MemoryKindInvocationExpression
MemoryKindMemberExpression
MemoryKindIndexExpression
MemoryKindConditionalExpression
MemoryKindUnaryExpression
MemoryKindBinaryExpression
MemoryKindFunctionExpression
MemoryKindCastingExpression
MemoryKindCreateExpression
MemoryKindDestroyExpression
MemoryKindReferenceExpression
MemoryKindForceExpression
MemoryKindPathExpression
MemoryKindAttachExpression
MemoryKindConstantSizedType
MemoryKindDictionaryType
MemoryKindFunctionType
MemoryKindInstantiationType
MemoryKindNominalType
MemoryKindOptionalType
MemoryKindReferenceType
MemoryKindRestrictedType
MemoryKindVariableSizedType
MemoryKindPosition
MemoryKindRange
MemoryKindElaboration
MemoryKindActivation
MemoryKindActivationEntries
// sema types
MemoryKindVariableSizedSemaType
MemoryKindConstantSizedSemaType
MemoryKindDictionarySemaType
MemoryKindOptionalSemaType
MemoryKindRestrictedSemaType
MemoryKindReferenceSemaType
MemoryKindCapabilitySemaType
// ordered-map
MemoryKindOrderedMap
MemoryKindOrderedMapEntryList
MemoryKindOrderedMapEntry
// Placeholder kind to allow consistent indexing
// this should always be the last kind
MemoryKindLast
)