(rows CollectableRow)
| 682 | } |
| 683 | |
| 684 | func (rs *namedStructRowScanner) ScanRow(rows CollectableRow) error { |
| 685 | typ := reflect.TypeOf(rs.ptrToStruct).Elem() |
| 686 | fldDescs := rows.FieldDescriptions() |
| 687 | namedStructFields, err := lookupNamedStructFields(typ, fldDescs) |
| 688 | if err != nil { |
| 689 | return err |
| 690 | } |
| 691 | if !rs.lax && namedStructFields.missingField != "" { |
| 692 | return fmt.Errorf("cannot find field %s in returned row", namedStructFields.missingField) |
| 693 | } |
| 694 | fields := namedStructFields.fields |
| 695 | scanTargets := setupStructScanTargets(rs.ptrToStruct, fields) |
| 696 | return rows.Scan(scanTargets...) |
| 697 | } |
| 698 | |
| 699 | // Map from namedStructFieldMap -> *namedStructFields |
| 700 | var namedStructFieldMap sync.Map |
nothing calls this directly
no test coverage detected