github.com/RevenueMonster/sqlike@v1.0.6/sql/instrumented/rows.go (about) 1 package instrumented 2 3 import ( 4 "context" 5 "database/sql/driver" 6 "reflect" 7 ) 8 9 // Rows : 10 type Rows interface { 11 driver.RowsNextResultSet 12 ColumnTypeScanType(index int) reflect.Type 13 } 14 15 type wrappedRows struct { 16 ctx context.Context 17 itpr Interceptor 18 rows Rows 19 } 20 21 var _ Rows = (*wrappedRows)(nil) 22 23 // Columns : 24 func (w wrappedRows) Columns() []string { 25 return w.rows.Columns() 26 } 27 28 // Next : 29 func (w wrappedRows) Next(dest []driver.Value) error { 30 return w.itpr.RowsNext(w.ctx, w.rows, dest) 31 } 32 33 // HasNextResultSet : 34 func (w wrappedRows) HasNextResultSet() bool { 35 return w.rows.HasNextResultSet() 36 } 37 38 // NextResultSet : 39 func (w wrappedRows) NextResultSet() error { 40 return w.rows.NextResultSet() 41 } 42 43 // ColumnTypeScanType : 44 func (w wrappedRows) ColumnTypeScanType(index int) reflect.Type { 45 return w.rows.ColumnTypeScanType(index) 46 } 47 48 // Close : 49 func (w wrappedRows) Close() error { 50 return w.rows.Close() 51 }