15
15
import Foundation
16
16
17
17
/// ProtobufMirror is for mirroring a protobuf Message type.
18
- ///
18
+ ///
19
19
/// By using this object, a Message is being mirrored and it enables us to
20
20
/// get all its children by their fieldNumber and value. Notice that it is not
21
21
/// type safe and it should be used only in cases you need to get values
@@ -58,18 +58,54 @@ struct ReflectionVisitor: Visitor {
58
58
59
59
internal init ( ) { }
60
60
61
+ mutating func visitSingularFloatField( value: Float , fieldNumber: Int ) throws {
62
+ mirror. set ( value, for: fieldNumber)
63
+ }
64
+
61
65
mutating func visitSingularDoubleField( value: Double , fieldNumber: Int ) throws {
62
66
mirror. set ( value, for: fieldNumber)
63
67
}
64
68
69
+ mutating func visitSingularInt32Field( value: Int32 , fieldNumber: Int ) throws {
70
+ mirror. set ( value, for: fieldNumber)
71
+ }
72
+
65
73
mutating func visitSingularInt64Field( value: Int64 , fieldNumber: Int ) throws {
66
74
mirror. set ( value, for: fieldNumber)
67
75
}
68
76
77
+ mutating func visitSingularUInt32Field( value: UInt32 , fieldNumber: Int ) throws {
78
+ mirror. set ( value, for: fieldNumber)
79
+ }
80
+
69
81
mutating func visitSingularUInt64Field( value: UInt64 , fieldNumber: Int ) throws {
70
82
mirror. set ( value, for: fieldNumber)
71
83
}
72
84
85
+ mutating func visitSingularSInt32Field( value: Int32 , fieldNumber: Int ) throws {
86
+ mirror. set ( value, for: fieldNumber)
87
+ }
88
+
89
+ mutating func visitSingularSInt64Field( value: Int64 , fieldNumber: Int ) throws {
90
+ mirror. set ( value, for: fieldNumber)
91
+ }
92
+
93
+ mutating func visitSingularFixed32Field( value: UInt32 , fieldNumber: Int ) throws {
94
+ mirror. set ( value, for: fieldNumber)
95
+ }
96
+
97
+ mutating func visitSingularFixed64Field( value: UInt64 , fieldNumber: Int ) throws {
98
+ mirror. set ( value, for: fieldNumber)
99
+ }
100
+
101
+ mutating func visitSingularSFixed32Field( value: Int32 , fieldNumber: Int ) throws {
102
+ mirror. set ( value, for: fieldNumber)
103
+ }
104
+
105
+ mutating func visitSingularSFixed64Field( value: Int64 , fieldNumber: Int ) throws {
106
+ mirror. set ( value, for: fieldNumber)
107
+ }
108
+
73
109
mutating func visitSingularBoolField( value: Bool , fieldNumber: Int ) throws {
74
110
mirror. set ( value, for: fieldNumber)
75
111
}
@@ -82,11 +118,146 @@ struct ReflectionVisitor: Visitor {
82
118
mirror. set ( value, for: fieldNumber)
83
119
}
84
120
85
- mutating func visitSingularEnumField< E> ( value: E , fieldNumber: Int ) throws {
121
+ mutating func visitSingularEnumField< E: Enum > ( value: E , fieldNumber: Int ) throws {
122
+ mirror. set ( value, for: fieldNumber)
123
+ }
124
+
125
+ mutating func visitSingularMessageField< M: Message > ( value: M , fieldNumber: Int ) throws {
86
126
mirror. set ( value, for: fieldNumber)
87
127
}
88
128
89
- mutating func visitSingularMessageField< M> ( value: M , fieldNumber: Int ) throws {
129
+ mutating func visitSingularGroupField< G: Message > ( value: G , fieldNumber: Int ) throws {
130
+ mirror. set ( value, for: fieldNumber)
131
+ }
132
+
133
+ mutating func visitRepeatedFloatField( value: [ Float ] , fieldNumber: Int ) throws {
134
+ mirror. set ( value, for: fieldNumber)
135
+ }
136
+
137
+ mutating func visitRepeatedDoubleField( value: [ Double ] , fieldNumber: Int ) throws {
138
+ mirror. set ( value, for: fieldNumber)
139
+ }
140
+
141
+ mutating func visitRepeatedInt32Field( value: [ Int32 ] , fieldNumber: Int ) throws {
142
+ mirror. set ( value, for: fieldNumber)
143
+ }
144
+
145
+ mutating func visitRepeatedInt64Field( value: [ Int64 ] , fieldNumber: Int ) throws {
146
+ mirror. set ( value, for: fieldNumber)
147
+ }
148
+
149
+ mutating func visitRepeatedUInt32Field( value: [ UInt32 ] , fieldNumber: Int ) throws {
150
+ mirror. set ( value, for: fieldNumber)
151
+ }
152
+
153
+ mutating func visitRepeatedUInt64Field( value: [ UInt64 ] , fieldNumber: Int ) throws {
154
+ mirror. set ( value, for: fieldNumber)
155
+ }
156
+
157
+ mutating func visitRepeatedSInt32Field( value: [ Int32 ] , fieldNumber: Int ) throws {
158
+ mirror. set ( value, for: fieldNumber)
159
+ }
160
+
161
+ mutating func visitRepeatedSInt64Field( value: [ Int64 ] , fieldNumber: Int ) throws {
162
+ mirror. set ( value, for: fieldNumber)
163
+ }
164
+
165
+ mutating func visitRepeatedFixed32Field( value: [ UInt32 ] , fieldNumber: Int ) throws {
166
+ mirror. set ( value, for: fieldNumber)
167
+ }
168
+
169
+ mutating func visitRepeatedFixed64Field( value: [ UInt64 ] , fieldNumber: Int ) throws {
170
+ mirror. set ( value, for: fieldNumber)
171
+ }
172
+
173
+ mutating func visitRepeatedSFixed32Field( value: [ Int32 ] , fieldNumber: Int ) throws {
174
+ mirror. set ( value, for: fieldNumber)
175
+ }
176
+
177
+ mutating func visitRepeatedSFixed64Field( value: [ Int64 ] , fieldNumber: Int ) throws {
178
+ mirror. set ( value, for: fieldNumber)
179
+ }
180
+
181
+ mutating func visitRepeatedBoolField( value: [ Bool ] , fieldNumber: Int ) throws {
182
+ mirror. set ( value, for: fieldNumber)
183
+ }
184
+
185
+ mutating func visitRepeatedStringField( value: [ String ] , fieldNumber: Int ) throws {
186
+ mirror. set ( value, for: fieldNumber)
187
+ }
188
+
189
+ mutating func visitRepeatedBytesField( value: [ Data ] , fieldNumber: Int ) throws {
190
+ mirror. set ( value, for: fieldNumber)
191
+ }
192
+
193
+ mutating func visitRepeatedEnumField< E: Enum > ( value: [ E ] , fieldNumber: Int ) throws {
194
+ mirror. set ( value, for: fieldNumber)
195
+ }
196
+
197
+ mutating func visitRepeatedGroupField< G: Message > ( value: [ G ] , fieldNumber: Int ) throws {
198
+ mirror. set ( value, for: fieldNumber)
199
+ }
200
+
201
+ mutating func visitPackedFloatField( value: [ Float ] , fieldNumber: Int ) throws {
202
+ mirror. set ( value, for: fieldNumber)
203
+ }
204
+
205
+ mutating func visitPackedDoubleField( value: [ Double ] , fieldNumber: Int ) throws {
206
+ mirror. set ( value, for: fieldNumber)
207
+ }
208
+
209
+ mutating func visitPackedInt32Field( value: [ Int32 ] , fieldNumber: Int ) throws {
210
+ mirror. set ( value, for: fieldNumber)
211
+ }
212
+
213
+ mutating func visitPackedInt64Field( value: [ Int64 ] , fieldNumber: Int ) throws {
214
+ mirror. set ( value, for: fieldNumber)
215
+ }
216
+
217
+ mutating func visitPackedUInt32Field( value: [ UInt32 ] , fieldNumber: Int ) throws {
218
+ mirror. set ( value, for: fieldNumber)
219
+ }
220
+
221
+ mutating func visitPackedUInt64Field( value: [ UInt64 ] , fieldNumber: Int ) throws {
222
+ mirror. set ( value, for: fieldNumber)
223
+ }
224
+
225
+ mutating func visitPackedSInt32Field( value: [ Int32 ] , fieldNumber: Int ) throws {
226
+ mirror. set ( value, for: fieldNumber)
227
+ }
228
+
229
+ mutating func visitPackedSInt64Field( value: [ Int64 ] , fieldNumber: Int ) throws {
230
+ mirror. set ( value, for: fieldNumber)
231
+ }
232
+
233
+ mutating func visitPackedFixed32Field( value: [ UInt32 ] , fieldNumber: Int ) throws {
234
+ mirror. set ( value, for: fieldNumber)
235
+ }
236
+
237
+ mutating func visitPackedFixed64Field( value: [ UInt64 ] , fieldNumber: Int ) throws {
238
+ mirror. set ( value, for: fieldNumber)
239
+ }
240
+
241
+ mutating func visitPackedSFixed32Field( value: [ Int32 ] , fieldNumber: Int ) throws {
242
+ mirror. set ( value, for: fieldNumber)
243
+ }
244
+
245
+ mutating func visitPackedSFixed64Field( value: [ Int64 ] , fieldNumber: Int ) throws {
246
+ mirror. set ( value, for: fieldNumber)
247
+ }
248
+
249
+ mutating func visitPackedBoolField( value: [ Bool ] , fieldNumber: Int ) throws {
250
+ mirror. set ( value, for: fieldNumber)
251
+ }
252
+
253
+ mutating func visitPackedEnumField< E: Enum > ( value: [ E ] , fieldNumber: Int ) throws {
254
+ mirror. set ( value, for: fieldNumber)
255
+ }
256
+
257
+ mutating func visitRepeatedMessageField< M: Message > (
258
+ value: [ M ] ,
259
+ fieldNumber: Int
260
+ ) throws {
90
261
mirror. set ( value, for: fieldNumber)
91
262
}
92
263
0 commit comments