in pkg/selector/outputs/tableView.go [108:138]
func createRows(columnsData []*wideColumnsData, instanceTypes []*instancetypes.Details) *[]table.Row {
rows := []table.Row{}
// create a row for each instance type
for i, data := range columnsData {
rowData := table.RowData{}
// create a new row by iterating through the column data
// struct and using struct tags as column keys
structType := reflect.TypeOf(*data)
structValue := reflect.ValueOf(*data)
for i := 0; i < structType.NumField(); i++ {
currField := structType.Field(i)
columnName := currField.Tag.Get(columnTag)
colValue := structValue.Field(i)
rowData[columnName] = getUnderlyingValue(colValue)
}
// add instance type as metaData
rowData[instanceTypeKey] = instanceTypes[i]
// add selected flag as metadata
rowData[selectedKey] = false
newRow := table.NewRow(rowData)
rows = append(rows, newRow)
}
return &rows
}