github.com/spi-ca/misc@v1.0.1/sqls/helper.go (about)

     1  package sqls
     2  
     3  import "github.com/jmoiron/sqlx"
     4  
     5  // MapRows is a convert function,that converts sqlx.Row to specified interface.
     6  func MapRows[T any](rows *sqlx.Rows, itemGetter func() T) (items []T, err error) {
     7  	defer func() { _ = rows.Close() }()
     8  	for rows.Next() {
     9  		item := itemGetter()
    10  		if err = rows.StructScan(item); err != nil {
    11  			return
    12  		}
    13  		items = append(items, item)
    14  	}
    15  
    16  	err = rows.Err()
    17  	return
    18  }