@@ -167,11 +167,11 @@ func ToSerializerValue(value interface{}) Serializer {
167167func UnwindRowFromModel (columns []Column , data interface {}) []Serializer {
168168 structValue := reflect .Indirect (reflect .ValueOf (data ))
169169
170- row := []Serializer {}
170+ row := make ( []Serializer , len ( columns ))
171171
172172 must .ValueBeOfTypeKind (structValue , reflect .Struct , "jet: data has to be a struct" )
173173
174- for _ , column := range columns {
174+ for i , column := range columns {
175175 columnName := column .Name ()
176176 structFieldName := dbidentifier .ToGoIdentifier (columnName )
177177
@@ -189,7 +189,7 @@ func UnwindRowFromModel(columns []Column, data interface{}) []Serializer {
189189 field = reflect .Indirect (structField ).Interface ()
190190 }
191191
192- row = append ( row , literal (field ) )
192+ row [ i ] = literal (field )
193193 }
194194
195195 return row
@@ -200,50 +200,34 @@ func UnwindRowsFromModels(columns []Column, data interface{}) [][]Serializer {
200200 sliceValue := reflect .Indirect (reflect .ValueOf (data ))
201201 must .ValueBeOfTypeKind (sliceValue , reflect .Slice , "jet: data has to be a slice." )
202202
203- rows := [][]Serializer {}
203+ sliceLen := sliceValue .Len ()
204+ rows := make ([][]Serializer , sliceLen )
204205
205- for i := 0 ; i < sliceValue . Len () ; i ++ {
206+ for i := 0 ; i < sliceLen ; i ++ {
206207 structValue := sliceValue .Index (i )
207208
208- rows = append ( rows , UnwindRowFromModel (columns , structValue .Interface () ))
209+ rows [ i ] = UnwindRowFromModel (columns , structValue .Interface ())
209210 }
210211
211212 return rows
212213}
213214
214215// UnwindRowFromValues func
215216func UnwindRowFromValues (value interface {}, values []interface {}) []Serializer {
216- row := []Serializer {}
217-
218217 allValues := append ([]interface {}{value }, values ... )
219218
220- for _ , val := range allValues {
221- row = append (row , ToSerializerValue (val ))
222- }
223-
224- return row
225- }
226-
227- // UnwindColumns func
228- func UnwindColumns (column1 Column , columns ... Column ) []Column {
229- columnList := []Column {}
219+ row := make ([]Serializer , len (allValues ))
230220
231- if val , ok := column1 .(ColumnList ); ok {
232- for _ , col := range val {
233- columnList = append (columnList , col )
234- }
235- columnList = append (columnList , columns ... )
236- } else {
237- columnList = append (columnList , column1 )
238- columnList = append (columnList , columns ... )
221+ for i , val := range allValues {
222+ row [i ] = ToSerializerValue (val )
239223 }
240224
241- return columnList
225+ return row
242226}
243227
244228// UnwidColumnList func
245229func UnwidColumnList (columns []Column ) []Column {
246- ret := []Column {}
230+ var ret []Column
247231
248232 for _ , col := range columns {
249233 if columnList , ok := col .(ColumnList ); ok {
0 commit comments