package bun

import (
	
	
	
)

type scanModel struct {
	db *DB

	dest      []interface{}
	scanIndex int
}

var _ model = (*scanModel)(nil)

func ( *DB,  []interface{}) *scanModel {
	return &scanModel{
		db:   ,
		dest: ,
	}
}

func ( *scanModel) () interface{} {
	return .dest
}

func ( *scanModel) ( context.Context,  *sql.Rows) (int, error) {
	if !.Next() {
		return 0, .Err()
	}

	 := makeDest(, len(.dest))

	.scanIndex = 0
	if  := .Scan(...);  != nil {
		return 0, 
	}

	return 1, nil
}

func ( *scanModel) ( context.Context,  *sql.Rows) error {
	return .Scan(.dest...)
}

func ( *scanModel) ( interface{}) error {
	 := reflect.ValueOf(.dest[.scanIndex])
	.scanIndex++

	 := .db.dialect.Scanner(.Type())
	return (, )
}