func (api *API) NewRowScanner(rows *sql.Rows) *RowScanner {
	return &RowScanner{RowScanner: api.dbscanAPI.NewRowScanner(rows)}
}
NewRowScanner returns a new RowScanner instance.
package sqlscan
import (
	"context"
	"database/sql"
	"github.com/pkg/errors"
	"github.com/georgysavva/scany/dbscan"
)
type Querier interface {
	QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
}
var (
	_ Querier = &sql.DB{}
	_ Querier = &sql.Conn{}
	_ Querier = &sql.Tx{}
)
func Select(ctx context.Context, db Querier, dst interface{}, query string, args ...interface{}) error {
	return errors.WithStack(DefaultAPI.Select(ctx, db, dst, query, args...))
}
func Get(ctx context.Context, db Querier, dst interface{}, query string, args ...interface{}) error {
	return errors.WithStack(DefaultAPI.Get(ctx, db, dst, query, args...))
}
func ScanAll(dst interface{}, rows *sql.Rows) error {
	return errors.WithStack(DefaultAPI.ScanAll(dst, rows))
}
func ScanOne(dst interface{}, rows *sql.Rows) error {
	return errors.WithStack(DefaultAPI.ScanOne(dst, rows))
}
type RowScanner struct {
	*dbscan.RowScanner
}
func NewRowScanner(rows *sql.Rows) *RowScanner {
	return DefaultAPI.NewRowScanner(rows)
}
func ScanRow(dst interface{}, rows *sql.Rows) error {
	return DefaultAPI.ScanRow(dst, rows)
}
type API struct {
	dbscanAPI *dbscan.API
}
func NewAPI(dbscanAPI *dbscan.API) *API {
	api := &API{dbscanAPI: dbscanAPI}
	return api
}
func (api *API) Select(ctx context.Context, db Querier, dst interface{}, query string, args ...interface{}) error {
	rows, err := db.QueryContext(ctx, query, args...)
	if err != nil {
		return errors.Wrap(err, "scany: query multiple result rows")
	}
	err = api.ScanAll(dst, rows)
	return errors.WithStack(err)
}
func (api *API) Get(ctx context.Context, db Querier, dst interface{}, query string, args ...interface{}) error {
	rows, err := db.QueryContext(ctx, query, args...)
	if err != nil {
		return errors.Wrap(err, "scany: query one result row")
	}
	err = api.ScanOne(dst, rows)
	return errors.WithStack(err)
}
func (api *API) ScanAll(dst interface{}, rows *sql.Rows) error {
	err := api.dbscanAPI.ScanAll(dst, rows)
	return errors.WithStack(err)
}
func (api *API) ScanOne(dst interface{}, rows *sql.Rows) error {
	err := api.dbscanAPI.ScanOne(dst, rows)
	if dbscan.NotFound(err) {
		return errors.WithStack(sql.ErrNoRows)
	}
	return errors.WithStack(err)
}
func NotFound(err error) bool {
	return errors.Is(err, sql.ErrNoRows)
}