@@ -123,13 +123,13 @@ type baseField interface {
123
123
generateCopyToValue (sb * strings.Builder )
124
124
}
125
125
126
- type sliceField struct {
126
+ type slicePtrField struct {
127
127
fieldName string
128
128
originFieldName string
129
- returnSlice * sliceStruct
129
+ returnSlice * slicePtrStruct
130
130
}
131
131
132
- func (sf * sliceField ) generateAccessors (ms baseStruct , sb * strings.Builder ) {
132
+ func (sf * slicePtrField ) generateAccessors (ms baseStruct , sb * strings.Builder ) {
133
133
sb .WriteString (os .Expand (accessorSliceTemplate , func (name string ) string {
134
134
switch name {
135
135
case "structName" :
@@ -146,7 +146,7 @@ func (sf *sliceField) generateAccessors(ms baseStruct, sb *strings.Builder) {
146
146
}))
147
147
}
148
148
149
- func (sf * sliceField ) generateAccessorsTest (ms baseStruct , sb * strings.Builder ) {
149
+ func (sf * slicePtrField ) generateAccessorsTest (ms baseStruct , sb * strings.Builder ) {
150
150
sb .WriteString (os .Expand (accessorsSliceTestTemplate , func (name string ) string {
151
151
switch name {
152
152
case "structName" :
@@ -161,15 +161,63 @@ func (sf *sliceField) generateAccessorsTest(ms baseStruct, sb *strings.Builder)
161
161
}))
162
162
}
163
163
164
- func (sf * sliceField ) generateSetWithTestValue (sb * strings.Builder ) {
164
+ func (sf * slicePtrField ) generateSetWithTestValue (sb * strings.Builder ) {
165
165
sb .WriteString ("\t fillTest" + sf .returnSlice .structName + "(tv." + sf .fieldName + "())" )
166
166
}
167
167
168
- func (sf * sliceField ) generateCopyToValue (sb * strings.Builder ) {
168
+ func (sf * slicePtrField ) generateCopyToValue (sb * strings.Builder ) {
169
169
sb .WriteString ("\t ms." + sf .fieldName + "().CopyTo(dest." + sf .fieldName + "())" )
170
170
}
171
171
172
- var _ baseField = (* sliceField )(nil )
172
+ var _ baseField = (* slicePtrField )(nil )
173
+
174
+ type sliceValueField struct {
175
+ fieldName string
176
+ originFieldName string
177
+ returnSlice * slicePtrStruct
178
+ }
179
+
180
+ func (sf * sliceValueField ) generateAccessors (ms baseStruct , sb * strings.Builder ) {
181
+ sb .WriteString (os .Expand (accessorSliceTemplate , func (name string ) string {
182
+ switch name {
183
+ case "structName" :
184
+ return ms .getName ()
185
+ case "fieldName" :
186
+ return sf .fieldName
187
+ case "returnType" :
188
+ return sf .returnSlice .structName
189
+ case "originFieldName" :
190
+ return sf .originFieldName
191
+ default :
192
+ panic (name )
193
+ }
194
+ }))
195
+ }
196
+
197
+ func (sf * sliceValueField ) generateAccessorsTest (ms baseStruct , sb * strings.Builder ) {
198
+ sb .WriteString (os .Expand (accessorsSliceTestTemplate , func (name string ) string {
199
+ switch name {
200
+ case "structName" :
201
+ return ms .getName ()
202
+ case "fieldName" :
203
+ return sf .fieldName
204
+ case "returnType" :
205
+ return sf .returnSlice .structName
206
+ default :
207
+ panic (name )
208
+ }
209
+ }))
210
+ }
211
+
212
+ func (sf * sliceValueField ) generateSetWithTestValue (sb * strings.Builder ) {
213
+ sb .WriteString ("\t fillTest" + sf .returnSlice .structName + "(tv." + sf .fieldName + "())" )
214
+ }
215
+
216
+ func (sf * sliceValueField ) generateCopyToValue (sb * strings.Builder ) {
217
+ sb .WriteString ("\t ms." + sf .fieldName + "().CopyTo(dest." + sf .fieldName + "())" )
218
+ }
219
+
220
+ var _ baseField = (* sliceValueField )(nil )
173
221
174
222
type messagePtrField struct {
175
223
fieldName string
0 commit comments