package orm

import (
	

	
	
)

type sliceModel struct {
	Discard
	slice    reflect.Value
	nextElem func() reflect.Value
	scan     func(reflect.Value, types.Reader, int) error
}

var _ Model = (*sliceModel)(nil)

func ( reflect.Value,  reflect.Type) *sliceModel {
	return &sliceModel{
		slice: ,
		scan:  types.Scanner(),
	}
}

func ( *sliceModel) () error {
	if .slice.IsValid() && .slice.Len() > 0 {
		.slice.Set(.slice.Slice(0, 0))
	}
	return nil
}

func ( *sliceModel) () ColumnScanner {
	return 
}

func ( *sliceModel) ( types.ColumnInfo,  types.Reader,  int) error {
	if .nextElem == nil {
		.nextElem = internal.MakeSliceNextElemFunc(.slice)
	}
	 := .nextElem()
	return .scan(, , )
}