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(, , )
}